Recherche aléatoire
# Call GridSearchCV
grid_search = GridSearchCV(clf, param_grid)
# Fit the model
grid_search.fit(X, y)
Dans l'extrait de code ci-dessus, tiré de l'exercice précédent, vous avez peut‑être remarqué que la première ligne s'est exécutée rapidement, alors que l'appel à .fit() a pris plusieurs secondes.
C'est parce que .fit() effectue réellement la recherche sur grille et que, dans notre cas, la grille comportait de nombreuses combinaisons. Plus la grille d'hyperparamètres est grande, plus la recherche sur grille est lente. Pour accélérer le processus, plutôt que d'essayer chaque combinaison possible, on peut parcourir la grille de façon aléatoire et tester différentes combinaisons. Il y a un faible risque de passer à côté de la meilleure combinaison, mais on gagne beaucoup de temps, ou on peut ajuster plus d'hyperparamètres dans le même laps de temps.
Dans scikit-learn, vous pouvez faire cela avec RandomizedSearchCV. Son API est la même que celle de GridSearchCV, sauf que vous devez fournir une distribution de paramètres dans laquelle échantillonner plutôt que des valeurs précises d'hyperparamètres. Essayons‑le maintenant! La distribution de paramètres a été préparée pour vous, ainsi qu'un classificateur de forêt aléatoire nommé clf.
Cette activité fait partie du cours
Analytique marketing : prédire l'attrition de la clientèle avec Python
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Import RandomizedSearchCV