Tune Model Hyperparameters

Questo articolo descrive come usare il componente Tune Model Hyperparameters in Progettazione Azure Machine Learning. L'obiettivo è determinare gli iperparametri ottimali per un modello di Machine Learning. Il componente compila e verifica più modelli usando combinazioni diverse di impostazioni. Confronta le metriche su tutti i modelli per ottenere le combinazioni di impostazioni.

I termini parametro e iperparametri possono confondere. I parametri del modello sono quelli impostati nel riquadro destro del componente. In pratica, questo componente esegue uno sweep di parametri sulle impostazioni dei parametri specificate. Viene appreso un set ottimale di iperparametri, che potrebbero essere diversi per ogni albero decisionale specifico, set di dati o metodo di regressione. Il processo di ricerca della configurazione ottimale è talvolta chiamato ottimizzazione.

Il componente supporta il metodo seguente per trovare le impostazioni ottimali per un modello: training integrato e ottimizzazione. In questo metodo viene configurato un set di parametri da usare. Si consente quindi di eseguire l'iterazione del componente su più combinazioni. Il componente misura l'accuratezza fino a quando non trova un modello "migliore". Con la maggior parte dei componenti di learner, è possibile scegliere quali parametri devono essere modificati durante il processo di training e che 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 ridurre il processo definendo 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ù alto.

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

In questa sezione viene descritto come eseguire uno sweep di parametri di base, che esegue il training di un modello usando il componente Ottimizza iperparametri 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

    Ottimizzare gli iperparametri modello può essere connesso solo ai componenti dell'algoritmo di Machine Learning predefiniti e non può supportare il modello personalizzato compilato in Create Python Model.

  3. Aggiungere il set di dati che si vuole 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 Ottimizzare gli iperparametri del modello scegliere un valore per la modalità di scorrimento dei parametri. Questa opzione controlla la modalità di selezione dei parametri.

    • Intera griglia: quando si seleziona questa opzione, il componente scorre su una griglia predefinita dal sistema, per provare combinazioni diverse e identificare il migliore learner. Questa opzione è utile quando non si conosce le impostazioni dei parametri migliori e si vuole provare tutte le possibili combinazioni di valori.

    • Sweep casuale: quando si seleziona questa opzione, il componente seleziona in modo casuale i valori dei parametri su un intervallo definito dal sistema. È necessario specificare il numero massimo di esecuzioni da eseguire il componente. Questa opzione è utile quando si desidera aumentare le prestazioni del modello usando le metriche di propria scelta ma conservano 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 nello 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 dei parametri.
  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 di 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, come classificato dalla metrica scelta, viene restituito come modello sottoposto a training da usare per l'assegnazione dei punteggi.

  8. Per inizializzazione casuale immettere un numero intero come stato del generatore di numeri pseudo casuali usato per selezionare in modo casuale i valori dei parametri su un intervallo pre-definito. Questo parametro è efficace solo se la modalità di scorrimento dei parametri è casuale.

  9. Inviare la pipeline.

Risultati dell'ottimizzazione dell'iperparametro

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 o fare clic con il pulsante destro del mouse sulla porta di output a sinistra del componente da visualizzare.

    I risultati di Sweep includono tutte le metriche di pulizia e accuratezza dei parametri che si applicano al tipo di modello e la metrica selezionata per la classificazione determina il modello considerato "migliore".

  • Per salvare uno snapshot del modello sottoposto a training, selezionare la scheda Outputs+logs nel pannello destro del componente Training modello . Selezionare l'icona Registra set di dati per salvare il modello come componente riutilizzabile.

Note tecniche

Questa sezione contiene dettagli e 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 essere una ricerca esaustiva su uno spazio di parametri definito.

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

    Specificare 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. Quindi 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 la maggior parte del 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 limitare 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 più efficiente di training in un determinato set di dati e modello.

Scelta di una metrica di valutazione

Alla fine del test, il modello presenta un report contenente l'accuratezza per ogni modello in modo che sia possibile esaminare i risultati della metrica:

  • Un set uniforme di metriche viene usato per tutti i modelli di classificazione binaria.
  • L'accuratezza viene usata per tutti i modelli di classificazione a più classi.
  • Viene usato un set diverso di metriche per i modelli di regressione.

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

Metriche usate per la classificazione binaria

  • L'accuratezza è la proporzione dei risultati veri ai casi totali.

  • La precisione è la proporzione dei risultati veri ai 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 i falsi positivi vengono tracciati sull'asse x e i veri positivi vengono tracciati sull'asse y.

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

Metriche usate per la regressione

  • Media di errore assoluto media tutti gli errori nel modello, in cui l'errore indica la distanza del valore stimato dal valore true. È spesso abbreviato come MAE.

  • La radice dell'errore quadratico medio misura la media dei quadrati degli errori e quindi prende la radice di tale valore. È spesso abbreviato come RMSE.

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

  • L'errore quadrato relativo normalizza l'errore quadrato totale suddividendo l'errore totale quadrato dei valori stimati.

  • Il coefficiente di determinazione è un singolo numero che indica il modo in cui i dati si adattano a un modello. Un valore di uno significa 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. È 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.