Visualisations d’entraînement (aperçu)
Un essai d’hyperparamètre ou un essai AutoML recherche les paramètres optimaux pour un modèle Machine Learning. Chaque essai se compose de plusieurs exécutions, chaque exécution évaluant une combinaison de paramètres spécifique. Les utilisateurs peuvent surveiller ces essais à l’aide des éléments de l’expérience ML dans Fabric.
Le module flaml.visualization
offre des fonctions permettant de tracer et de comparer les essais dans FLAML. Les utilisateurs peuvent utiliser Plotly pour interagir avec les tracés de leurs expériences AutoML. Pour utiliser ces fonctions, les utilisateurs doivent saisir leur objet flaml.AutoML
ou flaml.tune.tune.ExperimentAnalysis
optimisé.
Cet article vous apprend à utiliser le module flaml.visualization
pour analyser et explorer les résultats de vos essais AutoML. Vous pouvez suivre les mêmes étapes pour votre essai d’hyperparamètre.
Important
Cette fonctionnalité est en version préliminaire.
Créer un essai AutoML
AutoML propose une suite de processus automatisés capables d’identifier le meilleur pipeline d’apprentissage automatique pour votre jeu de données, ce qui rend l’ensemble du processus de modélisation plus simple et souvent plus précis. En fait, il vous évite d’avoir à régler manuellement différents modèles et hyperparamètres.
Dans la cellule de code ci-dessous, nous allons :
- Charger le jeu de données Iris.
- Fractionner les données en jeux d’apprentissage et de test.
- Lancer un essai AutoML pour ajuster nos données d’entraînement.
- Explorer les résultats de notre essai AutoML à l’aide des visualisations de
flaml.visualization
.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from flaml import AutoML
# Load the Iris data and split it into train and test sets
x, y = load_iris(return_X_y=True, as_frame=True)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7654321)
# Create an AutoML instance and set the parameters
automl = AutoML()
automl_settings = {
"time_budget": 10, # Time limit in seconds
"task": "classification", # Type of machine learning task
"log_file_name": "aml_iris.log", # Name of the log file
"metric": "accuracy", # Evaluation metric
"log_type": "all", # Level of logging
}
# Fit the AutoML instance on the training data
automl.fit(X_train=x_train, y_train=y_train, **automl_settings)
Visualiser les résultats de l’expérience
Une fois que vous avez lancé un essai AutoML, vous devez visualiser les résultats afin d’analyser les performances et le comportement des modèles. Dans cette partie de notre documentation, nous vous montrons comment utiliser les utilitaires intégrés à la bibliothèque FLAML à cette fin.
Importer le module de visualisation
Pour accéder à ces utilitaires de visualisation, nous exécutons la commande d’importation suivante :
import flaml.visualization as fviz
Historique d’optimisation
Un tracé de l’historique d’optimisation présente généralement le nombre d’essais/itérations sur l’axe des abscisses et une mesure de performance (comme la précision, RMSE, etc.) sur l’axe des ordonnées. Au fur et à mesure que le nombre d’essais augmente, vous verrez apparaître une ligne ou un diagramme de dispersion indiquant les performances de chaque essai.
fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()
Voici le tracé obtenu :
Importance de la fonctionnalité
Un tracé de l’importance d’une caractéristique est un outil de visualisation puissant qui vous permet de comprendre l’importance des différentes caractéristiques d’entrée dans la détermination des prédictions d’un modèle.
fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()
Voici le tracé obtenu :
Tracé de coordonnées parallèles
Un tracé de coordonnées parallèles est un outil de visualisation qui représente des données multidimensionnelles en traçant plusieurs lignes verticales (axes) correspondant à des variables ou à des hyperparamètres, les points de données étant tracés sous forme de lignes connectées sur ces axes. Dans le contexte d’une expérience AutoML ou de réglage, il permet de visualiser et d’analyser les performances de différentes combinaisons d’hyperparamètres. En traçant les chemins des configurations les plus performantes, il est possible de discerner des modèles ou des tendances dans les choix d’hyperparamètres et leurs interactions. Ce tracé permet de comprendre quelles combinaisons conduisent à des performances optimales, de mettre en évidence les domaines potentiels à explorer plus avant et d’identifier les compromis entre les différents hyperparamètres.
Cet utilitaire prend les autres arguments suivants :
learner
: indique l’apprenant que vous avez l’intention d’étudier dans l’expérience. Ce paramètre ne s’applique qu’aux résultats des expériences AutoML. En laissant ce paramètre vide, le système choisit le meilleur apprenant de toute l’expérience.params
: une liste permettant de spécifier l’hyperparamètre à afficher. Si vous laissez ce champ vide, le système affiche tous les hyperparamètres disponibles.
fig = fviz.plot_parallel_coordinate(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "parallel_coordinate", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()
Voici le tracé obtenu :
Tracé de contour
Un tracé de contour visualise des données tridimensionnelles en deux dimensions, où les axes x et y représentent deux hyperparamètres, et les lignes de contour ou les contours remplis décrivent les niveaux d’une mesure de performance (par exemple, la précision ou la perte). Dans le contexte d’une expérience AutoML ou de réglage, un tracé de contour est utile pour comprendre la relation entre deux hyperparamètres et leur effet combiné sur les performances du modèle.
En examinant la densité et le positionnement des lignes de contour, on peut identifier les régions de l’espace des hyperparamètres où la performance est optimisée, vérifier les compromis potentiels entre les hyperparamètres et obtenir un aperçu sur leurs interactions. Cette visualisation permet d’affiner l’espace de recherche et le processus de réglage.
Cet utilitaire prend également les arguments suivants :
learner
: indique l’apprenant que vous avez l’intention d’étudier dans l’expérience. Ce paramètre ne s’applique qu’aux résultats des expériences AutoML. En laissant ce paramètre vide, le système choisit le meilleur apprenant de toute l’expérience.params
: une liste permettant de spécifier l’hyperparamètre à afficher. Si vous laissez ce champ vide, le système affiche tous les hyperparamètres disponibles.
fig = fviz.plot_contour(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "contour", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()
Voici le tracé obtenu :
Fonction de distribution empirique
Un tracé de fonction de distribution empirique (EDF), souvent visualisé sous la forme d’une fonction en escalier, représente la probabilité cumulée de points de données inférieurs ou égaux à une valeur particulière. Dans le cadre d’une expérience AutoML ou de réglage, un tracé EDF peut être utilisé pour visualiser la distribution des performances du modèle à travers différentes configurations d’hyperparamètres.
En observant l’inclinaison ou l’aplatissement de la courbe en divers points, on peut comprendre la concentration de bonnes ou de mauvaises performances du modèle, respectivement. Cette visualisation donne un aperçu de l’efficacité globale du processus de réglage, en soulignant si la plupart des configurations tentées donnent des résultats satisfaisants ou si seules quelques configurations sortent du lot.
Remarque
Pour les expériences AutoML, plusieurs modèles seront appliqués pendant l’entraînement. Les essais de chaque apprenant sont représentés sous la forme d’une série d’optimisation. Pour les expériences de réglage des hyperparamètres, un seul apprenant sera évalué. Cependant, vous pouvez fournir des expériences de réglage supplémentaires pour voir les tendances de chaque apprenant.
fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()
Voici le tracé obtenu :
Tracé de chronologie
Un tracé de chronologie, souvent représenté sous la forme d’un diagramme de Gantt ou d’une séquence de barres, permet de visualiser le début, la durée et l’achèvement d’une tâche au fil du temps. Dans le contexte d’une expérience AutoML ou d’une expérience de réglage, un tracé de chronologie peut présenter la progression de diverses évaluations de modèles et leurs durées respectives, tracées en fonction du temps. En observant ce graphique, les utilisateurs peuvent saisir l’efficacité du processus de recherche, identifier les goulets d’étranglement potentiels ou les périodes d’inactivité, et comprendre la dynamique temporelle des différentes évaluations d’hyperparamètres.
fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()
Voici le tracé obtenu :
Tracé de tranches
Trace la relation entre les paramètres sous la forme d’un tracé de tranches dans le cadre d’une étude.
Cet utilitaire prend également les arguments suivants :
learner
: indique l’apprenant que vous avez l’intention d’étudier dans l’expérience. Ce paramètre ne s’applique qu’aux résultats des expériences AutoML. En laissant ce paramètre vide, le système choisit le meilleur apprenant de toute l’expérience.params
: une liste permettant de spécifier l’hyperparamètre à afficher. Si vous laissez ce champ vide, le système affiche tous les hyperparamètres disponibles.
fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()
Voici le tracé obtenu :
Importance d’un hyperparamètre
Un tracé de l’importance d’un hyperparamètre classe visuellement les hyperparamètres en fonction de leur influence sur les performances du modèle dans une expérience AutoML ou de mise au point. Affiché généralement sous la forme d’un diagramme à barres, il quantifie l’impact de chaque hyperparamètre sur la métrique cible. En examinant ce tracé, les praticiens peuvent discerner les hyperparamètres qui sont essentiels pour déterminer les résultats du modèle et ceux qui ont un effet minime.
Cet utilitaire prend également les arguments suivants :
learner
: indique l’apprenant que vous avez l’intention d’étudier dans l’expérience. Ce paramètre ne s’applique qu’aux résultats des expériences AutoML. En laissant ce paramètre vide, le système choisit le meilleur apprenant de toute l’expérience.params
: une liste permettant de spécifier l’hyperparamètre à afficher. Si vous laissez ce champ vide, le système affiche tous les hyperparamètres disponibles.
fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()
Voici le tracé obtenu :