RandomizedSearchCV

Modelvalidatie in Python

Kasey Jones

Data Scientist

Grid search voor hyperparameters

Bij het kiezen van waarden voor meerdere hyperparameters vormen de opties een raster: de hyperparameterspace.

Modelvalidatie in Python

Grid search vervolg

Voordelen:

  • Test elke mogelijke combinatie

Nadelen:

  • Extra hyperparameters laten de traintijd exponentieel toenemen
Modelvalidatie in Python

Betere methoden

Modelvalidatie in Python

Random search

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

Parameterverdeling:

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

Parameters voor random search

Parameters:

  • estimator: te gebruiken model
  • param_distributions: dictionary met hyperparameters en mogelijke waarden
  • n_iter: aantal iteraties
  • scoring: te gebruiken scoringsmethode
Modelvalidatie in Python

RandomizedSearchCV-parameters instellen

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)
Modelvalidatie in Python

RandomizedSearchCV geïmplementeerd

Random search opzetten:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • We kunnen hyperparametertuning niet doen zonder modelvalidatie te begrijpen
  • Modelvalidatie laat ons meerdere modellen en parametersets vergelijken
Modelvalidatie in Python

RandomizedSearchCV geïmplementeerd

Random search opzetten:

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

Rond de random search af:

random_search.fit(X, y)
Modelvalidatie in Python

Laten we wat voorbeelden bekijken!

Modelvalidatie in Python

Preparing Video For Download...