Tworzenie zbiorów treningowego, testowego i walidacyjnego

Walidacja modeli w Pythonie

Kasey Jones

Data Scientist

Tradycyjny podział na zbiór treningowy i testowy

  • Dane znane (używane do trenowania)
  • Dane nieznane (niedostępne podczas trenowania)

Podział danych polega na wydzieleniu części dostępnych danych do trenowania i mniejszej części do zbioru testowego.

Walidacja modeli w Pythonie

Definicje zbiorów i proporcje podziału

Zbiór danych Definicja
Treningowy Próbka danych używana do dopasowania modeli
Testowy (holdout) Próbka danych używana do oceny wydajności modelu

Przykłady proporcji

  • 80:20
  • 90:10 (stosowane przy małej ilości danych)
  • 70:30 (stosowane przy kosztownych obliczeniowo modelach)
Walidacja modeli w Pythonie

Zbiory X i y

import pandas as pd

tic_tac_toe = pd.read_csv("tic-tac-toe.csv")
X = pd.get_dummies(tic_tac_toe.iloc[:,0:9])
y = tic_tac_toe.iloc[:, 9]

Kursy Python dotyczące zmiennych dummy:

Walidacja modeli w Pythonie

Tworzenie próbek holdout

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

Parametry:

  • test_size
  • train_size
  • random_state
Walidacja modeli w Pythonie

Zbiór do wstępnego testowania?

Co robimy, testując różne parametry modelu?

  • 100 versus 1000 drzew
Walidacja modeli w Pythonie

Aby przetestować parametry modelu, dostępne dane należy podzielić na trzy części: treningową, walidacyjną i testową.

Walidacja modeli w Pythonie

Zbiory treningowy, walidacyjny i testowy – c.d.

X_temp, X_test, y_temp, y_test  =\
    train_test_split(X, y, test_size=0.2, random_state=1111)
X_train, X_val, y_train, y_val =\
    train_test_split(X_temp, y_temp, test_size=0.25, random_state=11111)
Walidacja modeli w Pythonie

Czas na holdout

Walidacja modeli w Pythonie

Preparing Video For Download...