Visualiser justerings- og AutoML-prøveversioner

En hyperparameter-prøveversion eller En AutoML-prøveversion søger efter de optimale parametre for en model til maskinel indlæring. Hver prøveversion består af flere kørsler, hvor hver kørsel evaluerer en bestemt parameterkombination. Du kan overvåge disse kørsler ved at bruge ML-eksperimenter i Fabric.

Modulet flaml.visualization tilbyder funktioner til at afbilde og sammenligne kørslerne i FLAML. Du kan bruge Plotly til at interagere med dine AutoML-eksperimentplots. For at bruge disse funktioner skal du angive dit optimerede flaml.AutoML objekt flaml.tune.tune.ExperimentAnalysis .

I denne artikel lærer du, hvordan du bruger modulet flaml.visualization til at analysere og udforske resultaterne af din AutoML-prøveversion. Du kan også følge de samme trin for din prøveversion af hyperparametre.

Opret en AutoML-prøveversion

AutoML tilbyder en pakke med automatiserede processer, der kan identificere den bedste pipeline til maskinel indlæring for dit datasæt, hvilket gør hele modelleringsprocessen mere enkel og ofte mere nøjagtig. I det væsentlige sparer det dig for besværet med at håndjustere forskellige modeller og hyperparametre.

I følgende kodecelle:

  1. Indlæs Iris-datasættet.
  2. Opdel dataene i oplærings- og testsæt.
  3. Start et AutoML-forsøg for at tilpasse træningsdataene.
  4. Udforsk resultaterne af AutoML-forsøget med visualiseringerne fra 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 eksperimentresultaterne

Efter du har kørt et AutoML-forsøg, visualiser resultaterne for at analysere, hvor godt modellerne klarede sig, og hvordan de opførte sig. I denne del af dokumentationen lærer du, hvordan du bruger de indbyggede værktøjer i FLAML-biblioteket til dette formål.

Importér visualiseringsmodul

For at få adgang til disse visualiseringsværktøjer, kør følgende importkommando:

import flaml.visualization as fviz

Optimeringshistorik

Et optimeringshistorikplot har typisk antallet af forsøg eller iterationer på x-aksen og en ydelsesmetrik, såsom nøjagtighed eller RMSE, på y-aksen. Efterhånden som antallet af forsøg stiger, ser du en linje eller spredningsdiagram, der viser præstationen af hvert forsøg.

fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()

Her er det resulterende plot:

Graf over afbildning af optimeringshistorik.

Funktionsprioritet

Et feature importance plot er et kraftfuldt visualiseringsværktøj, der hjælper dig med at forstå betydningen af forskellige inputfunktioner i forhold til at bestemme forudsigelserne af en model.

fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()

Her er det resulterende plot:

Graf over afbildning af funktionsprioritet.

Parallel koordinatafbildning

Et parallelt koordinatdiagram er et visualiseringsværktøj, der repræsenterer flerdimensionelle data ved at tegne flere lodrette linjer (akser), der svarer til variabler eller hyperparametre, hvor datapunkter afbildes som forbundne linjer på tværs af disse akser. I forbindelse med et AutoML- eller tuning-eksperiment er det afgørende for at visualisere og analysere ydeevnen af forskellige hyperparameterkombinationer. Ved at spore stierne til højtydende konfigurationer kan man se mønstre eller tendenser i valg af hyperparametre og deres interaktioner. Dette plot hjælper med at forstå, hvilke kombinationer der fører til optimal ydeevne, udpege potentielle områder til yderligere udforskning og identificere eventuelle afvejninger mellem forskellige hyperparametre.

Dette værktøj bruger følgende andre argumenter:

  • learner: Angiv den studerende, du vil studere i eksperimentet. Denne parameter gælder kun for Resultater af AutoML-eksperiment. Ved at lade dette være tomt vælger systemet den bedste lærende i hele eksperimentet.

  • params: En liste til at angive, hvilken hyperparameter der skal vises. Ved at lade dette være tomt viser systemet alle tilgængelige hyperparametre.

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()

Her er det resulterende plot:

Graf over parallel koordinatafbildning.

Konturafbildning

Et konturdiagram visualiserer tredimensionelle data i to dimensioner, hvor x- og y-akserne repræsenterer to hyperparametre, og konturlinjerne eller de udfyldte konturer viser niveauer af en metrikværdi for ydeevnen (f.eks. nøjagtighed eller tab). I forbindelse med et AutoML- eller tuningeksperiment er en konturafbildning nyttig til at forstå relationen mellem to hyperparametre og deres kombinerede effekt på modellens ydeevne.

