Trainings-Visualisierungen (Vorschau)
Eine Hyperparameter-Testversion oder AutoML-Testversion sucht nach den optimalen Parametern für ein Machine Learning-Modell. Jede Testversion besteht aus mehreren Läufen, wobei jeder Lauf eine bestimmte Parameterkombination auswertet. Benutzer können diese Läufe mithilfe von ML-Experimentelementen in Fabric überwachen.
Das flaml.visualization
Modul bietet Funktionen zum Plotten und Vergleichen der Läufe in FLAML. Benutzer können Plotly verwenden, um mit ihren AutoML-Experimentplots zu interagieren. Um diese Funktionen verwenden zu können, müssen Benutzer ihre optimierten flaml.AutoML
oder flaml.tune.tune.ExperimentAnalysis
Objekte eingeben.
In diesem Artikel erfahren Sie, wie Sie das flaml.visualization
Modul verwenden, um Ihre AutoML-Testergebnisse zu analysieren und zu untersuchen. Sie können auch die gleichen Schritte für Ihre Hyperparameter-Testversion ausführen.
Wichtig
Dieses Feature befindet sich in der Vorschauphase.
Erstellen einer AutoML-Testversion
AutoML bietet eine Reihe automatisierter Prozesse, die die beste Machine Learning-Pipeline für Ihr DataSet identifizieren können, wodurch der gesamte Modellierungsprozess einfacher und oft genauer wird. Im Wesentlichen spart es Ihnen die Probleme mit der manuellen Optimierung verschiedener Modelle und Hyperparameter.
In der folgenden Code-Zelle werden wir Folgendes ausführen:
- Laden Sie das Iris-DataSet.
- Unterteilung der Daten in Trainings- und Testsätze.
- Initiieren Sie eine AutoML-Testversion, um unsere Trainingsdaten anzupassen.
- Untersuchen Sie die Ergebnisse unserer AutoML-Testversion mithilfe der Visualisierungen von
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)
Visualisierung der Experimentergebnisse
Nachdem Sie eine AutoML-Testversion ausgeführt haben, müssen Sie die Ergebnisse visualisieren, um zu analysieren, wie gut die Modelle ausgeführt wurden und wie sie sich verhalten. In diesem Teil unserer Dokumentation zeigen wir Ihnen, wie Sie die integrierten Dienstprogramme in der FLAML-Bibliothek zu diesem Zweck verwenden.
Visualisierungsmodul importieren
Um auf diese Visualisierungs-Dienstprogramme zuzugreifen, führen wir den folgenden Importbefehl aus:
import flaml.visualization as fviz
Optimierungsverlauf
Ein Optimierungsverlaufsplot weist in der Regel die Anzahl der Testversionen/Iterationen auf der X-Achse und eine Leistungsmetrik (z. B. Genauigkeit, RMSE usw.) auf der Y-Achse auf. Da die Anzahl der Testversionen zunimmt, würden Sie eine Linien- oder Plot-Zeichnung sehen, die die Leistung jeder Testversion angibt.
fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()
Hier sehen Sie den Plot, der sich daraus ergibt:
Featurepriorität
Ein Feature-Wichtigkeitsplot ist ein leistungsfähiges Visualisierungs-Tool, mit dem Sie die Bedeutung verschiedener Eingabefeatures verstehen können, um die Vorhersagen eines Modells zu bestimmen.
fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()
Hier sehen Sie den Plot, der sich daraus ergibt:
Plot mit parallelen Koordinaten
Ein paralleles Koordinatenplot ist ein Visualisierungs-Tool, das mehrdimensionale Daten darstellt, indem mehrere vertikale Linien (Achsen) gezeichnet werden, die Variablen oder Hyperparametern entsprechen, wobei Datenpunkte als verbundene Linien über diese Achsen geplottet werden. Im Kontext eines AutoML- oder Optimierungsexperiments ist es entscheidend, die Leistung verschiedener Hyperparameter-Kombinationen zu visualisieren und zu analysieren. Durch die Verfolgung der Pfade von leistungsstarken Konfigurationen kann man Muster oder Trends in der Auswahl der Hyperparameter und deren Interaktionen erkennen. Dieser Plot hilft Ihnen zu verstehen, welche Kombinationen zu einer optimalen Leistung führen, welche Bereiche für weitere Untersuchungen in Frage kommen und welche Kompromisse zwischen den verschiedenen Hyperparametern möglich sind.
Dieses Dienstprogramm enthält die folgenden weiteren Argumente:
learner
: Geben Sie den Lernenden an, den Sie im Experiment untersuchen möchten. Dieser Parameter gilt nur für AutoML-Experimentergebnisse anwendbar. Wenn Sie diesen Wert leer lassen, wählt das System den besten Lernenden im gesamten Experiment aus.params
: Eine Liste, die angibt, welche Hyperparameter angezeigt werden sollen. Wenn Sie diesen Wert leer lassen, zeigt das System alle verfügbaren Hyperparameter an.
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()
Hier sehen Sie den Plot, der sich daraus ergibt:
Profil-Plot
Ein Profil-Plot visualisiert dreidimensionale Daten in zwei Dimensionen, wobei die x- und y-Achse zwei Hyperparameter darstellen, und die Linien des Profils oder gefüllten Profile stellen Ebenen einer Leistungsmetrik dar (z. B. Genauigkeit oder Verlust). Im Kontext eines AutoML- oder Optimierungs-Experiments ist ein Profil-Plot vorteilhaft, um die Beziehung zwischen zwei Hyperparametern und deren kombinierter Wirkung auf die Leistung des Modells zu verstehen.
Durch Die Untersuchung der Dichte und Positionierung der Profil-Linien kann man Bereiche des Hyperparameter-Raums identifizieren, in denen die Leistung optimiert ist, potenzielle Kompromisse zwischen Hyperparametern ermitteln und Einblicke in ihre Interaktionen gewinnen. Diese Visualisierung hilft dabei, den Suchbereich und den Optimierungsprozess zu verfeinern.
Dieses Dienstprogramm verwendet auch die folgenden Argumente:
learner
: Geben Sie den Lernenden an, den Sie im Experiment untersuchen möchten. Dieser Parameter gilt nur für AutoML-Experimentergebnisse anwendbar. Wenn Sie diesen Wert leer lassen, wählt das System den besten Lernenden im gesamten Experiment aus.params
: Eine Liste, die angibt, welche Hyperparameter angezeigt werden sollen. Wenn Sie diesen Wert leer lassen, zeigt das System alle verfügbaren Hyperparameter an.
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()
Hier sehen Sie den Plot, der sich daraus ergibt:
Empirische Verteilungsfunktion
Ein empirischer Verteilungsfunktions-Plot (EDF), der häufig als Schritt-Funktion dargestellt wird, stellt die kumulierte Wahrscheinlichkeit dar, dass Datenpunkte kleiner oder gleich einem bestimmten Wert sind. Innerhalb eines AutoML- oder Optimierungs-Experiments kann ein EDF-Plot verwendet werden, um die Verteilung von Modellleistungen über verschiedene Hyperparameter-Konfigurationen hinweg zu visualisieren.
Durch die Beobachtung der Steilheit oder Flachheit der Kurve an verschiedenen Punkten kann man die Konzentration guter bzw. schlechter Modellleistungen erkennen. Diese Visualisierung bietet Einblicke in die Gesamteffizienz des Optimierungsprozesses, wobei hervorgehoben wird, ob die meisten der versuchten Konfigurationen zufriedenstellende Ergebnisse liefern oder ob nur wenige Konfigurationen herausstechen.
Hinweis
Bei AutoML-Experimenten werden während dem Training mehrere Modelle angewendet. Die Testversionen der einzelnen Lernenden werden als Optimierungsserie dargestellt. Bei Hyperparameter-Optimierungsexperimenten wird nur ein einziger Lernender ausgewertet. Sie können jedoch zusätzliche Optimierungsexperimente bereitstellen, um die Trends für jeden Lernenden zu sehen.
fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()
Hier sehen Sie den Plot, der sich daraus ergibt:
Zeitleisten-Plot
Ein Zeitleisten-Plot, der häufig als Gantt-Diagramm oder eine Abfolge von Balken dargestellt wird, visualisiert den Anfang, die Dauer und den Abschluss von Aufgaben im Laufe der Zeit. Im Kontext eines AutoML- oder Tuning-Experiments kann ein Zeitleisten-Plot die Entwicklung verschiedener Modellauswertungen und deren jeweilige Dauer darstellen, die gegen die Zeit gezeichnet werden. Durch die Beobachtung dieses Plot können Benutzer die Effizienz des Suchprozesses erfassen, potenzielle Engpässe oder Leerlaufzeiten identifizieren und die zeitliche Dynamik verschiedener Hyperparameterbewertungen erkennen.
fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()
Hier sehen Sie den Plot, der sich daraus ergibt:
Slice-Plot
Plot der Parameterbeziehung als Slice-Plot in einer Studie.
Dieses Dienstprogramm verwendet auch die folgenden Argumente:
learner
: Geben Sie den Lernenden an, den Sie im Experiment untersuchen möchten. Dieser Parameter gilt nur für AutoML-Experimentergebnisse anwendbar. Wenn Sie diesen Wert leer lassen, wählt das System den besten Lernenden im gesamten Experiment aus.params
: Eine Liste, die angibt, welche Hyperparameter angezeigt werden sollen. Wenn Sie diesen Wert leer lassen, zeigt das System alle verfügbaren Hyperparameter an.
fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()
Hier sehen Sie den Plot, der sich daraus ergibt:
Hyperparameter-Wichtigkeit
Ein Hyperparameter-Wichtigkeits-Plot bewertet Hyperparameter visuell basierend auf ihrem Einfluss auf die Leistung des Modells in einem AutoML- oder Optimierungs-Experiment. In der Regel als Balkendiagramm angezeigt, quantifiziert er die Auswirkungen der einzelnen Hyperparameter auf die Zielmetrik. Anhand dieses Plots können Praktiker erkennen, welche Hyperparameter bei der Bestimmung der Modellergebnisse eine zentrale Rolle spielen und welche nur minimale Auswirkungen haben..
Dieses Dienstprogramm verwendet auch die folgenden Argumente:
learner
: Geben Sie den Lernenden an, den Sie im Experiment untersuchen möchten. Dieser Parameter gilt nur für AutoML-Experimentergebnisse anwendbar. Wenn Sie diesen Wert leer lassen, wählt das System den besten Lernenden im gesamten Experiment aus.params
: Eine Liste, die angibt, welche Hyperparameter angezeigt werden sollen. Wenn Sie diesen Wert leer lassen, zeigt das System alle verfügbaren Hyperparameter an.
fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()
Hier sehen Sie den Plot, der sich daraus ergibt: