Cross-Validate Model

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.

Convalida incrociata le stime dei parametri per i modelli di classificazione o regressione partizionando i dati

Categoria: Machine Learning/Valuta

Nota

Si applica a: Machine Learning Studio (versione classica)

Moduli di trascinamento della selezione simili sono disponibili nella finestra Azure Machine Learning progettazione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Cross-Validate Model in Machine Learning Studio (versione classica). La convalida incrociata è una tecnica importante spesso usata in Machine Learning per valutare sia la variabilità di un set di dati che l'affidabilità di qualsiasi modello con training usando questi dati.

Il modulo Cross-Validate Model accetta come input un set di dati con etichetta, insieme a un modello di classificazione o regressione senza training. Divide il set di dati in un certo numero di subset (ripiegamenti), compila un modello in ogni ripiega e quindi restituisce un set di statistiche di accuratezza per ogni ripiega. Confrontando le statistiche di accuratezza per tutte le fold, è possibile interpretare la qualità del set di dati e capire se il modello è soggetto a variazioni nei dati.

La convalida incrociata restituisce anche risultati e probabilità stimati per il set di dati, in modo da poter valutare l'affidabilità delle stime.

Funzionamento della convalida incrociata

  1. La convalida incrociata divide in modo casuale i dati di training in un numero di partizioni, denominate anche fold.

    • L'algoritmo prevede 10 sezioni per impostazione predefinita se il set di dati non è stato partizionato in precedenza.
    • Per dividere il set di dati in un numero diverso di fold, è possibile usare il modulo Partition and Sample (Partizione e esempio) e indicare il numero di fold da usare.
  2. Il modulo riserva i dati nella fold 1 da usare per la convalida (questa operazione viene talvolta definita holdout fold) e usa le restanti fold per eseguire il training di un modello.

    Ad esempio, se si creano cinque fold, il modulo genererebbe cinque modelli durante la convalida incrociata, ogni modello con training con 4/5 dei dati e testato sul rimanente 1/5.

  3. Durante il test del modello per ogni fold, vengono valutate più statistiche di accuratezza. Le statistiche usate dipendono dal tipo di modello che si sta valutando. Vengono usate statistiche diverse per valutare i modelli di classificazione e i modelli di regressione.

  4. Al termine del processo di compilazione e valutazione per tutte le ripiegazioni, il modello di convalida incrociata genera un set di metriche delle prestazioni e risultati con punteggio per tutti i dati. È consigliabile esaminare queste metriche per verificare se una singola fold ha un'accuratezza particolarmente elevata o bassa

Vantaggi della convalida incrociata

Un modo diverso e molto comune per valutare un modello è dividere i dati in un set di training e test usando Dividi dati e quindi convalidare il modello nei dati di training. Tuttavia, la convalida incrociata offre alcuni vantaggi:

  • La convalida incrociata usa più dati di test.

    La convalida incrociata misura le prestazioni del modello con i parametri specificati in uno spazio dati più grande. In altre informazioni, la convalida incrociata usa l'intero set di dati di training sia per il training che per la valutazione, anziché per alcune parti. Se invece si convalida un modello usando i dati generati da una suddivisione casuale, in genere si valuta il modello al massimo sul 30% dei dati disponibili.

    Tuttavia, poiché la convalida incrociata viene eseguita più volte su un set di dati più grande, è molto più intensiva dal punto di vista del calcolo e richiede molto più tempo rispetto alla convalida in base a una suddivisione casuale.

  • La convalida incrociata valuta il set di dati e il modello.

    La convalida incrociata non misura semplicemente l'accuratezza di un modello, ma offre anche un'idea del livello di rappresentativo del set di dati e della sensibilità del modello alle variazioni nei dati.

Come usare il modello di convalida incrociata

Esistono due modi principali per usare la convalida incrociata.

L'esecuzione della convalida incrociata può richiedere molto tempo se si usano molti dati. È pertanto possibile usare Il modello con convalida incrociata nella fase iniziale di compilazione e test del modello, per valutare la validità dei parametri del modello (presupponendo che il tempo di calcolo sia tollerabile) e quindi eseguire il training e la valutazione del modello usando i parametri stabiliti con i moduli Train Model e Evaluate Model.

Convalida incrociata semplice

