RandomizedSearchCV

Validarea modelelor în Python

Kasey Jones

Data Scientist

Căutarea în grilă a hiperparametrilor

La selectarea valorilor pentru mai mulți hiperparametri, opțiunile posibile formează o grilă, numită spațiu al hiperparametrilor.

Validarea modelelor în Python

Căutarea în grilă - continuare

Avantaje:

  • Testează fiecare combinație posibilă

Dezavantaje:

  • Hiperparametrii suplimentari cresc exponențial timpul de antrenare
Validarea modelelor în Python

Metode mai eficiente

Validarea modelelor în Python

Căutare aleatoare

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

Distribuția parametrilor:

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
Validarea modelelor în Python

Parametrii căutării aleatoare

Parametri:

  • estimator: modelul utilizat
  • param_distributions: dicționar cu hiperparametri și valorile posibile
  • n_iter: numărul de iterații
  • scoring: metoda de evaluare utilizată
Validarea modelelor în Python

Setarea parametrilor 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)
Validarea modelelor în Python

RandomizedSearchCV implementat

Configurarea căutării aleatoare:

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • Optimizarea hiperparametrilor necesită validarea modelului
  • Validarea modelului permite compararea mai multor modele și seturi de parametri
Validarea modelelor în Python

RandomizedSearchCV implementat

Configurarea căutării aleatoare:

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

Finalizarea căutării aleatoare:

random_search.fit(X, y)
Validarea modelelor în Python

Să explorăm câteva exemple!

Validarea modelelor în Python

Preparing Video For Download...