Eseguire il training e valutare i modelli in Model Builder

Completato

In questa unità si apprenderà come eseguire il training e valutare i modelli di Machine Learning in Model Builder.

Durante il training, Model Builder applica gli algoritmi ai dati. Usando le metriche di valutazione per lo scenario specifico, è possibile misurare le prestazioni del modello.

Training in Model Builder

Dopo aver selezionato lo scenario adeguato e l'ambiente di training e aver caricato i dati, è possibile avviare il training del modello. Il training consiste nell'applicazione di algoritmi per lo scenario scelto al set di dati per trovare il modello migliore. Nel passaggio di valutazione verrà valutato il significato di "migliore".

Nella maggior parte dei casi per eseguire il training dei modelli di Machine Learning in Model Builder, è necessario specificare solo la quantità di tempo per cui si vuole eseguire il training.

Per quanto tempo è consigliabile eseguire il training?

Periodi di training più lunghi consentono a Model Builder di esplorare più modelli con una più ampia gamma di impostazioni.

La tabella seguente riepiloga il tempo medio impiegato per ottenere prestazioni ottimali per un gruppo di set di dati di esempio in un computer locale usando la CPU:

Dimensioni del set di dati Tempo medio per il training
Da 0 MB a 10 MB 10 secondi
Da 10 MB a 100 MB 10 minuti
Da 100 MB a 500 MB 30 minuti
Da 500 MB a 1 GB 60 minuti
Oltre 1 GB Più di 3 ore

Questi numeri sono solo una guida. La durata esatta del training dipende da:

  • Numero di funzionalità (colonne) usate come input per il modello.
  • Tipo di colonne.
  • Attività di Machine Learning.
  • Prestazioni di CPU, GPU, disco e memoria del computer usato per il training.

Suggerimento

Usare più di 100 righe come set di dati. Una quantità inferiore potrebbe non produrre alcun risultato.

In che modo Model Builder trova il modello migliore?

Probabilmente si è sentito dire che Machine Learning prevede una matematica complessa. In che modo Model Builder esegue il training di un modello di Machine Learning se è stato indicato solo uno scenario, un set di dati e il tempo per cui si desidera che venga eseguito il training di Model Builder?

Model Builder usa Machine Learning automatizzato (AutoML) per identificare il set di trasformazioni per preparare i dati per il training, selezionare un algoritmo e ottimizzare le impostazioni, note anche come iperparametri, dell'algoritmo. Usando le metriche di valutazione specifiche dell'attività di Machine Learning selezionata, Model Builder può determinare il modello con prestazioni migliori per i dati.

Training e codice di consumo

Al termine del training del modello, Model Builder genera i file seguenti e li aggiunge al progetto. Questi file vengono annidati nel file con estensione MBCONFIG.

  • <MODEL-NAME>.zip: artefatto per il modello di Machine Learning. Questo file contiene una versione serializzata del modello.
  • <MODEL-NAME>.training.cs: questo file contiene la pipeline di training del modello. La pipeline di training del modello è costituita dalle trasformazioni dei dati e dall'algoritmo usati per eseguire il training del modello di Machine Learning. Per altre informazioni, vedere Trasformazioni dei dati e Come scegliere un algoritmo ML.NET.
  • <MODEL-NAME>.consumption.cs: questo file contiene le classi che definiscono lo schema dell'input e dell'output del modello. Contiene anche il metodo Predict, che usa il modello per creare un'API PredictionEngine ed effettuare stime. PredictionEngine è un'API conveniente che consente di effettuare una stima su una singola istanza di dati.

Valutare il modello

Dopo aver trovato il modello migliore per i dati, è ora di testare l'elaborazione delle stime. Un modo per valutare le prestazioni del modello consiste nell'usare le metriche.

Le metriche di valutazione sono specifiche per il tipo di attività di Machine Learning eseguite da un modello. Per ogni attività, è possibile esaminare varie metriche per determinare le prestazioni del modello.

Questa tabella mostra le metriche di valutazione usate da Model Builder per scegliere il modello migliore, in base allo scenario:

Scenario Metriche di valutazione Obiettivo
Classificazione dei dati Binario (Accuracy)/Multiclasse (MicroAccuracy) Quanto più vicino a 1,00, tanto meglio
Previsione di valori R-Squared Quanto più vicino a 1,00, tanto meglio
Classificazione immagini Precisione Quanto più vicino a 1,00, tanto meglio
Elemento consigliato R-Squared Quanto più vicino a 1,00, tanto meglio
Rilevamento oggetti Precisione Quanto più vicino a 1,00, tanto meglio

Per altre informazioni sulle metriche di valutazione di ML.NET, vedere Metriche di valutazione del modello.

Scelta del modello con metriche superiori

Il modello ha ottenuto metriche di valutazione perfette. Questo significa che il modello è perfetto? Non esattamente. Se le metriche di valutazione indicassero un modello "perfetto, infatti, all'utente dovrebbe sorgere un dubbio.

In Machine Learning c'è un concetto chiamato overfitting che l'utente dovrebbe approfondire. L'overfitting si verifica quando il modello apprende i criteri nel set di dati di training fin troppo bene. Quando si tenta di usare il modello con nuovi dati, questo non genera risultati accurati.

Ecco uno scenario che consente di illustrare l'overfitting. Si immagini di studiare per un esame. In qualche modo si è riusciti a ottenere le domande e le risposte dell'esame. Mentre si studia per l'esame, ci si concentra sulla memorizzazione delle risposte alle domande. Dopo aver fatto l'esame, i risultati indicano un ottimo livello, che potrebbe indicare una buona conoscenza della materia. Tuttavia, se qualcuno facesse una domanda diversa da quelle del test su uno degli argomenti, la risposta potrebbe essere sbagliata perché non è stato appreso l'argomento, ma si sono solo memorizzate le risposte. L'overfitting funziona in modo simile.

Migliorare il modello

Se non si è soddisfatti delle metriche di valutazione del modello, è possibile provare a eseguire queste operazioni per migliorarlo:

  • Inserire osservazioni sui dati più rappresentative: l'esperienza è il migliore insegnante. Il concetto si applica anche all'apprendimento automatico. Più osservazioni sui dati si riescono a inserire, più ampio sarà il set di criteri che il modello è in grado di riconoscere.
  • Inserire più contesto: l'aggiunta di colonne che aggiungono contesto ai dati consente al modello di identificare i criteri. Ad esempio, si supponga di voler provare a stimare il prezzo di una casa e l'unico punto dati a disposizione è il numero di camere. Questo da solo potrebbe non dire molto. Tuttavia, se si sapesse che la casa si trova in un quartiere periferico al di fuori di una grande area metropolitana, dove il reddito medio delle famiglie è di $ 80.000 e le scuole sono tra le prime 20, si avrebbero maggiori informazioni utili per la decisione del modello.
  • Usare dati e funzionalità importanti: sebbene una maggior quantità di caratteristiche e dati di esempio possano migliorare l'accuratezza del modello, potrebbero anche generare confusione perché non tutte le caratteristiche e i dati sono significativi. È importante comprendere quali funzionalità influiscono maggiormente sulle decisioni dell'algoritmo.
  • Esplorare altri algoritmi: dare a Model Builder più tempo per poter esplorare più algoritmi e iperparametri potrebbe contribuire a migliorare il modello.

Nell'unità successiva si userà Model Builder per eseguire il training di un modello di Machine Learning.