Esercitazione: Classificare la gravità delle violazioni dell'integrità del ristorante con Model Builder
Articolo
Informazioni su come creare un modello di classificazione multiclasse usando Model Builder per classificare il livello di rischio delle violazioni del ristorante rilevate durante le verifiche di integrità.
In questa esercitazione verranno illustrate le procedure per:
Panoramica della classificazione multiclasse di Model Builder
Questo esempio crea un'applicazione console .NET Core C# che classifica il rischio di violazioni dell'integrità usando un modello di Machine Learning compilato con Model Builder. È possibile trovare il codice sorgente per questa esercitazione nel repository GitHub dotnet/machinelearning-samples .
Il set di dati usato per eseguire il training e valutare il modello di Machine Learning è originariamente dal Dipartimento di San Francisco del Ristorante pubblico per la salute. Per praticità, il set di dati è stato condensato per includere solo le colonne pertinenti per eseguire il training del modello e effettuare stime. Visitare il sito Web seguente per altre informazioni sul set di dati.
Ogni riga del set di dati contiene informazioni relative alle violazioni osservate durante un'ispezione dal Dipartimento di integrità e una valutazione del rischio delle minacce presenti alla salute pubblica e alla sicurezza.
InspectionType
ViolazioneDescription
RiskCategory
Routine - Non programmato
Superfici di contatto di cibo non pulite o sanificate in modo inadeguato
Rischio moderato
Nuova proprietà
Infestazioni a rischio elevato
Rischio elevato
Routine - Non programmato
Pulire o conservare correttamente i tessuti non puliti o inadeguati
Basso rischio
InspectionType: tipo di ispezione. Ciò può essere un'ispezione per la prima volta per una nuova istituzione, un'ispezione di routine, un'ispezione dei reclami e molti altri tipi.
ViolazioneDescription: una descrizione della violazione rilevata durante l'ispezione.
RiskCategory: la gravità del rischio rappresenta una violazione per la salute pubblica e la sicurezza.
label è la colonna sulla quale eseguire le stime. Quando si esegue un'attività di classificazione, l'obiettivo consiste nell'assegnare una categoria (testo o numerico). In questo scenario di classificazione la gravità della violazione viene assegnata al valore di rischio basso, moderato o elevato. Di conseguenza, RiskCategory è l'etichetta. Sono features gli input che si assegnano al modello per stimare l'oggetto label. In questo caso, l'inspectionType e la violazioneDescription vengono usati come funzionalità o input per stimare Il rischioCategory.
Creare il file di configurazione di Model Builder
Quando si aggiunge prima Model Builder alla soluzione, verrà richiesto di creare un mbconfig file. Il mbconfig file tiene traccia di tutto ciò che si esegue in Generatore modelli per consentire di riaprire la sessione.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto RestaurantViolations e scegliere Aggiungi>modello di Machine Learning....
Assegnare un nome al mbconfig progetto RestaurantViolationsPrediction e fare clic sul pulsante Aggiungi .
Scegliere uno scenario
Per eseguire il training del modello, selezionare dall'elenco degli scenari di Machine Learning disponibili forniti da Model Builder. In questo caso, lo scenario è La classificazione dei dati.
Per questo esempio, l'attività è la classificazione multiclasse. Nel passaggio Scenario di Generatore modelli selezionare lo scenario di classificazione dei dati .
Caricare i dati
Model Builder accetta i dati da un database SQL Server o da un file locale in , tsvo txt in csvformato .
Nel passaggio dati dello strumento Generatore modelli selezionare SQL Server dalla selezione del tipo di origine dati.
Selezionare il pulsante Scegli origine dati .
Nella finestra di dialogo Scegli origine dati selezionare Microsoft SQL Server File di database.
Deselezionare la casella di controllo Usa sempre questa selezione e fare clic su Continua.
Nella finestra di dialogo Proprietà connessione selezionare Sfoglia e selezionare il file RestaurantScores.mdf scaricato.
Selezionare OK.
Scegliere Violazioni dall'elenco a discesa Tabella .
Scegliere RiskCategory nell'elenco a discesa Column to predict (Label).
Lasciare le selezioni predefinite in Opzioni di dati avanzate.
Fare clic sul pulsante Passaggio successivo per passare al passaggio di training in Generatore modelli.
Eseguire il training del modello
L'attività di Machine Learning usata per eseguire il training del modello di classificazione dei problemi in questa esercitazione è la classificazione multiclasse. Durante il processo di training del modello, Model Builder esegue il training di modelli separati usando algoritmi e impostazioni di classificazione multiclasse diversi per trovare il modello più efficiente per il set di dati.
Il tempo necessario per il training del modello è proporzionale alla quantità di dati. Generatore modelli seleziona automaticamente un valore predefinito per Time to training (secondi) in base alle dimensioni dell'origine dati.
Model Builder imposta il valore di Time per il training (secondi) su 60 secondi. Il training per un periodo di tempo più lungo consente a Generatore modelli di esplorare un numero maggiore di algoritmi e combinazioni di parametri nella ricerca del modello migliore.
Fare clic su Avvia training.
Durante il processo di training i dati dell'avanzamento vengono visualizzati nella sezione Training results del passaggio relativo al training.
Stato visualizza lo stato di completamento del processo di training.
La migliore accuratezza visualizza l'accuratezza del modello con prestazioni migliori trovate finora da Model Builder. Precisione maggiore indica il modello stimato più correttamente con i dati di test.
L'algoritmo migliore visualizza il nome dell'algoritmo con prestazioni migliori eseguite finora da Model Builder.
L'ultimo algoritmo visualizza il nome dell'algoritmo usato più di recente da Model Builder per eseguire il training del modello.
Al termine del training, il mbconfig file avrà il modello generato chiamato RestaurantViolationsPrediction.zip dopo il training e due file C# con esso:
RestaurantViolationsPrediction.consumption.cs: questo file include un metodo pubblico che caricherà il modello e creerà un motore di stima con esso e restituirà la stima.
RestaurantViolationsPrediction.training.cs: questo file è costituito dalla pipeline di training creata da Generatore modelli per creare il modello migliore, inclusi gli iperparametri usati.
Fare clic sul pulsante Passaggio successivo per passare al passaggio di valutazione.
Valutare il modello
Il risultato del passaggio relativo al training è rappresentato dal modello con le prestazioni migliori. Nel passaggio di valutazione dello strumento Generatore modelli, nella sezione Modello migliore, conterrà l'algoritmo usato dal modello con prestazioni ottimali nella voce Modello insieme alle metriche per tale modello in Accuratezza.
Inoltre, nella finestra Output di Visual Studio sarà presente una tabella di riepilogo contenente i modelli principali e le relative metriche.
Questa sezione consente inoltre di testare il modello eseguendo una singola stima. Offrirà caselle di testo per compilare i valori e fare clic sul pulsante Stima per ottenere una stima dal modello migliore. Per impostazione predefinita, questa operazione verrà compilata da una riga casuale nel set di dati.
(Facoltativo) Usare il modello
Questo passaggio avrà modelli di progetto che è possibile usare per utilizzare il modello. Questo passaggio è facoltativo e è possibile scegliere il metodo più adatto alle proprie esigenze su come servire il modello.
App console
API Web
App console
Quando si aggiunge un'app console alla soluzione, verrà richiesto di assegnare un nome al progetto.
Assegnare un nome al progetto console RestaurantViolationsPrediction_Console.
Fare clic su Aggiungi alla soluzione per aggiungere il progetto alla soluzione corrente.
Eseguire l'applicazione.
L'output generato dal programma dovrebbe essere simile al frammento di codice seguente:
Se ha esito positivo, l'output dovrebbe essere simile al testo seguente. L'output ha l'oggetto RiskCategory stimato come rischio moderato e ha i punteggi di ognuna delle etichette di input - Basso rischio, alto rischio e rischio moderato.
Congratulazioni! È stato creato un modello di Machine Learning per classificare il rischio di violazioni dell'integrità usando Model Builder. È possibile trovare il codice sorgente per questa esercitazione nel repository GitHub dotnet/machinelearning-samples .
Risorse aggiuntive
Per altre informazioni sugli argomenti presentati in questa esercitazione, vedere le risorse seguenti:
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
In questo modulo si apprenderà come usare ML.NET Model Builder per eseguire il training e di un modello di Machine Learning e utilizzarlo per la manutenzione predittiva.
Gestire l'inserimento e la preparazione dei dati, il training e la distribuzione di modelli e il monitoraggio delle soluzioni di apprendimento automatico con Python, Azure Machine Learning e MLflow.