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 modulo flaml.visualization
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 flaml.AutoML
o flaml.tune.tune.ExperimentAnalysis
ottimizzato.
Questo articolo illustra come usare il modulo flaml.visualization
per analizzare ed esplorare i risultati della versione di valutazione AutoML. È possibile seguire gli stessi passaggi anche per la versione di valutazione degli iperparametri.
Importante
Questa funzionalità si trova 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:
- Caricheremo il set di dati Iris.
- Suddivideremo i dati in set di training e test.
- Avvieremo una versione di valutazione di AutoML per adattare i dati di training.
- Esploreremo 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)
Visualizzeremo 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, RMSE 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:
Importanza della caratteristica
Un tracciato di importanza delle caratteristiche è un potente strumento di visualizzazione che consente di comprendere l'importanza 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:
Tracciato delle coordinate parallele
Un tracciato delle coordinate parallele è 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 argomenti seguenti:
learner
: specificare il 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:
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 gli argomenti seguenti:
learner
: specificare il 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:
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 ripidità 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:
Tracciato della 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 delle sezioni
Tracciare la relazione di parametro come tracciato di sezioni in uno studio.
Questa utilità accetta gli argomenti seguenti:
learner
: specificare il 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:
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 gli argomenti seguenti:
learner
: specificare il 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: