Zbiór treningowy

Zestaw danych używany do nauki modelu. To na nim model dopasowuje swoje parametry.

Zbiór treningowy (ang. training set) to porcja danych, na której model uczy się rozpoznawać wzorce. To właśnie na tych przykładach algorytm dopasowuje swoje parametry — wagi w sieci neuronowej, współczynniki w regresji, granice podziału w drzewie — tak, żeby jego predykcje były jak najbliżej prawdy. W skrócie: zbiór treningowy to podręcznik, z którego model się uczy, zanim dostanie egzamin (czyli dane testowe).

Cały typowy podział danych wygląda tak: training set (zwykle 60-80%) do nauki, validation set do strojenia hiperparametrów i wyboru wersji modelu, oraz test set do końcowej, uczciwej oceny. Klasyczna proporcja to 70/15/15 albo 80/10/10, ale to nie jest wyryte w kamieniu — przy ogromnych zbiorach (miliony rekordów) na walidację i test wystarczy po kilka procent.

Jak to działa

Podczas treningu model przepuszcza przykłady ze zbioru treningowego, porównuje swoją odpowiedź z prawidłową etykietą i liczy błąd (loss). Potem algorytm optymalizacji — najczęściej jakiś wariant gradientu prostego — koryguje parametry, żeby przy następnym przejściu błąd był mniejszy. Jedno pełne przejście przez cały zbiór treningowy to jedna epoch. Takich przejść robi się zwykle wiele, aż błąd przestanie spadać.

Kluczowa zasada: zbiór treningowy musi być reprezentatywny dla danych, które model zobaczy w produkcji. Jeśli uczysz klasyfikator zdjęć kotów wyłącznie na fotkach rudych kotów w słońcu, czarny kot w nocy będzie dla niego abstrakcją.

Przykład z praktyki

W scikit-learn podział robisz jedną linijką:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Potem model.fit(X_train, y_train) uczy model wyłącznie na części treningowej, a model.score(X_test, y_test) sprawdza go na danych, których nigdy nie widział. random_state ustawiasz po to, żeby podział był powtarzalny — inaczej przy każdym uruchomieniu dostaniesz inne wyniki i nie będziesz wiedział, czy poprawa to zasługa modelu, czy losu.

Częste błędy

  • Data leakage — przeciek danych testowych do treningowych (np. normalizacja całego zbioru przed podziałem). Model wtedy „zna odpowiedzi” i na produkcji rozczarowuje.
  • Overfitting — model wkuwa zbiór treningowy na pamięć, łącznie z szumem. Świetne wyniki na treningu, słabe na teście. Objaw: rosnąca przepaść między dokładnością treningową a testową.
  • Niezbalansowane klasy — jeśli 99% przykładów to jedna kategoria, model nauczy się zawsze zgadywać tę jedną i będzie miał 99% dokładności, kompletnie bezużyteczny.

Pojęcia powiązane: validation set, test set, overfitting, data leakage, epoch, loss function, cross-validation, etykietowanie danych (labeling).