Condividi tramite


Visualizzazioni di training (anteprima)

Una versione di valutazione degli iperparametri o una versione di valutazione autoML cerca i parametri ottimali per un modello di Machine Learning. Ogni versione di valutazione è costituita da più esecuzioni, in cui ogni esecuzione valuta una combinazione di parametri specifica. Gli utenti possono monitorare queste esecuzioni usando gli elementi dell'esperimento ml in Fabric.

Il flaml.visualization modulo offre funzioni per tracciare e confrontare le esecuzioni in FLAML. Gli utenti possono usare Plotly per interagire con i tracciati dell'esperimento AutoML. Per usare queste funzioni, gli utenti devono immettere l'oggetto o flaml.tune.tune.ExperimentAnalysis ottimizzatoflaml.AutoML.

Questo articolo illustra come usare il modulo per analizzare ed esplorare i risultati della flaml.visualization versione di valutazione autoML. È possibile seguire gli stessi passaggi anche per la versione di valutazione degli iperparametri.

Importante

Questa funzionalità è disponibile in anteprima.

Creare una versione di valutazione di AutoML

AutoML offre una suite di processi automatizzati in grado di identificare la migliore pipeline di Machine Learning per il set di dati, rendendo l'intero processo di modellazione più semplice e spesso più accurato. In sostanza, consente di risparmiare i problemi di ottimizzazione manuale di modelli e iperparametri diversi.

Nella cella di codice seguente:

  1. Caricare il set di dati Iris.
  2. Suddividere i dati in set di training e test.
  3. Avviare una versione di valutazione di AutoML per adattare i dati di training.
  4. Esplorare i risultati della versione di valutazione di AutoML con le visualizzazioni di 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)

Visualizzare i risultati dell'esperimento

Dopo aver eseguito una versione di valutazione autoML, è necessario visualizzare i risultati per analizzare le prestazioni dei modelli e il comportamento dei modelli. In questa parte della documentazione viene illustrato come usare le utilità predefinite nella libreria FLAML per questo scopo.

Importare il modulo di visualizzazione

Per accedere a queste utilità di visualizzazione, eseguire il comando di importazione seguente:

import flaml.visualization as fviz

Cronologia dell'ottimizzazione

Un tracciato della cronologia di ottimizzazione include in genere il numero di prove/iterazioni sull'asse x e una metrica delle prestazioni (ad esempio accuratezza, RM edizione Standard e così via) sull'asse y. Man mano che aumenta il numero di versioni di valutazione, viene visualizzato un grafico a linee o a dispersione che indica le prestazioni di ogni versione di valutazione.

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

Ecco il tracciato risultante:

Grafico del tracciato della cronologia di ottimizzazione.

Importanza della caratteristica

Un tracciato di importanza delle caratteristiche è un potente strumento di visualizzazione che consente di comprendere il significato di diverse funzionalità di input per determinare le stime di un modello.

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

Ecco il tracciato risultante:

Grafico del tracciato dell'importanza delle caratteristiche.

Tracciato delle coordinate parallele

Un tracciato di coordinate parallelo è uno strumento di visualizzazione che rappresenta i dati multidimensionali disegnando più linee verticali (assi) corrispondenti a variabili o iperparametri, con punti dati tracciati come linee connesse su questi assi. Nel contesto di un esperimento autoML o di ottimizzazione, è fondamentale per visualizzare e analizzare le prestazioni di diverse combinazioni di iperparametri. Tracciando i percorsi delle configurazioni ad alte prestazioni, è possibile distinguere modelli o tendenze nelle scelte degli iperparametri e delle relative interazioni. Questo tracciato aiuta a capire quali combinazioni portano a prestazioni ottimali, individuando potenziali aree per un'ulteriore esplorazione e identificando eventuali compromessi tra iperparametri diversi.

Questa utilità accetta gli altri argomenti seguenti:

  • learner: specificare lo learner che si intende studiare nell'esperimento. Questo parametro è applicabile solo per i risultati dell'esperimento AutoML. Lasciando vuoto questo campo, il sistema sceglie il miglior learner nell'intero esperimento.

  • params: elenco per specificare gli iperparametri da visualizzare. Lasciando vuoto questo campo, il sistema visualizza tutti gli iperparametri disponibili.

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

Ecco il tracciato risultante:

Grafico del tracciato delle coordinate parallele.

Tracciato di contorno

Un tracciato di contorno visualizza i dati tridimensionali in due dimensioni, in cui gli assi x e y rappresentano due iperparametri e le linee di contorno o i contorni riempiti rappresentano i livelli di una metrica delle prestazioni (ad esempio, accuratezza o perdita). Nel contesto di un esperimento autoML o di ottimizzazione, un tracciato di contorno è utile per comprendere la relazione tra due iperparametri e il loro effetto combinato sulle prestazioni del modello.

