RandomizedSearchCV

Validation de modèles en Python

Kasey Jones

Data Scientist

Recherche en grille des hyperparamètres

Quand on choisit des valeurs pour plusieurs hyperparamètres, les options possibles forment une grille : l'espace des hyperparamètres.

Validation de modèles en Python

Recherche en grille : suite

Avantages :

  • Teste toutes les combinaisons possibles

Inconvénients :

  • Chaque hyperparamètre ajouté fait exploser le temps d'entraînement
Validation de modèles en Python

De meilleures méthodes

Validation de modèles en Python

Recherche aléatoire

from sklearn.model_selection import RandomizedSearchCV

random_search = RandomizedSearchCV()

Distribution des paramètres :

param_dist = {"max_depth": [4, 6, 8, None],
              "max_features": range(2, 11),
              "min_samples_split": range(2, 11)}
Validation de modèles en Python

Paramètres de la recherche aléatoire

Paramètres :

  • estimator : le modèle à utiliser
  • param_distributions : dictionnaire des hyperparamètres et valeurs possibles
  • n_iter : nombre d'itérations
  • scoring : méthode d'évaluation
Validation de modèles en Python

Configurer les paramètres de 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)
Validation de modèles en Python

RandomizedSearchCV : implantation

Configuration de la recherche aléatoire :

random_search =\
    RandomizedSearchCV(estimator=rfr,
                       param_distributions=param_dist,
                       n_iter=40,
                       cv=5)
  • Impossible d'ajuster les hyperparamètres sans comprendre la validation de modèle
  • La validation de modèle permet de comparer plusieurs modèles et jeux de paramètres
Validation de modèles en Python

RandomizedSearchCV : implantation

Configuration de la recherche aléatoire :

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

Exécuter la recherche aléatoire :

random_search.fit(X, y)
Validation de modèles en Python

Explorons quelques exemples !

Validation de modèles en Python

Preparing Video For Download...