Visualiser la méthode « du grossier au précis »
Vous allez réaliser la première étape d’une recherche « du grossier au précis » (Coarse to Fine). Il s’agit d’analyser les résultats d’une recherche aléatoire initiale effectuée sur un vaste espace de recherche, puis de décider de la prochaine étape logique pour affiner la recherche d’hyperparamètres.
Vous disposez de :
combinations_list— une liste des combinaisons d’hyperparamètres possibles sur lesquelles la recherche aléatoire a été effectuée.results_df— un DataFrame contenant chaque combinaison d’hyperparamètres et l’accuracy obtenue pour chacun des 500 essais. Chaque hyperparamètre correspond à une colonne, dont l’en-tête est le nom de l’hyperparamètre.visualize_hyperparameter()— une fonction qui prend en argument une colonne du DataFrame (sous forme de chaîne) et produit un nuage de points des valeurs de cette colonne par rapport aux scores d’accuracy. Un appel d’exemple seraitvisualize_hyperparameter('accuracy')
Si vous souhaitez consulter la définition de la fonction visualize_hyperparameter(), exécutez ce code :
import inspect
print(inspect.getsource(visualize_hyperparameter))
Cet exercice fait partie du cours
Optimisation des hyperparamètres en Python
Instructions
- Confirmez (en l’affichant) la taille de
combinations_list, ce qui justifie de commencer par une recherche aléatoire. - Triez
results_dfpar les valeurs d’accuracy et affichez les 10 premières lignes. Y a-t-il des enseignements clairs ? Attention à la petite taille d’échantillon ! - Confirmez (en les affichant) quels hyperparamètres ont été utilisés dans cette recherche. Il s’agit des noms de colonnes de
results_df. - Appelez
visualize_hyperparameter()pour chaque hyperparamètre à tour de rôle (max_depth,min_samples_leaf,learn_rate). Voyez-vous des tendances ?
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Confirm the size of the combinations_list
print(____(____))
# Sort the results_df by accuracy and print the top 10 rows
print(results_df.____(by=____, ascending=False).head(____))
# Confirm which hyperparameters were used in this search
print(results_df.____)
# Call visualize_hyperparameter() with each hyperparameter in turn
visualize_hyperparameter(____)
visualize_hyperparameter(____)
visualize_hyperparameter(____)