Visualiser l'approche « Coarse to Fine »
Vous allez réaliser la première étape d'une recherche « Coarse to Fine ». Il s'agit d'analyser les résultats d'une recherche aléatoire initiale effectuée sur un large espace de recherche, puis de déterminer la prochaine étape logique pour affiner la recherche de vos hyperparamètres.
Vous avez à votre disposition :
combinations_list— une liste des combinaisons d'hyperparamètres possibles sur lesquelles la recherche aléatoire a été effectuée.results_df— un DataFrame qui contient chaque combinaison d'hyperparamètres et la précision 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 entrée une colonne du DataFrame (sous forme de chaîne) et produit un nuage de points comparant les valeurs de cette colonne aux scores de précision. Un appel d'exemple seraitvisualize_hyperparameter('accuracy')
Si vous souhaitez voir la définition de la fonction visualize_hyperparameter(), exécutez ce code :
import inspect
print(inspect.getsource(visualize_hyperparameter))
Cette activité fait partie du cours
Ajustement des hyperparamètres en Python
Instructions de l’exercice
- Confirmez (en l'imprimant) la taille de
combinations_list, afin de justifier le recours initial à une recherche aléatoire. - Triez
results_dfselon les valeurs de précision et affichez les 10 premières lignes. Y a-t-il des constats évidents? Attention à la petite taille de l'échantillon! - Confirmez (en l'imprimant) quels hyperparamètres ont été utilisés dans cette recherche. Il s'agit des noms de colonnes de
results_df. - Appelez
visualize_hyperparameter()avec 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 ce code d’exemple.
# 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(____)