Del via


Oplæringsvisualiseringer (prøveversion)

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. Brugerne kan overvåge disse kørsler ved hjælp af ML-eksperimentelementer i Fabric.

Modulet flaml.visualization tilbyder funktioner til at afbilde og sammenligne kørslerne i FLAML. Brugerne kan bruge Plotly til at interagere med deres AutoML-eksperimentafbildninger. Hvis du vil bruge disse funktioner, skal brugerne angive deres optimerede flaml.AutoML eller flaml.tune.tune.ExperimentAnalysis -objekt.

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.

Vigtigt

Denne funktion er en prøveversion.

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 kodecellen nedenfor vil vi:

  1. Indlæs Iris-datasættet.
  2. Opdel dataene i oplærings- og testsæt.
  3. Start en AutoML-prøveversion, så den passer til vores træningsdata.
  4. Udforsk resultaterne af vores AutoML-prøveversion 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

Når du kører en AutoML-prøveversion, skal du visualisere resultaterne for at analysere, hvor godt modellerne klarede sig, og hvordan de opførte sig. I denne del af vores dokumentation viser vi dig, hvordan du bruger de indbyggede hjælpeprogrammer i FLAML-biblioteket til dette formål.

Importér visualiseringsmodul

Hvis du vil have adgang til disse visualiseringsværktøjer, kører vi følgende importkommando:

import flaml.visualization as fviz

Optimeringshistorik

Et optimeringshistorikdiagram har typisk antallet af forsøg/gentagelser på x-aksen og en metrikværdi for ydeevnen (f.eks. nøjagtighed, RMSE osv.) på y-aksen. I takt med at antallet af forsøg stiger, kan du se et linje- eller punktdiagram, der angiver ydeevnen for hver prøveversion.

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

Her er den resulterende afbildning:

Graf over afbildning af optimeringshistorik.

Funktionsprioritet

Et afbildning af funktionsprioritet er et effektivt visualiseringsværktøj, der giver dig mulighed for at forstå betydningen af forskellige inputfunktioner ved bestemmelse af forudsigelserne for en model.

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

Her er den resulterende afbildning:

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 den resulterende afbildning:

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 den resulterende afbildning:

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 den resulterende afbildning:

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 den resulterende afbildning:

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 den resulterende afbildning:

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 den resulterende afbildning:

Graf over hyperparameterens prioritetsplot.