Zbiór walidacyjny

Zestaw danych używany w trakcie treningu do oceny, jak model uogólnia poza dane treningowe. Pomaga wykryć przeuczenie i dobrać hiperparametry.

Zbiór walidacyjny (ang. validation set) to wydzielona część danych, której model nie widzi podczas uczenia, ale której używasz w trakcie treningu, żeby na bieżąco sprawdzać, jak dobrze radzi sobie z przykładami spoza zbioru treningowego. To twój wewnętrzny recenzent: pokazuje, czy model naprawdę się czegoś nauczył, czy tylko wykuł dane treningowe na pamięć.

Klasycznie dzielisz dane na trzy części: treningowy (model dopasowuje na nim wagi), walidacyjny (oceniasz na nim postępy i stroisz hiperparametry) oraz testowy (jednorazowy, finalny egzamin po wszystkim). Typowy podział to coś w stylu 70/15/15 albo 80/10/10, ale to nie jest świętość — przy ogromnych zbiorach walidacja może mieć i 1% całości, bo kilkadziesiąt tysięcy próbek w zupełności wystarczy.

Do czego to służy

Dwie główne robotki. Po pierwsze, wykrywanie przeuczenia (overfitting): jeśli błąd treningowy nadal spada, a błąd walidacyjny zaczyna rosnąć, to znak, że model przestał się uczyć ogólnych wzorców, a zaczął zapamiętywać szum. Tu wchodzi early stopping — przerywasz trening w momencie, gdy walidacja przestaje się poprawiać.

Po drugie, dobór hiperparametrów: learning rate, liczba warstw, siła regularyzacji, głębokość drzewa. Sprawdzasz różne ustawienia i wybierasz to, które daje najlepszy wynik na walidacji — bez podglądania zbioru testowego.

Przykład z praktyki

W scikit-learn najprościej:

X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)

W Kerasie podajesz walidację wprost do treningu: model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=50) i obserwujesz val_loss w logach. Gdy danych masz mało, zamiast jednego sztywnego podziału użyj k-fold cross-validation (np. cross_val_score) — dane lecą na k części, każda po kolei bywa walidacją, a wynik uśredniasz. Mniej loterii niż przy jednym losowym splicie.

Na co uważać

  • Nie myl walidacji z testem. Jeśli stroisz model pod walidację dziesiątki razy, zaczynasz się do niej pośrednio przeuczać. Zbiór testowy trzymaj w sejfie do samego końca.
  • Data leakage. Skalowanie czy imputację dopasowuj tylko na treningu (fit na train, transform na val), nigdy na całości — inaczej walidacja kłamie na twoją korzyść.
  • Reprezentatywność. Przy niezbalansowanych klasach używaj podziału ze stratyfikacją, żeby proporcje klas się zgadzały.

Pojęcia powiązane: zbiór treningowy, zbiór testowy, overfitting, cross-validation, hiperparametry, early stopping, regularyzacja, generalizacja.