Condividi tramite


Tune Model Hyperparameters

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Esegue lo sweep di parametri su un modello per determinare le impostazioni ottimali dei parametri

Categoria: Machine Learning/Train

Nota

Si applica a: Machine Learning Studio (versione classica)

Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Tune Model Hyperparameters in Machine Learning Studio (versione classica) per determinare gli iperparametramenti ottimali per un determinato modello di Machine Learning. Il modulo compila e testa più modelli, usando combinazioni diverse di impostazioni, e confronta le metriche su tutti i modelli per ottenere la combinazione di impostazioni.

I termini parametro eiperparametre possono generare confusione. I parametri del modello sono gli elementi impostati nel riquadro delle proprietà. Fondamentalmente, questo modulo esegue uno sweep di parametri sulle impostazioni dei parametri specificate e apprende un set ottimale di iperparamezzi , che possono essere diversi per ogni albero delle decisioni, set di dati o metodo di regressione specifico. Il processo di individuazione della configurazione ottimale viene talvolta definito ottimizzazione.

Il modulo supporta due metodi per trovare le impostazioni ottimali per un modello:

  • Training e ottimizzazione integrati: si configura un set di parametri da usare e quindi si consente al modulo di eseguire l'iterazione su più combinazioni, misurando l'accuratezza fino a trovare un modello "migliore". Con la maggior parte dei moduli di Apprendimento è possibile scegliere quali parametri modificare durante il processo di training e quali devono rimanere fissi.

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

  • Convalida incrociata con ottimizzazione: con questa opzione si dividono i dati in un numero di sezioni e quindi si compilano e testano modelli in ogni sezione. Questo metodo offre la migliore accuratezza e può aiutare a trovare problemi con il set di dati. Tuttavia, il training richiede più tempo.

Entrambi i metodi generano un modello con training che è possibile salvare per il nuovo uso.

  • Se si sta creando un modello di clustering, usare Sweep Clustering per determinare automaticamente il numero ottimale di cluster e altri parametri.

  • Prima dell'ottimizzazione, applicare la selezione delle caratteristiche per determinare le colonne o le variabili con il valore di informazioni più elevato. Per altre informazioni, vedere Feature Selection.

Come configurare l'ottimizzazione degli iperparameboli del modello

In genere, l'apprendimento degli iperparametramenti ottimali per un determinato modello di Machine Learning richiede una notevole sperimentazione. Questo modulo supporta sia il processo di ottimizzazione iniziale che la convalida incrociata per testare l'accuratezza del modello:

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 data mining di un modello usando il modulo Tune Model Hyperparameters (Ottimizza iperparamezzi modello ).

  1. Aggiungere il modulo Tune Model Hyperparameters all'esperimento in Studio (versione classica).

  2. Connessione un modello senza training (un modello in formato iLearner) all'input più a sinistra.

  3. Impostare l'opzione Create trainer mode (Crea modalità trainer) su Parameter Range (Intervallo di parametri) e usare Range Builder (Generatore di intervalli) per specificare un intervallo di valori da usare nell'sweep dei parametri.

    Quasi tutti i moduli di classificazionee regressione supportano uno sweep di parametri integrato. Per gli studenti che non supportano la configurazione di un intervallo di parametri, è possibile testare solo i valori dei parametri disponibili.

    È possibile impostare manualmente il valore per uno o più parametri e quindi eseguire lo sweep sui parametri rimanenti. Ciò potrebbe risparmiare tempo.

  4. Aggiungere il set di dati da usare per il training e connetterlo all'input intermedio di Tune Model Hyperparameters (Ottimizza iperparamementi modello).

    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). Ciò consente di misurare l'accuratezza durante il training e l'ottimizzazione.

  5. Nel riquadro Proprietà di Tune Model Hyperparameters (Ottimizza iperparamezzi modello) scegliere un valore per Parameter sweeping mode (Modalità sweep dei parametri). Questa opzione controlla la modalità di selezione dei parametri.

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

    È anche possibile ridurre le dimensioni della griglia ed eseguire uno sweep di griglia casuale . La ricerca ha dimostrato che questo metodo produce gli stessi risultati, ma è più efficiente dal punto di vista del calcolo.

    • Sweep casuale: quando si seleziona questa opzione, il modulo selezionerà in modo casuale i valori dei parametri in un intervallo definito dal sistema. È necessario specificare il numero massimo di esecuzioni che si desidera venga eseguito dal modulo. Questa opzione è utile per i casi in cui si vogliono migliorare le prestazioni del modello usando le metriche desiderate, ma conservando comunque le risorse di calcolo.
  6. Per Colonna etichetta avviare il selettore di colonna per scegliere una colonna con etichetta singola.

  7. Scegliere una singola metrica da usare per la classificazione dei modelli.

    Quando si esegue uno sweep di parametri, tutte le metriche applicabili per il tipo di modello vengono calcolate e restituite nel report Dei risultati dello sweep . Metriche separate vengono usate per i modelli di regressione e classificazione.

    Tuttavia, la metrica scelta determina come vengono classificati i modelli. Solo il modello superiore, classificato in base alla metrica scelta, viene restituito come modello con training da usare per l'assegnazione dei punteggi.

  8. Per Valore di inizializzazione casuale, digitare un numero da usare durante l'inizializzazione dello sweep del parametro.

    Se si sta formando un modello che supporta uno sweep di parametri integrato, è anche possibile impostare un intervallo di valori di seed da usare e scorrere anche i valori di seme casuali. Ciò può essere utile per evitare distorsioni introdotte dalla selezione del valore di seeding.

  9. Eseguire l'esperimento.

Risultati dell'ottimizzazione degli iperparameboli

Al termine del training:

  • Per visualizzare un set di metriche di accuratezza per il modello migliore, fare clic con il pulsante destro del mouse sul modulo, selezionare Risultati sweep e quindi selezionare Visualizza.

    Tutte le metriche di accuratezza applicabili al tipo di modello vengono restituite, ma la metrica selezionata per la classificazione determina quale modello è considerato "migliore". Le metriche vengono generate solo per il modello con la posizione più alta.

  • Per visualizzare le impostazioni derivate per il modello "migliore", fare clic con il pulsante destro del mouse sul modulo, selezionare Modello con training migliore e quindi fare clic su Visualizza. Il report include le impostazioni dei parametri e i pesi delle funzionalità per le colonne di input.

  • Per usare il modello per l'assegnazione dei punteggi in altri esperimenti, senza dover ripetere il processo di ottimizzazione, fare clic con il pulsante destro del mouse sull'output del modello e scegliere Salva come modello con training.

Eseguire la convalida incrociata con uno sweep di parametri

In questa sezione viene descritto come combinare uno sweep di parametri con la convalida incrociata. Questo processo richiede più tempo, ma è possibile specificare il numero di fold e ottenere la quantità massima di informazioni sul set di dati e sui modelli possibili.

  1. Aggiungere il modulo Partition and Sample all'esperimento e connettere i dati di training.

  2. Scegliere l'opzione Assegna a rilasci e specificare un numero di fold in cui dividere i dati. Se non si specifica un numero, per impostazione predefinita vengono usate 10 fold. Le righe vengono suddivise in modo casuale in queste parti, senza sostituzione.

  3. Per bilanciare il campionamento in una colonna, impostare la suddivisione Stratified su TRUE e quindi selezionare la colonna strata. Ad esempio, se si dispone di un set di dati sbilanciato, è possibile dividere il set di dati in modo che ogni parte oselega lo stesso numero di case di minoranza.

  4. Aggiungere il modulo Tune Model Hyperparameters all'esperimento.

  5. Connessione uno dei moduli di Machine Learning in questa categoria all'input a sinistra di Tune Model Hyperparameters (Ottimizza iperparametramenti modello).

  6. Nel riquadro Proprietà dello strumento di apprendimento impostare l'opzione Create trainer mode (Crea modalità di apprendimento) su Parameter Range (Intervallo di parametri) e usare Range Builder (Generatore di intervalli) per specificare un intervallo di valori da usare nello sweep dei parametri.

    Non è necessario specificare un intervallo per tutti i valori. È possibile impostare manualmente il valore per alcuni parametri e quindi eseguire lo sweep sui parametri rimanenti. Ciò potrebbe risparmiare tempo.

    Per un elenco degli studenti che non supportano questa opzione, vedere la sezione Note tecniche.

  7. Connessione'output di Partition e Sample all'input del set di dati di training con etichetta Tune Model Hyperparameters.

  8. Facoltativamente, è possibile connettere un set di dati di convalida all'input più a destra di Tune Model Hyperparameters (Ottimizza iperparametramenti modello). Per la convalida incrociata, è necessario solo un set di dati di training.

  9. Nel riquadro Proprietà di Tune Model Hyperparameters (Ottimizza iperparamezzi modello) indicare se si vuole eseguire uno sweep casuale o uno sweep a griglia. Lo sweep della griglia è esaustivo, ma richiede più tempo. Una ricerca casuale di parametri può ottenere risultati ottimali senza richiedere molto tempo.

    Numero massimo di esecuzioni in sweep casuale: se si sceglie uno sweep casuale, è possibile specificare quante volte deve essere eseguito il training del modello, usando una combinazione casuale di valori di parametro.

    Numero massimo di esecuzioni nella griglia casuale: questa opzione controlla anche il numero di iterazioni su un campionamento casuale dei valori dei parametri, ma i valori non vengono generati in modo casuale dall'intervallo specificato. viene invece creata una matrice di tutte le possibili combinazioni di valori di parametro e viene effettuato un campionamento casuale sulla matrice. Questo metodo è più efficiente e meno incresciato all'oversampling o al sottocampionamento a livello di regione.

    Suggerimento

    Per una descrizione più approfondita di queste opzioni, vedere la sezione Note tecniche.

  10. Scegliere una colonna con etichetta singola.

  11. Scegliere una singola metrica da usare per classificare il modello. Vengono calcolate molte metriche, quindi selezionare quella più importante da usare per ordinare i risultati.

  12. Per Valore di inizializzazione casuale digitare un numero da usare durante l'inizializzazione dello sweep dei parametri.

    Se si sta formando un modello che supporta uno sweep di parametri integrato, è anche possibile impostare un intervallo di valori di seed da usare e scorrere anche i semi casuali. Questa opzione è facoltativa, ma può essere utile per evitare distorsioni introdotte dalla selezione dei seed.

  13. Aggiungere il modulo Modello di convalida incrociata. Connessione'output di Partition e Sample all'input Dataset e connettere l'output di Tune Model Hyperparameters (Ottimizza iperparamermi modello) all'input del modello senza training.

  14. Eseguire l'esperimento.

