RandomizedSearchCV

Validace modelů v Pythonu

Kasey Jones

Data Scientist

Prohledávání mřížky hyperparametrů

Při výběru hodnot z více hyperparametrů vznikne mřížka možných kombinací – tzv. prostor hyperparametrů.

Validace modelů v Pythonu

Prohledávání mřížky – pokračování

Výhody:

  • Testuje každou možnou kombinaci

Nevýhody:

  • Každý další hyperparametr exponenciálně prodlužuje trénování
Validace modelů v Pythonu

Lepší metody

Validace modelů v Pythonu

Náhodné hledání

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

Distribuce parametrů:

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
Validace modelů v Pythonu

Parametry náhodného hledání

Parametry:

  • estimator: použitý model
  • param_distributions: slovník obsahující hyperparametry a jejich možné hodnoty
  • n_iter: počet iterací
  • scoring: metoda hodnocení
Validace modelů v Pythonu

Nastavení parametrů RandomizedSearchCV

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import make_scorer, mean_absolute_error

rfr = RandomForestRegressor(n_estimators=20, random_state=1111)
scorer = make_scorer(mean_absolute_error)
Validace modelů v Pythonu

Implementace RandomizedSearchCV

Nastavení náhodného hledání:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • Ladění hyperparametrů není možné bez porozumění validaci modelu
  • Validace modelu umožňuje porovnávat různé modely a sady parametrů
Validace modelů v Pythonu

Implementace RandomizedSearchCV

Nastavení náhodného hledání:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)

Spuštění náhodného hledání:

random_search.fit(X, y)
Validace modelů v Pythonu

Podívejme se na příklady!

Validace modelů v Pythonu

Preparing Video For Download...