Úvod do ladění hyperparametrů

Validace modelů v Pythonu

Kasey Jones

Data Scientist

Parametry modelu

Parametry jsou:

  • Odvozeny nebo odhadnuty z dat
  • Výsledkem trénování modelu
  • Použity při budoucích předpovědích
  • Nenastavují se ručně
Validace modelů v Pythonu

Parametry lineární regrese

Parametry vznikají trénováním modelu:

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print(lr.coef_, lr.intercept_)
[[0.798, 0.452]] [1.786]
Validace modelů v Pythonu

Parametry lineární regrese

Parametry neexistují před natrénováním modelu:

lr = LinearRegression()
print(lr.coef_, lr.intercept_)
AttributeError: 'LinearRegression' object has no attribute 'coef_'
Validace modelů v Pythonu

Hyperparametry modelu

Hyperparametry:

  • Nastavují se ručně před trénováním
  • Určují, jak má trénování probíhat
Validace modelů v Pythonu

Hyperparametry náhodného lesa

Hyperparametr Popis Možné hodnoty (výchozí)
n_estimators Počet rozhodovacích stromů v lese 2+ (10)
max_depth Maximální hloubka rozhodovacích stromů 2+ (None)
max_features Počet příznaků zvažovaných při rozdělení Viz dokumentace
min_samples_split Minimální počet vzorků potřebných k rozdělení 2+ (2)
Validace modelů v Pythonu

Co je ladění hyperparametrů?

Ladění hyperparametrů:

  • Výběr hyperparametrů
  • Spuštění jednoho typu modelu s různými hodnotami
  • Vytvoření rozsahů možných hodnot
  • Určení jedné metriky přesnosti
Validace modelů v Pythonu

Určení rozsahů

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'
 ...
}
Validace modelů v Pythonu

Příliš mnoho hyperparametrů!

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,
 ...
 }
Validace modelů v Pythonu

Obecná doporučení

  • Začněte se základy
  • Prostudujte dokumentaci
  • Testujte praktické rozsahy
Validace modelů v Pythonu

Pojďme si procvičit!

Validace modelů v Pythonu

Preparing Video For Download...