Risultati della convalida incrociata

Al termine della convalida incrociata:

  • Per visualizzare i risultati della valutazione, fare clic con il pulsante destro del mouse sul modulo, selezionare Risultati della valutazione per ripiegazione e quindi selezionare Visualizza.

    Le metriche di accuratezza vengono calcolate in base al passaggio di convalida incrociata e possono variare leggermente a seconda del numero di fold selezionate.

  • Per vedere come è stato diviso il set di dati e come il modello "migliore" avrebbe ottenuto il punteggio di ogni riga nel set di dati, fare clic con il pulsante destro del mouse sul modulo, selezionare Risultati con punteggio e quindiselezionare Visualizza.

  • Se si salva questo set di dati per un successivo utilizzo, le assegnazioni di fold vengono mantenute. Ad esempio, il datsaet salvato potrebbe essere simile al seguente:

    Assegnazioni di tipo fold Classe Età (prima colonna della funzionalità)
    2 0 35
    1 1 17
    3 0 62
  • Per ottenere le impostazioni dei parametri per il modello "migliore", fare clic con il pulsante destro del mouse su Tune Model Hyperparameters

Esempio

Per esempi di come viene usato questo modulo, vedere l'Azure AI Gallery:

Note tecniche

Questa sezione contiene informazioni dettagliate sull'implementazione, suggerimenti e risposte alle domande frequenti.

Funzionamento di uno sweep dei parametri

Questa sezione descrive il funzionamento generale dello sweep dei parametri e l'interazione delle opzioni in questo modulo.

Quando si configura uno sweep di parametri, si definisce l'ambito della ricerca, per usare un numero finito di parametri selezionati in modo casuale o una ricerca esaustiva su uno spazio dei parametri definito.

  • Sweep casuale: questa opzione consente di eseguire il trains di un modello usando un numero impostato di iterazioni.

    Si specifica un intervallo di valori su cui eseguire l'iterazione e il modulo usa un subset scelto casualmente 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. Di conseguenza, la possibilità che un valore venga selezionato rimane invariato in tutti i passaggi.

  • Sweep griglia: questa opzione crea una matrice, o griglia, che include ogni combinazione dei parametri nell'intervallo di valori specificato. Quando si avvia l'ottimizzazione con questo modulo, viene training di più modelli usando combinazioni di questi parametri.

  • Intera griglia: l'opzione per usare l'intera griglia significa che viene testata ogni combinazione. Questa opzione può essere considerata la più completa, ma richiede la maggior parte del tempo.

  • Griglia casuale: se si seleziona questa opzione, la matrice di tutte le combinazioni viene calcolata e i valori vengono campionati dalla matrice, in base al numero di iterazioni specificato.

    Ricerche recenti hanno dimostrato che le sweep casuali possono avere prestazioni migliori rispetto a quelle della griglia.