Ved at undersøge konturlinjernes tæthed og placering kan man identificere områder af hyperparameterområdet, hvor ydeevnen er optimeret, fastslå potentielle afvejninger mellem hyperparametre og få indsigt i deres interaktioner. Denne visualisering hjælper med at tilpasse søgeområdet og justeringsprocessen.

Dette værktøj bruger også følgende argumenter:

  • learner: Angiv den studerende, du vil studere i eksperimentet. Denne parameter gælder kun for Resultater af AutoML-eksperiment. Ved at lade dette være tomt vælger systemet den bedste lærende i hele eksperimentet.

  • params: En liste til at angive, hvilken hyperparameter der skal vises. Ved at lade dette være tomt viser systemet alle tilgængelige hyperparametre.

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()

Her er det resulterende plot:

Graf over konturdiagram.

Empirisk fordelingsfunktion

En empirisk fordelingsfunktion (EDF)-afbildning, der ofte visualiseres som en trinfunktion, repræsenterer den akkumulerede sandsynlighed for, at datapunkter er mindre end eller lig med en bestemt værdi. I et AutoML- eller justeringseksperiment kan der anvendes en EUF-afbildning til at visualisere distributionen af modelydeevner på tværs af forskellige hyperparameterkonfigurationer.

Ved at observere kurvens stejlhed eller fladhed på forskellige punkter kan man forstå koncentrationen af henholdsvis gode eller dårlige modelpræstationer. Denne visualisering giver indsigt i den overordnede effektivitet af justeringsprocessen og fremhæver, om de fleste af de forsøgte konfigurationer giver tilfredsstillende resultater, eller om kun nogle få konfigurationer skiller sig ud.

Bemærk

I forbindelse med AutoML-eksperimenter anvendes der flere modeller under oplæringen. De enkelte elevers forsøg repræsenteres som en optimeringsserie. I forbindelse med hyperparameterjusteringseksperimenter vil der kun være en enkelt elev, der evalueres. Du kan dog angive yderligere justeringseksperimenter for at se tendenser på tværs af hver enkelt elev.

fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()

Her er det resulterende plot:

Graf over det empiriske fordelingsfunktionsdiagram.

Tidslinjediagram

Et tidslinjediagram, der ofte repræsenteres som et Gantt-diagram eller en sekvens af søjler, visualiserer starten, varigheden og fuldførelsen af opgaver over tid. I forbindelse med et AutoML- eller tuning-eksperiment kan et tidslinjediagram vise forløbet af forskellige modelevalueringer og deres respektive varigheder afbildet i forhold til tiden. Ved at observere dette plot kan brugerne forstå effektiviteten af søgeprocessen, identificere eventuelle flaskehalse eller inaktive perioder og forstå den tidsmæssige dynamik i forskellige hyperparameterevalueringer.

fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()

Her er det resulterende plot:

Graf over tidslinjediagram.

Udsnitsdiagram

Afbild parameterrelationen som et udsnitsdiagram i en undersøgelse.

Dette værktøj bruger også følgende argumenter:

  • learner: Angiv den studerende, du vil studere i eksperimentet. Denne parameter gælder kun for Resultater af AutoML-eksperiment. Ved at lade dette være tomt vælger systemet den bedste lærende i hele eksperimentet.

  • params: En liste til at angive, hvilken hyperparameter der skal vises. Ved at lade dette være tomt viser systemet alle tilgængelige hyperparametre.

fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()

Her er det resulterende plot:

Graf over udsnitsdiagram.

Hyperparameterprioritet

Et hyperparameter-vigtighedsplot rangerer visuelt hyperparametre baseret på deres indflydelse på modellens ydeevne i et AutoML- eller tuning-eksperiment. Vises typisk som et liggende søjlediagram og kvantificerer virkningen af hver hyperparameter på målmetrikværdien. Ved at undersøge dette plot kan praktikere se, hvilke hyperparametre der er afgørende for at bestemme modelresultater, og hvilke der har minimal effekt.

Dette værktøj bruger også følgende argumenter:

  • learner: Angiv den studerende, du vil studere i eksperimentet. Denne parameter gælder kun for Resultater af AutoML-eksperiment. Ved at lade dette være tomt vælger systemet den bedste lærende i hele eksperimentet.

  • params: En liste til at angive, hvilken hyperparameter der skal vises. Ved at lade dette være tomt viser systemet alle tilgængelige hyperparametre.

fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()

Her er det resulterende plot:

Graf over hyperparameterens prioritetsplot.