RandomizedSearchCV

Modellvalidering i Python

Kasey Jones

Data Scientist

Sökning i hyperparameterrutnät

När värden väljs från flera hyperparametrar skapar möjliga alternativ ett rutnät, kallat hyperparameterrymden.

Modellvalidering i Python

Rutnätssökning – fortsättning

Fördelar:

  • Testar alla möjliga kombinationer

Nackdelar:

  • Fler hyperparametrar ökar träningstiden exponentiellt
Modellvalidering i Python

Bättre metoder

Modellvalidering i Python

Slumpmässig sökning

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

Parameterfördelning:

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
Modellvalidering i Python

Parametrar för slumpmässig sökning

Parametrar:

  • estimator: modellen som ska användas
  • param_distributions: ordbok med hyperparametrar och möjliga värden
  • n_iter: antal iterationer
  • scoring: poängsättningsmetod
Modellvalidering i Python

Ange parametrar för 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)
Modellvalidering i Python

RandomizedSearchCV implementerat

Konfigurera den slumpmässiga sökningen:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • Hyperparameteroptimering kräver förståelse för modellvalidering
  • Modellvalidering gör det möjligt att jämföra flera modeller och parameteruppsättningar
Modellvalidering i Python

RandomizedSearchCV implementerat

Konfigurera den slumpmässiga sökningen:

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

Kör den slumpmässiga sökningen:

random_search.fit(X, y)
Modellvalidering i Python

Nu kör vi en övning!

Modellvalidering i Python

Preparing Video For Download...