Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Découvrez comment créer un modèle de classification multiclasse à l’aide du Model Builder pour classer le niveau de risque des infractions dans les restaurants détectées lors des inspections sanitaires.
Dans ce tutoriel, vous allez apprendre à :
- Préparer et comprendre les données
- Créer un fichier de configuration Model Builder
- Choisir un scénario
- Charger des données à partir d’une base de données
- Entraîner le modèle
- Évaluer le modèle
- Utiliser le modèle pour les prédictions
Conditions préalables
Pour obtenir la liste des prérequis et des instructions d’installation, consultez le guide d’installation du Générateur de modèles.
Vue d'ensemble de la classification multiclasses avec Model Builder
Cet exemple crée une application console C# qui classe le risque de violations sanitaires à l’aide d’un modèle d'apprentissage automatique créé avec Model Builder. Vous trouverez le code source de ce didacticiel dans le dépôt GitHub dotnet/machinelearning-samples .
Création d’une application console
Créez une application console C# appelée « RestaurantViolations ».
Préparer et comprendre les données
Le jeu de données utilisé pour entraîner et évaluer le modèle d'apprentissage automatique provient à l'origine des scores de sécurité des restaurants du département de la santé publique de San Francisco. Pour plus de commodité, le jeu de données a été condensé pour inclure uniquement les colonnes pertinentes pour entraîner le modèle et effectuer des prédictions. Visitez le site web suivant pour en savoir plus sur le jeu de données.
Téléchargez le jeu de données Restaurant Safety Scores et décompressez-le.
Chaque ligne du jeu de données contient des informations sur les violations observées lors d’une inspection du ministère de la Santé et une évaluation des risques des menaces présentes à la santé publique et à la sécurité.
Type d'Inspection | Description de la violation | RiskCategory |
---|---|---|
Routine - Non planifié | Surfaces de contact alimentaires mal nettoyées ou désinfectées | Risque modéré |
Nouvelle propriété | Infestation de vermin à haut risque | Risque élevé |
Routine - Non planifié | Chiffons d’effacement non nettoyés ou correctement stockés ou désinfecteurs insuffisants | Faible risque |
- InspectionType : type d’inspection. Il peut s’agir d’une inspection de première fois pour un nouvel établissement, d’une inspection de routine, d’une inspection de plainte et de nombreux autres types.
- ViolationDescription : description de la violation trouvée lors de l’inspection.
- Catégorie de risque : la gravité du risque qu’une violation pose à la santé et à la sécurité publiques.
La colonne label
est celle que vous souhaitez prédire. Lors de l’exécution d’une tâche de classification, l’objectif est d’affecter une catégorie (texte ou numérique). Dans ce scénario de classification, la gravité de la violation est affectée à la valeur de risque faible, modéré ou élevé. Par conséquent, RiskCategory est l’étiquette. Les features
sont les entrées que vous donnez au modèle pour prédire le label
. Dans ce cas, inspectionType et ViolationDescription sont utilisés comme fonctionnalités ou entrées pour prédire RiskCategory.
Créer un fichier de configuration Model Builder
Lors du premier ajout du Générateur de modèles à la solution, il vous demandera de créer un fichier mbconfig
. Le mbconfig
fichier effectue le suivi de tout ce que vous faites dans Model Builder pour vous permettre de rouvrir la session.
- Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet RestaurantViolations, puis sélectionnez Ajouter> unmodèle Machine Learning.
- Nommez le
mbconfig
projet RestaurantViolationsPrediction, puis cliquez sur le bouton Ajouter.
Choisir un scénario
Pour entraîner votre modèle, sélectionnez-le dans la liste des scénarios machine learning disponibles fournis par Model Builder. Dans ce cas, le scénario est la classification des données.
- Pour cet exemple, la tâche est une classification multiclasse. Dans l’étape Scénario du Générateur de modèles, sélectionnez le scénario de classification des données .
Charger les données
Model Builder accepte les données d'une base de données SQL Server ou d'un fichier local aux formats csv
, tsv
ou txt
.
- Dans l’étape de données de l’outil Model Builder, sélectionnez SQL Server dans la sélection du type de source de données.
- Sélectionnez le bouton Choisir une source de données .
- Dans la boîte de dialogue Choisir une source de données , sélectionnez Fichier de base de données Microsoft SQL Server.
- Décochez la case "Toujours utiliser cette sélection" et cliquez sur Continuer.
- Dans la boîte de dialogue Propriétés de connexion , sélectionnez Parcourir et sélectionnez le fichier RestaurantScores.mdf téléchargé.
- Cliquez sur OK.
- Choisissez Violations dans la liste déroulante Table .
- Choisissez RiskCategory dans la liste déroulante Colonne à prédire (Étiquette).
- Conservez les sélections par défaut dans les options de données avancées.
- Cliquez sur le bouton Étape suivante pour passer à l’étape d’entraînement dans Model Builder.
Entraîner le modèle
La tâche Machine Learning utilisée pour entraîner le modèle de classification des problèmes dans ce didacticiel est la classification multiclasse. Pendant le processus d’entraînement du modèle, Model Builder effectue l’apprentissage de modèles distincts à l’aide de différents algorithmes et paramètres de classification multiclasse pour trouver le modèle le plus performant pour votre jeu de données.
Le temps nécessaire à l’apprentissage du modèle est proportionnel à la quantité de données. Model Builder sélectionne automatiquement une valeur par défaut pour time to train (secondes) en fonction de la taille de votre source de données.
- Le Générateur de modèles définit la valeur du temps d'entraînement (secondes) à 60 secondes. L’entraînement pendant une période plus longue permet au Générateur de modèles d’explorer un plus grand nombre d’algorithmes et de combinaisons de paramètres dans la recherche du meilleur modèle.
- Cliquez sur Démarrer l’entraînement.
Tout au long du processus d’apprentissage, les données de progression sont affichées dans la Training results
section de l'étape de formation.
- L’état indique l’achèvement du processus d’entraînement.
- La meilleure précision affiche la précision du modèle le plus performant trouvé par Model Builder jusqu’à présent. Une précision plus élevée signifie que le modèle a été prédit plus correctement sur les données de test.
- Le meilleur algorithme affiche le nom de l’algorithme le plus performant effectué par Model Builder jusqu’à présent.
- Le dernier algorithme affiche le nom de l’algorithme le plus récemment utilisé par Model Builder pour entraîner le modèle.
Une fois l’entraînement terminé, le fichier mbconfig
contiendra le modèle généré appelé RestaurantViolationsPrediction.zip
, ainsi que deux fichiers C# avec lui :
- RestaurantViolationsPrediction.consumption.cs : ce fichier a une méthode publique qui charge le modèle et crée un moteur de prédiction avec celui-ci et retourne la prédiction.
- RestaurantViolationsPrediction.training.cs : ce fichier contient le pipeline d’entraînement que Model Builder a conçu pour générer le meilleur modèle, y compris les hyperparamètres qu’il a utilisés.
Cliquez sur le bouton Étape suivante pour accéder à l’étape d’évaluation.
Évaluer le modèle
Le résultat de l’étape d’entraînement sera un modèle qui avait les meilleures performances. Dans l’étape d’évaluation de l’outil Model Builder, dans la section Best model , contiendra l’algorithme utilisé par le modèle le plus performant dans l’entrée Model , ainsi que les métriques de ce modèle dans La précision.
En outre, dans la fenêtre Sortie de Visual Studio, il y aura un tableau de synthèse contenant les principaux modèles et leurs métriques.
Cette section vous permet également de tester votre modèle en effectuant une prédiction unique. Il offre des zones de texte pour remplir des valeurs et vous pouvez cliquer sur le bouton Prédire pour obtenir une prédiction à partir du meilleur modèle. Par défaut, cette opération est renseignée par une ligne aléatoire dans votre jeu de données.
(Facultatif) Consommer le modèle
Cette étape aura des modèles de projet que vous pouvez utiliser pour consommer le modèle. Cette étape est facultative et vous pouvez choisir la méthode qui convient le mieux à vos besoins sur la façon de servir le modèle.
- Application console
- Web API
Application console
Lorsque vous ajoutez une application console à votre solution, vous serez invité à nommer le projet.
Nommez le projet de console RestaurantViolationsPrediction_Console.
Cliquez sur Ajouter à la solution pour ajouter le projet à votre solution actuelle.
Exécutez l’application.
La sortie générée par le programme doit ressembler à l’extrait de code ci-dessous :
InspectionType: Routine - Unscheduled ViolationDescription: Moderate risk food holding temperature Predicted RiskCategory: Moderate Risk
Web API
Lorsque vous ajoutez une API web à votre solution, vous serez invité à nommer le projet.
Nommez le projet d’API web RestaurantViolationsPrediction_API.
Cliquez sur Ajouter à la solution* pour ajouter le projet à votre solution actuelle.
Exécutez l’application.
Ouvrez PowerShell et entrez le code suivant où PORT est le port sur lequel votre application écoute.
$body = @{ InspectionType="Reinspection/Followup" ViolationDescription="Inadequately cleaned or sanitized food contact surfaces" } Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
Si elle réussit, la sortie doit ressembler au texte ci-dessous. La sortie a la valeur RiskCategory prédite en tant que risque modéré et a les scores de chacune des étiquettes d’entrée : Faible Risque, Risque élevé et Risque modéré.
prediction score ---------- ----- Moderate Risk {0.055566575, 0.058012854, 0.88642055}
Félicitations! Vous avez créé avec succès un modèle d'apprentissage automatique pour catégoriser les risques de violations de santé à l’aide de Model Builder. Vous trouverez le code source de ce didacticiel dans le dépôt GitHub dotnet/machinelearning-samples .
Ressources supplémentaires
Pour en savoir plus sur les rubriques mentionnées dans ce tutoriel, consultez les ressources suivantes :