Träningsvisualiseringar (förhandsversion)
En utvärderingsversion av en hyperparameter eller en AutoML-utvärderingsversion söker efter de optimala parametrarna för en maskininlärningsmodell. Varje utvärderingsversion består av flera körningar, där varje körning utvärderar en specifik parameterkombination. Användare kan övervaka dessa körningar med hjälp av ML-experimentobjekt i Fabric.
Modulen flaml.visualization
erbjuder funktioner för att rita och jämföra körningarna i FLAML. Användare kan använda Plotly för att interagera med sina AutoML-experimentritningar. För att kunna använda dessa funktioner måste användarna ange sina optimerade flaml.AutoML
objekt eller flaml.tune.tune.ExperimentAnalysis
objekt.
Den här artikeln lär dig hur du använder modulen flaml.visualization
för att analysera och utforska dina AutoML-utvärderingsresultat. Du kan också följa samma steg för utvärderingsversionen av hyperparametern.
Viktigt!
Den här funktionen är i förhandsversion.
Skapa en AutoML-utvärderingsversion
AutoML erbjuder en uppsättning automatiserade processer som kan identifiera den bästa maskininlärningspipelinen för din datamängd, vilket gör hela modelleringsprocessen enklare och mer exakt. I grund och botten sparar det dig besväret med handjustering av olika modeller och hyperparametrar.
I kodcellen nedan gör vi följande:
- Läs in Iris-datauppsättningen.
- Dela upp data i tränings- och testuppsättningar.
- Initiera en AutoML-utvärderingsversion för att passa våra träningsdata.
- Utforska resultatet av vår AutoML-utvärderingsversion med visualiseringarna från
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)
Visualisera experimentresultatet
När du har kört en AutoML-utvärderingsversion måste du visualisera resultaten för att analysera hur väl modellerna presterade och hur de betedde sig. I den här delen av vår dokumentation visar vi hur du använder de inbyggda verktygen i FLAML-biblioteket för detta ändamål.
Importera visualiseringsmodul
För att komma åt dessa visualiseringsverktyg kör vi följande importkommando:
import flaml.visualization as fviz
Optimeringshistorik
Ett optimeringshistorikdiagram har vanligtvis antalet utvärderingar/iterationer på x-axeln och ett prestandamått (t.ex. noggrannhet, RMSE osv.) på y-axeln. När antalet utvärderingsversioner ökar visas ett linje- eller punktdiagram som anger prestanda för varje utvärderingsversion.
fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()
Här är det resulterande diagrammet:
Funktionsvikt
En funktionsviktsritning är ett kraftfullt visualiseringsverktyg som gör att du kan förstå betydelsen av olika indatafunktioner för att fastställa förutsägelserna för en modell.
fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()
Här är det resulterande diagrammet:
Parallell koordinatdiagram
Ett parallellt koordinatdiagram är ett visualiseringsverktyg som representerar flerdimensionella data genom att rita flera lodräta linjer (axlar) som motsvarar variabler eller hyperparametrar, med datapunkter ritade som anslutna linjer över dessa axlar. I samband med ett AutoML- eller justeringsexperiment är det avgörande för att visualisera och analysera prestanda för olika kombinationer av hyperparametrar. Genom att spåra sökvägarna för högpresterande konfigurationer kan man urskilja mönster eller trender i hyperparameterval och deras interaktioner. Det här diagrammet hjälper dig att förstå vilka kombinationer som leder till optimala prestanda, hitta potentiella områden för ytterligare utforskning och identifiera eventuella kompromisser mellan olika hyperparametrar.
Det här verktyget använder följande andra argument:
learner
: Ange den elev som du tänker studera i experimentet. Den här parametern gäller endast för AutoML-experimentresultat. Genom att lämna detta tomt väljer systemet den bästa eleven i hela experimentet.params
: En lista som anger vilken hyperparameter som ska visas. Genom att lämna detta tomt visar systemet alla tillgängliga hyperparametrar.
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()
Här är det resulterande diagrammet:
Konturritning
Ett konturdiagram visualiserar tredimensionella data i två dimensioner, där x- och y-axlarna representerar två hyperparametrar och konturlinjerna eller de fyllda konturerna visar nivåer av ett prestandamått (till exempel noggrannhet eller förlust). I samband med ett AutoML- eller justeringsexperiment är ett konturdiagram fördelaktigt för att förstå relationen mellan två hyperparametrar och deras kombinerade effekt på modellprestanda.
Genom att undersöka konturlinjernas densitet och placering kan man identifiera regioner i hyperparameterutrymmet där prestanda optimeras, fastställa potentiella kompromisser mellan hyperparametrar och få insikter om deras interaktioner. Den här visualiseringen hjälper till att förfina sökutrymmet och justeringsprocessen.
Det här verktyget använder också följande argument:
learner
: Ange den elev som du tänker studera i experimentet. Den här parametern gäller endast för AutoML-experimentresultat. Genom att lämna detta tomt väljer systemet den bästa eleven i hela experimentet.params
: En lista som anger vilken hyperparameter som ska visas. Genom att lämna detta tomt visar systemet alla tillgängliga hyperparametrar.
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()
Här är det resulterande diagrammet:
Empirisk distributionsfunktion
Ett empiriskt fördelningsfunktionsdiagram (EDF), som ofta visualiseras som en stegfunktion, representerar den kumulativa sannolikheten att datapunkter är mindre än eller lika med ett visst värde. I ett AutoML- eller justeringsexperiment kan ett EDF-diagram användas för att visualisera fördelningen av modellprestanda i olika hyperparameterkonfigurationer.
Genom att observera kurvans branthet eller planhet vid olika punkter kan man förstå koncentrationen av bra eller dåliga modellprestanda. Den här visualiseringen ger insikter om justeringsprocessens övergripande effekt, vilket belyser om de flesta konfigurationsförsöken ger tillfredsställande resultat eller om bara några få konfigurationer sticker ut.
Kommentar
För AutoML-experiment tillämpas flera modeller under träningen. Utvärderingsversionerna av varje elev representeras som en optimeringsserie. För hyperparameterjusteringsexperiment finns det bara en enskild elev som utvärderas. Du kan dock tillhandahålla ytterligare justeringsexperiment för att se trender för varje elev.
fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()
Här är det resulterande diagrammet:
Tidslinjeritning
Ett tidslinjediagram, som ofta representeras som ett Gantt-schema eller en sekvens med staplar, visualiserar start, varaktighet och slutförande av uppgifter över tid. I samband med ett AutoML- eller justeringsexperiment kan en tidslinjeritning visa utvecklingen av olika modellutvärderingar och deras respektive varaktigheter, ritade mot tiden. Genom att observera det här diagrammet kan användarna förstå sökprocessens effektivitet, identifiera eventuella flaskhalsar eller inaktiva perioder och förstå tidsdynamiken i olika hyperparameterutvärderingar.
fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()
Här är det resulterande diagrammet:
Segmentritning
Rita parameterrelationen som segmentritning i en studie.
Det här verktyget använder också följande argument:
learner
: Ange den elev som du tänker studera i experimentet. Den här parametern gäller endast för AutoML-experimentresultat. Genom att lämna detta tomt väljer systemet den bästa eleven i hela experimentet.params
: En lista som anger vilken hyperparameter som ska visas. Genom att lämna detta tomt visar systemet alla tillgängliga hyperparametrar.
fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()
Här är det resulterande diagrammet:
Hyperparameterns betydelse
Ett hyperparameterns betydelsediagram rangordnar visuellt hyperparametrar baserat på deras påverkan på modellprestanda i ett AutoML- eller justeringsexperiment. Det visas vanligtvis som ett stapeldiagram och kvantifierar effekten av varje hyperparameter på målmåttet. Genom att undersöka detta diagram kan utövare urskilja vilka hyperparametrar som är avgörande för att fastställa modellresultat och vilka som har minimal effekt.
Det här verktyget använder också följande argument:
learner
: Ange den elev som du tänker studera i experimentet. Den här parametern gäller endast för AutoML-experimentresultat. Genom att lämna detta tomt väljer systemet den bästa eleven i hela experimentet.params
: En lista som anger vilken hyperparameter som ska visas. Genom att lämna detta tomt visar systemet alla tillgängliga hyperparametrar.
fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()
Här är det resulterande diagrammet: