Tune Model Hyperparameters (Ottimizza iperparametri del modello)

Questo articolo descrive come usare il componente Tune Model Hyperparameters nella finestra di progettazione di Azure Machine Learning. L'obiettivo è determinare gli iperparametri ottimali per un modello di Machine Learning. Il componente compila e testa più modelli usando diverse combinazioni di impostazioni. Inoltre, confronta le metriche di tutti i modelli per ottenere le combinazioni di impostazioni.

I termini parametro e iperparametri possono generare confusione. I parametri del modello sono gli elementi impostati nel riquadro destro del componente. In pratica, questo componente esegue uno sweep di parametri sulle impostazioni dei parametri specificate. Apprende un set ottimale di iperparametri, che potrebbero essere diversi per ogni specifico albero delle decisioni, set di dati o metodo di regressione. Il processo di individuazione della configurazione ottimale è talvolta definito ottimizzazione.

Il componente supporta il metodo seguente per trovare le impostazioni ottimali per un modello: training integrato e ottimizzazione. In questo metodo si configura un set di parametri da usare. È quindi possibile consentire al componente di scorrere più combinazioni. Il componente misura l'accuratezza finché non trova un modello "migliore". Con la maggior parte dei componenti di apprendimento, è possibile scegliere quali parametri devono essere modificati durante il processo di training e quali devono rimanere fissi.

A seconda del periodo di esecuzione del processo di ottimizzazione, è possibile decidere di testare in modo esaustivo tutte le combinazioni. In alternativa, è possibile abbreviare il processo stabilendo una griglia di combinazioni di parametri e testando un subset casuale della griglia dei parametri.

Questo metodo genera un modello sottoposto a training che è possibile salvare per il riutilizzo.

Suggerimento

È possibile eseguire un'attività correlata. Prima di iniziare l'ottimizzazione, applicare la selezione delle funzionalità per determinare le colonne o le variabili con il valore di informazioni più elevato.

Come configurare gli iperparametri del modello di ottimizzazione

L'apprendimento degli iperparametri ottimali per un modello di Machine Learning richiede un uso considerevole delle pipeline.

Eseguire il training di un modello usando uno sweep di parametri

Questa sezione descrive come eseguire uno sweep di parametri di base, che esegue il training di un modello usando il componente Ottimizza iperparametri del modello.

  1. Aggiungere il componente Tune Model Hyperparameters alla pipeline nella finestra di progettazione.

  2. Connettere un modello non sottoposto a training all'input più a sinistra.

    Nota

    L'ottimizzazione degli iperparametri del modello può essere connessa solo ai componenti predefiniti dell'algoritmo di Machine Learning e non può supportare il modello personalizzato compilato in Create Python Model (Crea modello Python).

  3. Aggiungere il set di dati da usare per il training e connetterlo all'input intermedio degli iperparametri del modello di ottimizzazione.

    Facoltativamente, se si dispone di un set di dati con tag, è possibile connetterlo alla porta di input più a destra (set di dati di convalida facoltativo). In questo modo è possibile misurare l'accuratezza durante il training e l'ottimizzazione.

  4. Nel pannello destro di Tune Model Hyperparameters (Ottimizza iperparametri modello) scegliere un valore per La modalità di sweep dei parametri. Questa opzione controlla la modalità di selezione dei parametri.

    • Intera griglia: quando si seleziona questa opzione, il componente esegue un ciclo su una griglia predefinita dal sistema, per provare combinazioni diverse e identificare il miglior apprendimento. Questa opzione è utile quando non si conoscono le impostazioni dei parametri migliori e si vuole provare tutte le possibili combinazioni di valori.

    • Sweep casuale: quando si seleziona questa opzione, il componente selezionerà in modo casuale i valori dei parametri su un intervallo definito dal sistema. È necessario specificare il numero massimo di esecuzioni che si desidera eseguire il componente. Questa opzione è utile quando si vogliono aumentare le prestazioni del modello usando le metriche preferite, ma mantenendo comunque le risorse di calcolo.

  5. Per Colonna Etichetta aprire il selettore di colonna per scegliere una singola colonna etichetta.

  6. Scegliere il numero di esecuzioni:

    • Numero massimo di esecuzioni su sweep casuale: se si sceglie uno sweep casuale, è possibile specificare il numero di volte in cui deve essere eseguito il training del modello, usando una combinazione casuale di valori di parametro.
  7. Per Classificazione scegliere una singola metrica da usare per classificare i modelli.

    Quando si esegue uno sweep di parametri, il componente calcola tutte le metriche applicabili per il tipo di modello e le restituisce nel report Risultati sweep . Il componente usa metriche separate per i modelli di regressione e classificazione.

    Tuttavia, la metrica scelta determina la classificazione dei modelli. Solo il modello principale, classificato in base alla metrica scelta, viene restituito come modello sottoposto a training da usare per l'assegnazione dei punteggi.

  8. Per Valore di inizializzazione casuale immettere un numero intero come stato di generatore di numeri pseudo casuali usato per la selezione casuale dei valori dei parametri su un intervallo predefinito. Questo parametro è efficace solo se la modalità di sweep dei parametri è Sweep casuale.

  9. Inviare la pipeline.

Risultati dell'ottimizzazione degli iperparametri

Al termine del training:

  • Per visualizzare i risultati dello sweep, è possibile fare clic con il pulsante destro del mouse sul componente e quindi scegliere Visualizza oppure fare clic con il pulsante destro del mouse sulla porta di output sinistra del componente da visualizzare.

    I risultati di Sweep includono tutte le metriche di accuratezza e sweep dei parametri applicabili al tipo di modello e la metrica selezionata per la classificazione determina quale modello è considerato "migliore".

  • Per salvare uno snapshot del modello sottoposto a training, selezionare la scheda Output e log nel pannello destro del componente Train model (Esegui training modello ). Selezionare l'icona Registra set di dati per salvare il modello come componente riutilizzabile.

Note tecniche

Questa sezione contiene i dettagli e i suggerimenti sull'implementazione.

Funzionamento di uno sweep di parametri

Quando si configura uno sweep di parametri, si definisce l'ambito della ricerca. La ricerca potrebbe usare un numero finito di parametri selezionati in modo casuale. Oppure potrebbe trattarsi di una ricerca completa su uno spazio di parametri definito dall'utente.

  • Sweep casuale: questa opzione esegue il training di un modello usando un set di iterazioni.

    Si specifica un intervallo di valori su cui eseguire l'iterazione e il componente usa un subset scelto in modo casuale di tali valori. I valori vengono scelti con sostituzione, ovvero i numeri scelti in precedenza in modo casuale non vengono rimossi dal pool di numeri disponibili. Pertanto, la possibilità di selezionare qualsiasi valore rimane invariata in tutti i passaggi.

  • Intera griglia: l'opzione per usare l'intera griglia significa che ogni combinazione viene testata. Questa opzione è la più completa, ma richiede più tempo.

Controllo della lunghezza e della complessità del training

L'iterazione su molte combinazioni di impostazioni può richiedere molto tempo, quindi il componente offre diversi modi per vincolare il processo:

  • Limitare il numero di iterazioni usate per testare un modello.
  • Limitare lo spazio dei parametri.
  • Limitare sia il numero di iterazioni che lo spazio dei parametri.

È consigliabile eseguire la pipeline con le impostazioni per determinare il metodo di training più efficiente in un set di dati e un modello specifici.

Scelta di una metrica di valutazione

Al termine del test, il modello presenta un report contenente l'accuratezza per ogni modello in modo da poter esaminare i risultati delle metriche:

  • Per tutti i modelli di classificazione binaria viene usato un set uniforme di metriche.
  • L'accuratezza viene usata per tutti i modelli di classificazione multiclasse.
  • Per i modelli di regressione viene usato un set diverso di metriche.

Tuttavia, durante il training, è necessario scegliere una singola metrica da usare nella classificazione dei modelli generati durante il processo di ottimizzazione. È possibile che la metrica migliore varia a seconda del problema aziendale e del costo dei falsi positivi e dei falsi negativi.

Metriche usate per la classificazione binaria

  • L'accuratezza è la percentuale di risultati reali rispetto ai casi totali.

  • La precisione è la proporzione di risultati veri a risultati positivi.

  • Il richiamo è la frazione di tutti i risultati corretti su tutti i risultati.

  • F-score è una misura che bilancia la precisione e il richiamo.

  • AUC è un valore che rappresenta l'area sotto la curva quando vengono tracciati falsi positivi sull'asse x e vengono tracciati veri positivi sull'asse y.

  • La perdita media dei log è la differenza tra due distribuzioni di probabilità: quella vera e quella nel modello.

Metriche usate per la regressione

  • Media degli errori assoluti calcola la media di tutti gli errori nel modello, dove l'errore indica la distanza del valore stimato dal valore true. Spesso è abbreviato come MAE.

  • Radice dell'errore quadratico medio misura la media dei quadrati degli errori e quindi accetta la radice di tale valore. Spesso è abbreviato come RMSE.

  • L'errore assoluto relativo rappresenta l'errore come percentuale del valore true.

  • L'errore quadratizzato relativo normalizza l'errore quadratizzato totale dividendo in base all'errore quadratizzato totale dei valori stimati.

  • Il coefficiente di determinazione è un singolo numero che indica il grado di adattamento dei dati a un modello. Un valore indica che il modello corrisponde esattamente ai dati. Un valore pari a zero indica che i dati sono casuali o altrimenti non possono essere adatti al modello. Viene spesso chiamato r2, R2 o r quadrato.

Componenti che non supportano uno sweep di parametri

Quasi tutti gli studenti di Azure Machine Learning supportano la convalida incrociata con uno sweep di parametri integrato, che consente di scegliere i parametri con cui eseguire la pipeline. Se lo strumento di apprendimento non supporta l'impostazione di un intervallo di valori, è comunque possibile usarlo nella convalida incrociata. In questo caso, viene selezionato un intervallo di valori consentiti per lo sweep.

Passaggi successivi

Vedere il set di componenti disponibili per Azure Machine Learning.