Controllo della lunghezza e della complessità del training

L'esecuzione dell'iter su molte combinazioni di impostazioni può richiedere molto tempo, quindi il modulo 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 numer di iterazioni che lo spazio dei parametri

È consigliabile sperimentare le impostazioni per determinare il metodo di training più efficiente su un set di dati e un modello specifici.

Scelta di una metrica di valutazione

Alla fine viene presentato un report contenente l'accuratezza di ogni modello in modo da poter esaminare i risultati della metrica. Viene usato un set uniforme di metriche per tutti i modelli di classificazione e un set diverso di metriche per i modelli di regressione. Durante il training, tuttavia, è necessario scegliere una singola metrica da usare per classificare i modelli generati durante il processo di ottimizzazione. Si potrebbe scoprire che la metrica migliore varia a seconda del problema aziendale e del costo di falsi positivi e falsi negativi.

Per altre informazioni, vedere Come valutare le prestazioni del modello in Machine Learning

Metriche usate per la classificazione

  • Precisione Percentuale di risultati veri rispetto al totale dei case.

  • Precisione Percentuale di risultati veri a risultati positivi.

  • Ricordare Frazione di tutti i risultati corretti su tutti i risultati.

  • Punteggio F Misura che bilancia precisione e richiamo.

  • AUC 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.

  • Perdita di log media Differenza tra due distribuzioni di probabilità: quella vera e quella nel modello.

  • Eseguire il training della perdita di log Miglioramento fornito dal modello su una stima casuale.

Metriche usate per la regressione

  • Errore assoluto medio Media di tutto l'errore nel modello, dove errore indica la distanza del valore previsto dal valore true. Spesso abbreviato come MAE.

  • Radice dell'errore quadratica medio Misura la media dei quadrati degli errori e quindi accetta la radice di tale valore. Spesso abbreviato in RMSE

  • Errore assoluto relativo Rappresenta l'errore come percentuale del valore true.

  • Errore quadratio relativo Normalizza l'errore quadratico totale dividendo per l'errore quadratico totale dei valori stimati.

  • Coefficiente di determinazione Singolo numero che indica il modo in cui i dati si adattano a un modello. Il valore 1 indica che il modello corrisponde esattamente ai dati. Il valore 0 indica che i dati sono casuali o in caso contrario non possono essere adattati al modello. Spesso definito r2, R2 o r quadrato.

Moduli che non supportano uno sweep di parametri

Quasi tutti gli studenti in Machine Learning supportano la convalida incrociata con uno sweep di parametri integrato, che consente di scegliere i parametri con cui sperimentare. 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.

Gli studenti seguenti non supportano l'impostazione di un intervallo di valori da usare in uno sweep di parametri:

Input previsti

Nome Tipo Descrizione
Untrained model ILearner interface Modello senza training per lo sweep di parametri
Dataset di training Tabella dati Set di dati di input per il training
Set di dati di convalida Tabella dati Set di dati di input per la convalida (per una modalità di convalida di tipo training/test). Questo input è facoltativo.

Parametri del modulo

Nome Intervallo Type Predefinito Descrizione
Specifica la modalità di sweep dei parametri Elenco Metodi di sweep Sweep casuale Esegue lo sweep dell'intera griglia nello spazio dei parametri oppure esegue lo sweep usando un numero limitato di esecuzioni di esempio
Maximum number of runs on random sweep [1;10000] Integer 5 Esegue il numero massimo di esecuzioni mediante lo sweep casuale
Random seed any Integer 0 Specifica un valore per l'inizializzazione del generatore di numeri casuali
Colonna di etichetta any ColumnSelection Colonna di etichetta
Metric for measuring performance for classification Elenco Tipo di metrica di classificazione binaria Accuratezza Seleziona la metrica usata per la valutazione dei modelli di classificazione
Metric for measuring performance for regression Elenco Tipo regressionmetric Errore assoluto medio Seleziona la metrica usata per la valutazione dei modelli di regressione

Output

Nome Tipo Descrizione
Risultati dello sweep Tabella dati Metrica dei risultati per le esecuzioni dello sweep dei parametri
Modello migliore con training ILearner interface Modello che offre le prestazioni migliori sul set di dati di training

Vedi anche

Elenco moduli A-Z
Esecuzione del training
Cross-Validate Model