Podział na zbiory treningowy, walidacyjny i testowy
Zrozumieć, dlaczego potrzebne są trzy zbiory, a nie jeden
Podział na zbiory treningowy, walidacyjny i testowy to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Deep Learning Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.
Jeden zbiór to za mało
Jeśli uczysz model i oceniasz go na tych samych danych, dowiadujesz się tylko, że zapamiętał te rekordy. Aby mu zaufać, musisz podzielić dane na osobne zbiory o różnych rolach.
Poznaj zbiór treningowy
Zbiór treningowy to dane, na podstawie których model rzeczywiście się uczy. Jego wagi są wielokrotnie korygowane, aby dobrze dopasować model właśnie do tych przykładów.
Poznaj zbiór walidacyjny
Zbiór walidacyjny pozostaje odłożony podczas treningu i jest sprawdzany w jego trakcie. Informuje, jak model radzi sobie z danymi, na podstawie których nie aktualizowano jego wag.
Poznaj zbiór testowy
Zbiór testowy jest używany tylko raz, na samym końcu. Zapewnia uczciwy, końcowy wynik po podjęciu wszystkich decyzji.
Dlaczego walidacja jest oddzielna
Wartości takie jak współczynnik uczenia dostosowujesz, obserwując wyniki walidacji. W ten sposób niepostrzeżenie uwzględniasz zbiór walidacyjny w swoich decyzjach, więc nie może już służyć jako niezależna ocena końcowa.
Zbiór testowy pozostaje zapieczętowany
Ponieważ walidacja wpływała na Twoje decyzje, potrzebujesz jednego nietkniętego zbioru do ostatecznej oceny. Zachowaj zbiór testowy w niezmienionej postaci aż do całkowitego zakończenia prac.
Typowy podział
Typowym punktem wyjścia jest proporcja około 80/10/10: większość danych przeznacz na trening, a mniejsze części na walidację i test. Dostosuj proporcje do ilości dostępnych danych.
Podział za pomocą random_split
PyTorch udostępnia random_split, które dzieli zbiór danych na części według ich długości. Automatycznie tasuje próbki i przydziela je do poszczególnych zbiorów.
from torch.utils.data import random_split
train, val, test = random_split(ds, [800, 100, 100])Ustaw ziarno dla powtarzalnych podziałów
Podział jest losowy, więc ustaw seed, jeśli chcesz otrzymywać te same części przy każdym uruchomieniu. Dzięki temu eksperymenty pozostają porównywalne między sesjami.
g = torch.Generator().manual_seed(42)
train, val, test = random_split(ds, [800, 100, 100], generator=g)Zachowaj równowagę klas
W przypadku rzadkich klas zwykły losowy podział może pominąć niektóre z nich. Stratyfikacja utrzymuje w każdym zbiorze proporcje klas zbliżone do oryginalnych, dzięki czemu wyniki pozostają miarodajne.
Nigdy nie zaglądaj do zbioru testowego
Najważniejsza zasada jest prosta: nie pozwól, aby zbiór testowy wpływał na jakąkolwiek decyzję. Gdy tylko zacznie na nie wpływać, wynik końcowy przestaje być wiarygodny.
Szybki test
Do którego zbioru należy zajrzeć tylko raz, na samym końcu?
Podsumowanie
Trzy zbiory, trzy zadania: treningowy uczy model, walidacyjny pomaga dostrajać ustawienia, a testowy zapewnia uczciwy wynik końcowy. Zachowaj zbiór testowy w niezmienionej postaci aż do końca. 🎯
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Podział na zbiory treningowy, walidacyjny i testowy” jest bezpłatna?
Tak — pełny tekst „Podział na zbiory treningowy, walidacyjny i testowy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Deep Learning Academy, przejdź na CoddyKit PRO. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Podział na zbiory treningowy, walidacyjny i testowy”?
Zrozumieć, dlaczego potrzebne są trzy zbiory, a nie jeden Ćwiczysz Deep Learning Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Deep Learning Academy?
Nie wymagamy żadnego doświadczenia. Deep Learning Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Podział na zbiory treningowy, walidacyjny i testowy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Deep Learning Academy?
Tak. Każda lekcja Deep Learning Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podział na zbiory treningowy, walidacyjny i testowy
- Pętla epok z walidacją
- Zapisywanie i wczytywanie za pomocą state_dict
- Wczesne zatrzymywanie na podstawie val loss