In questo scenario si eseere il training e il test del modello usando il modello di convalida incrociata.

  1. Aggiungere il modulo Cross Validate Model all'esperimento. È possibile trovarlo in Machine Learning Studio (versione classica), nella categoria Machine Learning, in Valuta.

  2. Connessione'output di qualsiasi modello di classificazione o regressione.

    Ad esempio, se si usa una macchina a punti Bayes Point Machine a due classi per la classificazione, configurare il modello con i parametri desiderati e quindi trascinare un connettore dalla porta del modello senza training del classificatore alla porta corrispondente del modello di convalida incrociata.

    Suggerimento

    Non è necessario eseguire il training del modello perché il modello con convalida incrociata viene automaticamente addestrato come parte della valutazione.

  3. Nella porta Set di dati del modello di convalida incrociata connettere qualsiasi set di dati di training con etichetta.

  4. Nel riquadro Proprietà del modello di convalida incrociata fare clic su Avvia selettore di colonna e scegliere la singola colonna che contiene l'etichetta della classe o il valore stimabile.

  5. Impostare un valore per il parametro random se si vuole poter ripetere i risultati della convalida incrociata tra esecuzioni successive sugli stessi dati.

  6. Eseguire l'esperimento.

  7. Per una descrizione dei report, vedere la sezione Risultati.

    Per ottenere una copia del modello per il nuovo uso in un secondo momento, fare clic con il pulsante destro del mouse sull'output del modulo che contiene l'algoritmo , ad esempio Two Class Bayes Point Machine, e scegliere Salva come modello con training.

Convalida incrociata con uno sweep di parametri

In questo scenario si usa Tune Model Hyperparameters (Ottimizza iperparamezzi modello) per identificare il modello migliore effettuando uno sweep dei parametri e quindi si usa Cross Validate Model (Modello di convalida incrociata) per verificarne l'affidabilità. Questo è il modo più semplice per Machine Learning il modello migliore e quindi generare le metriche per esso.

  1. Aggiungere il set di dati per il training del modello e uno dei moduli di Machine Learning che crea un modello di classificazione o regressione.

  2. Aggiungere il modulo Tune Model Hyperparameters all'esperimento. È possibile trovarlo nella categoria Machine Learning, in Train (Training).

  3. Collegare il modello di classificazione o regressione all'input del modello senza training di Ottimizzare gli iperparamezionari del modello.

  4. Aggiungere il modulo Cross Validate Model all'esperimento. È possibile trovarlo in Machine Learning Studio (versione classica), nella categoria Machine Learning, in Valuta.

  5. Individuare l'output del modello con training migliore di Ottimizzare gli iperparamermi del modello e connetterlo all'input del modello senza training del modello di convalida incrociata.

  6. Connessione i dati di training nell'input del set di dati training del modello di convalida incrociata.

  7. Eseguire l'esperimento.

  8. Dopo aver esaminato i risultati e i punteggi di valutazione, per ottenere una copia del modello migliore per un successivo utilizzo, fare clic con il pulsante destro del mouse sul modulo Tune Model Hyperparameters (Ottimizza iperparametratori modello), selezionare Trained Best Model (Modello con training ottimale) e quindi fare clic su Save as Trained Model (Salva come modello con training).

Nota

È possibile ottenere risultati diversi se si usa l'input nel modulo Ottimizzare gli iperparamermi del modello per il set di dati di convalida facoltativo.

Questo perché quando si usa questa opzione, si specifica in effetti un set di dati di training statico e un set di dati di test. Di conseguenza, il processo di convalida incrociata usa anche i set di dati di training e test specificati, anziché suddividere i dati in n gruppi per il training e il test. Tuttavia, le metriche vengono generate in base a un numero di volte più volte.

Risultati

Al termine di tutte le iterazioni, il modello di convalida incrociata crea punteggi per l'intero set di dati, nonché metriche delle prestazioni che è possibile usare per valutare la qualità del modello.

Scored results

Il primo output del modulo fornisce i dati di origine per ogni riga, insieme ad alcuni valori stimati e probabilità correlate.

Per visualizzare questi risultati, nell'esperimento fare clic con il pulsante destro del mouse sul modulo Cross-Validate Model (Convalida incrociata modello), selezionare Risultati con punteggio e fare clic su Visualizza.

Nome nuova colonna Descrizione
Assegnazioni di tipo Fold Indica l'indice in base 0 dell'oggetto fold a cui è stata assegnata ogni riga di dati durante la convalida incrociata.
Scored Labels Questa colonna viene aggiunta alla fine del set di dati e contiene il valore previsto per ogni riga
Probabilità con punteggio Questa colonna viene aggiunta alla fine del set di dati e indica la probabilità stimata del valore in Etichette con punteggio.

Valutazione dei risultati

