Eseguire un esperimento di Machine Learning automatizzato

Completato

Per eseguire un esperimento di Machine Learning automatizzato (AutoML), è possibile configurare e inviare il processo con Python SDK.

Gli algoritmi usati da AutoML dipendono dall'attività specificata. Ad esempio, quando si vuole eseguire il training di un modello di classificazione, AutoML sceglie da un elenco di algoritmi di classificazione:

  • Regressione logistica
  • Gradient Boosting Machine (GBM) leggero
  • Albero delle decisioni
  • Foresta casuale
  • Bayes ingenuo
  • Macchina a vettori di supporto lineare (SVM)
  • XGBoost
  • E altri...

Suggerimento

Per un elenco completo degli algoritmi supportati, esplorare panoramica degli algoritmi supportati.

Limitare la selezione dell'algoritmo

Per impostazione predefinita, AutoML seleziona in modo casuale dall'intera gamma di algoritmi per l'attività specificata. È possibile scegliere di bloccare la selezione di singoli algoritmi; che può essere utile se si sa che i dati non sono adatti a un particolare tipo di algoritmo. È possibile bloccare determinati algoritmi se è necessario rispettare criteri che limitano il tipo di algoritmi di Machine Learning che è possibile usare nell'organizzazione.

Configurare un esperimento di AutoML

Quando si usa Python SDK (v2) per configurare un esperimento o un processo AutoML, si configura l'esperimento usando la classe automl. Per la classificazione, usare la automl.classification funzione come illustrato nell'esempio seguente:

from azure.ai.ml import automl

# configure the classification job
classification_job = automl.classification(
    compute="aml-cluster",
    experiment_name="auto-ml-class-dev",
    training_data=my_training_data_input,
    target_column_name="Diabetic",
    primary_metric="accuracy",
    n_cross_validations=5,
    enable_model_explainability=True
)

Annotazioni

AutoML richiede un asset di dati MLTable come input. Nell'esempio my_training_data_input fa riferimento a un asset di dati MLTable creato nell'area di lavoro di Azure Machine Learning.

Specificare la metrica primaria

Una delle impostazioni più importanti da specificare è la primary_metric. AutoML usa la metrica primaria per classificare tutti i modelli sottoposti a training e selezionare quello migliore. Azure Machine Learning supporta un set di metriche denominate per ogni tipo di attività.

Per recuperare l'elenco delle metriche disponibili quando si vuole eseguire il training di un modello di classificazione, è possibile usare la funzione ClassificationPrimaryMetrics come illustrato di seguito:

from azure.ai.ml.automl import ClassificationPrimaryMetrics
 
list(ClassificationPrimaryMetrics)

Suggerimento

È possibile trovare un elenco completo delle metriche primarie e le relative definizioni in valutare i risultati dell'esperimento di Machine Learning automatizzato.

Impostare i limiti

Ogni modello di cui AutoML esegue il training consuma risorse di calcolo. Per controllare i costi e il tempo di training, è possibile impostare limiti per un processo AutoML usando set_limits().

Sono disponibili diverse opzioni per impostare limiti per un esperimento AutoML:

  • timeout_minutes: numero di minuti dopo il quale l'esperimento AutoML completo viene terminato.
  • trial_timeout_minutes: Numero massimo di minuti che può durare un test.
  • max_trials: numero massimo di prove o modelli addestrati.
  • enable_early_termination: indica se terminare l'esperimento se il punteggio non migliora a breve termine.
classification_job.set_limits(
    timeout_minutes=60, 
    trial_timeout_minutes=20, 
    max_trials=5,
    enable_early_termination=True,
)

Per risparmiare tempo, è anche possibile eseguire più prove in parallelo. Quando si utilizza un cluster di calcolo, è possibile eseguire tante prove parallele quanti sono i nodi. Il numero massimo di prove parallele è quindi correlato al numero massimo di nodi del cluster di calcolo. Se si vuole impostare il numero massimo di prove parallele in modo che sia minore del numero massimo di nodi, è possibile usare max_concurrent_trials.

Impostare le proprietà di formazione

AutoML tenta varie combinazioni di caratteristiche e algoritmi per eseguire il training di un modello di Machine Learning. Se si sa già che alcuni algoritmi non sono adatti per i dati, è possibile escludere (o includere) un subset degli algoritmi disponibili.

È anche possibile scegliere se si vuole consentire a AutoML di usare modelli di insieme.

Invia un esperimento AutoML

È possibile inviare un processo AutoML con il codice seguente:

# submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
    classification_job
) 

È possibile monitorare le esecuzioni dei processi AutoML in Azure Machine Learning Studio. Per ottenere un collegamento diretto al processo AutoML eseguendo il codice seguente:

aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)