Esaminando la densità e il posizionamento delle linee di contorno, è possibile identificare le aree dello spazio degli iperparametri in cui le prestazioni sono ottimizzate, verificare potenziali compromessi tra iperparametri e ottenere informazioni dettagliate sulle interazioni. Questa visualizzazione consente di perfezionare lo spazio di ricerca e il processo di ottimizzazione.

Questa utilità accetta anche gli argomenti seguenti:

  • learner: specificare lo learner che si intende studiare nell'esperimento. Questo parametro è applicabile solo per i risultati dell'esperimento AutoML. Lasciando vuoto questo campo, il sistema sceglie il miglior learner nell'intero esperimento.

  • params: elenco per specificare gli iperparametri da visualizzare. Lasciando vuoto questo campo, il sistema visualizza tutti gli iperparametri disponibili.

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

Ecco il tracciato risultante:

Grafico del tracciato di contorno.

Funzione di distribuzione empirica

Un tracciato di funzione di distribuzione empirica (EDF), spesso visualizzato come funzione passo, rappresenta la probabilità cumulativa che i punti dati siano minori o uguali a un determinato valore. All'interno di un esperimento di ottimizzazione o autoML, è possibile usare un tracciato EDF per visualizzare la distribuzione delle prestazioni del modello in diverse configurazioni degli iperparametri.

Osservando la ripidazza o l'appiattimento della curva in vari punti, si può comprendere rispettivamente la concentrazione di prestazioni del modello buone o scarse. Questa visualizzazione offre informazioni dettagliate sull'efficacia complessiva del processo di ottimizzazione, evidenziando se la maggior parte delle configurazioni tentate produce risultati soddisfacenti o se solo poche configurazioni si distinguono.

Nota

Per gli esperimenti AutoML, durante il training verranno applicati più modelli. Le versioni di valutazione di ogni learner sono rappresentate come serie di ottimizzazione. Per gli esperimenti di ottimizzazione degli iperparametri, verrà valutato solo un singolo learner. Tuttavia, è possibile fornire esperimenti di ottimizzazione aggiuntivi per visualizzare le tendenze in ogni learner.

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

Ecco il tracciato risultante:

Grafico del tracciato della funzione di distribuzione empirica.

Tracciato sequenza temporale

Un tracciato della sequenza temporale, spesso rappresentato come un diagramma di Gantt o una sequenza di barre, visualizza l'inizio, la durata e il completamento delle attività nel tempo. Nel contesto di un esperimento autoML o di ottimizzazione, un tracciato della sequenza temporale può mostrare la progressione di varie valutazioni del modello e le rispettive durate, tracciate in base al tempo. Osservando questo tracciato, gli utenti possono cogliere l'efficienza del processo di ricerca, identificare eventuali colli di bottiglia o periodi di inattività e comprendere le dinamiche temporali delle diverse valutazioni degli iperparametri.

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

Ecco il tracciato risultante:

Grafico del tracciato della sequenza temporale.

Grafico sezioni

Tracciare la relazione di parametro come tracciato di sezioni in uno studio.

Questa utilità accetta anche gli argomenti seguenti:

  • learner: specificare lo learner che si intende studiare nell'esperimento. Questo parametro è applicabile solo per i risultati dell'esperimento AutoML. Lasciando vuoto questo campo, il sistema sceglie il miglior learner nell'intero esperimento.

  • params: elenco per specificare gli iperparametri da visualizzare. Lasciando vuoto questo campo, il sistema visualizza tutti gli iperparametri disponibili.

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

Ecco il tracciato risultante:

Grafico del tracciato delle sezioni.

Importanza degli iperparametri

Un tracciato dell'importanza degli iperparametri classifica visivamente gli iperparametri in base alla loro influenza sulle prestazioni del modello in un esperimento di autoML o di ottimizzazione. Visualizzato in genere come grafico a barre, quantifica l'impatto di ogni iperparametro sulla metrica di destinazione. Esaminando questo tracciato, i professionisti possono distinguere quali iperparametri sono fondamentali per determinare i risultati del modello e quali hanno un effetto minimo.

Questa utilità accetta anche gli argomenti seguenti:

  • learner: specificare lo learner che si intende studiare nell'esperimento. Questo parametro è applicabile solo per i risultati dell'esperimento AutoML. Lasciando vuoto questo campo, il sistema sceglie il miglior learner nell'intero esperimento.

  • params: elenco per specificare gli iperparametri da visualizzare. Lasciando vuoto questo campo, il sistema visualizza tutti gli iperparametri disponibili.

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

Ecco il tracciato risultante:

Grafico del tracciato dell'importanza degli iperparametri.