Il secondo report è raggruppato per fold. Tenere presente che, durante l'esecuzione, il modello di convalida incrociata suddivide in modo casuale i dati di training in n fold (per impostazione predefinita, 10). In ogni iterazione sul set di dati, il modello con convalida incrociata usa una sola volta come set di dati di convalida e usa le restanti n-1 per eseguire il training di un modello. Ognuno dei modelli n viene testato in base ai dati in tutte le altre fold.

In questo report le fold sono elencate in base al valore dell'indice, in ordine crescente. Per ordinare in qualsiasi altra colonna, è possibile salvare i risultati come set di dati.

Per visualizzare questi risultati, nell'esperimento fare clic con il pulsante destro del mouse sul modulo Cross-Validate Model (Convalida incrociata modello), selezionare Risultati valutazione per ripiega e fare clic su Visualizza.

Nome colonna Descrizione
Numero di fold Identificatore per ogni fold. Se sono state create 5 fold, saranno presenti 5 subset di dati, numerati da 0 a 4.
Numero di esempi in fold Numero di righe assegnate a ogni ripiega. Dovrebbero essere approssimativamente uguali.
Modellare Algoritmo usato nel modello, identificato dal nome dell'API

Inoltre, le metriche seguenti sono incluse per ogni fold, a seconda del tipo di modello che si sta valutando.

  • Modelli di classificazione: precisione, richiamo, punteggio F, AUC, perdita media del log, perdita del log di training

  • Modelli di regressione: probabilità log negativa, errore assoluto medio, errore quadratica medio radice, errore assoluto relativo e coefficiente di determinazione

Esempio

Per esempi dell'uso della convalida incrociata in Machine Learning, vedere l'Azure AI Gallery:

Note tecniche

  • È consigliabile normalizzare i set di dati prima di usarli per la convalida incrociata.

  • Poiché il modello con convalida incrociata viene addestrato e convalidato più volte, è molto più intensivo dal punto di vista del calcolo e richiede più tempo per il completamento rispetto a quando il modello è stato convalidato usando un set di dati diviso in modo casuale.

  • È consigliabile usare Cross-Validate Model per stabilire l'adeguatezza del modello in base ai parametri specificati. Usare Tune Model Hyperparameters per identificare i parametri ottimali.

  • Non è necessario suddividere il set di dati in set di training e test quando si usa la convalida incrociata per misurare l'accuratezza del modello.

    Tuttavia, se viene fornito un set di dati di convalida a monte, il modulo usa i set di dati di training e test specificati invece di suddividersi in n fold. In questo modo, il primo set di dati viene usato per eseguire il training del modello per ogni combinazione di parametri e i modelli vengono valutati nel set di dati di convalida. Vedere la sezione sull'uso di uno sweep di parametri con convalida incrociata.

  • Anche se questo articolo usa versioni precedenti dei moduli, ha una buona spiegazione del processo di convalida incrociata: Come scegliere i parametri per ottimizzare gli algoritmi in Machine Learning

Input previsti

Nome Tipo Descrizione
Untrained model ILearner interface Modello senza training per la convalida incrociata sul set di dati
Set di dati Tabella dati Set di dati di input

Parametri del modulo

Nome Intervallo Type Predefinito Descrizione
Colonna di etichetta any ColumnSelection Seleziona la colonna contenente l'etichetta da usare per la convalida
Random seed any Integer 0 Valore di inizializzazione per il generatore di numeri casuali

Questo valore è facoltativo. Se non specificato

Output

Nome Tipo Descrizione
Scored results Tabella dati Risultati dell'assegnazione di punteggi
Evaluation results by fold Tabella dati Risultati della valutazione (per sezione e per intero)

Eccezioni

Eccezione Descrizione
Errore 0035 L'eccezione si verifica se non sono state specificate funzioni per un determinato utente o elemento.
Errore 0032 L'eccezione si verifica se l'argomento non è un numero.
Errore 0033 L'eccezione si verifica se l'argomento è Infinity.
Errore 0001 L'eccezione si verifica se non è possibile trovare una o più colonne specificate del set di dati.
Errore 0003 L'eccezione si verifica se uno o più input sono null o vuoti.
Errore 0006 L'eccezione si verifica se il parametro è maggiore o uguale al valore specificato.
Errore 0008 L'eccezione si verifica se il parametro non rientra nell'intervallo.
Errore 0013 Si verifica un'eccezione se lo strumento di apprendimento passato al modulo è di tipo non valido.

Per un elenco degli errori specifici dei moduli di Studio (versione classica), vedere Machine Learning codici di errore.

Per un elenco delle eccezioni API, vedere Machine Learning di errore dell'API REST.

Vedi anche

Valuta
Evaluate Recommender (Valuta modelo di raccomandazione)
Elenco moduli A-Z