Wprowadzenie do strojenia hiperparametrów

Walidacja modeli w Pythonie

Kasey Jones

Data Scientist

Parametry modelu

Parametry są:

  • Uczone lub szacowane na podstawie danych
  • Wynikiem dopasowania modelu
  • Używane przy przyszłych predykcjach
  • Nie są ustawiane ręcznie
Walidacja modeli w Pythonie

Parametry regresji liniowej

Parametry powstają w wyniku dopasowania modelu:

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print(lr.coef_, lr.intercept_)
[[0.798, 0.452]] [1.786]
Walidacja modeli w Pythonie

Parametry regresji liniowej

Parametry nie istnieją przed dopasowaniem modelu:

lr = LinearRegression()
print(lr.coef_, lr.intercept_)
AttributeError: 'LinearRegression' object has no attribute 'coef_'
Walidacja modeli w Pythonie

Hiperparametry modelu

Hiperparametry:

  • Ustawiane ręcznie przed trenowaniem modelu
  • Określają sposób przeprowadzenia trenowania
Walidacja modeli w Pythonie

Hiperparametry lasu losowego

Hiperparametr Opis Możliwe wartości (domyślna)
n_estimators Liczba drzew decyzyjnych w lesie 2+ (10)
max_depth Maksymalna głębokość drzew decyzyjnych 2+ (None)
max_features Liczba cech uwzględnianych przy podziale Zobacz dokumentację
min_samples_split Minimalna liczba próbek wymagana do podziału 2+ (2)
Walidacja modeli w Pythonie

Czym jest strojenie hiperparametrów?

Strojenie hiperparametrów:

  • Wybór hiperparametrów
  • Uruchamianie jednego typu modelu dla różnych zestawów wartości
  • Tworzenie zakresów możliwych wartości
  • Określanie jednej metryki dokładności
Walidacja modeli w Pythonie

Określanie zakresów

depth = [4, 6, 8, 10, 12]
samples = [2, 4, 6, 8]
features = [2, 4, 6, 8, 10]

# Specify hyperparameters rfc = RandomForestRegressor( n_estimators=100, max_depth=depth[0], min_samples_split=samples[3], max_features=features[1])
rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse'
 ...
}
Walidacja modeli w Pythonie

Za dużo hiperparametrów!

rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse',
 'max_depth': 4,
 'max_features': 4,
 'max_leaf_nodes': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 8,
 ...
 }
Walidacja modeli w Pythonie

Ogólne wskazówki

  • Zacznij od podstaw
  • Przejrzyj dokumentację
  • Testuj praktyczne zakresy
Walidacja modeli w Pythonie

Czas na ćwiczenia!

Walidacja modeli w Pythonie

Preparing Video For Download...