Tutoriel : Prédire les prix à l’aide de la régression avec Model Builder
Dans ce tutoriel, vous allez apprendre à utiliser ML.NET Model Builder pour créer un modèle de régression pour prédire les prix. L’application console .NET que vous développez dans ce tutoriel prédit les tarifs des taxis en fonction des données historiques des tarifs des taxis de New York.
- Préparer et comprendre les données
- Créer un fichier de configuration Model Builder
- Choisir un scénario
- Charger les données
- Entraîner le modèle
- Évaluer le modèle
- Utiliser le modèle pour les prédictions
Le modèle de prédiction de prix Model Builder peut être utilisé pour n’importe quel scénario nécessitant une valeur de prédiction numérique. Parmi les exemples de scénarios, citons : prédiction des prix de maison, prédiction de la demande et prévision des ventes.
Conditions préalables
Pour obtenir la liste des prérequis et des instructions d’installation, consultez le guide d’installation Model Builder.
Créer une application console
Créez une application console C# appelée « TaxiFarePrediction ». Vérifiez que l’option Placer la solution et le projet dans le même répertoire n’est pas cochée.
Préparer et comprendre les données
Créez un répertoire nommé Data dans votre projet pour stocker les fichiers du jeu de données.
Le jeu de données utilisé pour entraîner et évaluer le modèle Machine Learning est à l’origine à partir du jeu de données TLC Taxi Trip de NYC.
Pour télécharger le jeu de données, accédez au lien de téléchargement taxi-fare-train.csv.
Lorsque la page se charge, cliquez avec le bouton droit n’importe où sur la page et sélectionnez Enregistrer sous.
Utilisez la boîte de dialogue Enregistrer sous pour enregistrer le fichier dans le dossier Data que vous avez créé à l’étape précédente.
Dans Explorateur de solutions, cliquez avec le bouton droit sur le fichier taxi-fare-train.csv et sélectionnez Propriétés. Sous Avancé, définissez la valeur Copier dans le répertoire de sortie sur Copier si plus récent.
Chaque ligne du jeu de données taxi-fare-train.csv
contient les détails des trajets effectués par un taxi.
Ouvrir le jeu de données taxi-fare-train.csv
Le jeu de données fourni contient les colonnes suivantes :
- vendor_id : L’ID du fournisseur de taxi est une fonctionnalité.
- rate_code : le type de tarif de la course de taxi est une fonctionnalité.
- passenger_count : Le nombre de passagers sur le voyage est une fonctionnalité.
- trip_time_in_secs : durée totale de la course. Vous souhaitez prédire le tarif du voyage avant la fin du voyage. À ce moment, vous ne savez pas combien de temps le voyage prendra. Par conséquent, le temps de trajet n’est pas une fonctionnalité et vous excluez cette colonne du modèle.
- trip_distance : La distance du voyage est une fonctionnalité.
- payment_type : Le mode de paiement (espèces ou carte de crédit) est une fonctionnalité.
- fare_amount : le prix total payé pour la course est l’étiquette.
La label
est la colonne que vous souhaitez prédire. Lors de l’exécution d’une tâche de régression, l’objectif est de prédire une valeur numérique. Dans ce scénario de prédiction de prix, le coût d’un trajet en taxi est prédit. Par conséquent, fare_amount est l’étiquette. Les features
identifiés sont les entrées que vous donnez au modèle pour prédire la label
. Dans ce cas, le reste des colonnes à l’exception de trip_time_in_secs sont utilisés comme caractéristiques ou entrées pour prédire le montant du tarif.
Créer un fichier de configuration Model Builder
Lors de la première ajout du Générateur de modèles à la solution, il vous invite à créer un fichier mbconfig
. Le fichier mbconfig
effectue le suivi de tout ce que vous faites dans Model Builder pour vous permettre de rouvrir la session.
- Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet TaxiFarePrediction, puis sélectionnez Ajouter>modèle d'apprentissage automatique.
- Nommez le projet
mbconfig
TaxiFarePrediction, puis cliquez sur le bouton Ajouter.
Choisir un scénario
Pour entraîner votre modèle, vous devez effectuer une sélection dans la liste des scénarios de Machine Learning disponibles fournis par Model Builder. Dans ce cas, le scénario est Value prediction
.
- Dans l'étape du scénario de l'outil Générateur de modèles, sélectionnez le scénario de prédiction de valeur .
Sélectionner l’environnement
Model Builder peut exécuter l’entraînement sur différents environnements en fonction du scénario sélectionné.
- Vérifiez que l’élément
Local (CPU)
est sélectionné, puis cliquez sur le bouton étape suivante.
Charger les données
Model Builder accepte les données de deux sources, d’une base de données SQL Server ou d’un fichier local au format csv ou tsv.
- Dans l’étape de données de l’outil Model Builder, sélectionnez fichier dans la sélection du type de source de données.
- Sélectionnez le bouton Parcourir
en regard de la zone de texte et utilisez l’Explorateur de fichiers pour parcourir et sélectionner le taxi-fare-test.csv dans le répertoireDonnées - Choisissez fare_amount dans la liste déroulante Colonne à prédire (étiquette).
- Cliquez sur le lien Options de données avancées.
- Dans l’onglet Paramètres de colonnes, sélectionnez la liste déroulante Objectif pour la colonne trip_time_in_secs, puis Ignorer pour l’exclure en tant que fonctionnalité pendant l’entraînement. Cliquez sur le bouton Enregistrer pour fermer la boîte de dialogue.
- Cliquez sur le bouton Étape suivante.
Entraîner le modèle
La tâche Machine Learning utilisée pour entraîner le modèle de prédiction de prix dans ce didacticiel est la régression. Pendant le processus d’entraînement du modèle, Model Builder effectue l’apprentissage de modèles distincts à l’aide d’algorithmes et de paramètres de régression différents 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 délai d’apprentissage (secondes) en fonction de la taille de votre source de données.
- Conservez la valeur par défaut telle quelle pour Temps d’apprentissage (secondes) sauf si vous préférez effectuer l’apprentissage pendant une durée plus longue.
- Sélectionnez Démarrer la formation.
Tout au long du processus d’apprentissage, les données de progression sont affichées dans la section Training results
de l’étape d'entraînement.
- Le statut affiche 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
aura le modèle généré appelé TaxiFarePrediction.zip
après l’entraînement et deux fichiers C# avec celui-ci :
- TaxiFare.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.
- TaxiFare.training.cs: ce fichier se compose du pipeline d’entraînement que Model Builder a fourni 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, la section Meilleur modèle contient l’algorithme utilisé par le modèle le plus performant dans l’entrée Modèle ainsi que des métriques pour ce modèle dans RSquared.
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.
Si vous n’êtes pas satisfait de vos métriques de précision, certaines façons simples d’essayer et d’améliorer la précision du modèle sont d’augmenter la durée d’apprentissage du modèle ou d’utiliser plus de données. Sinon, cliquez sur Étape Suivante pour se rendre à l’étape de consommation.
(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 TaxiFare_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 :
Predicted Fare: 15.020833
Web API
Lorsque vous ajoutez une API web à votre solution, vous serez invité à nommer le projet.
Nommez le projet d’API web TaxiFare_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 = @{ Vendor_id="CMT" Rate_code=1.0 Passenger_count=1.0 Trip_distance=3.8 Payment_type="CRD" } 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 :
score ----- 15.020833
Contenu connexe
Pour en savoir plus sur les rubriques mentionnées dans ce tutoriel, consultez les ressources suivantes :
- Scénarios du constructeur de modèles
- Régression
- Métriques de modèle de régression
- Jeu de données NYC TLC Taxi Trip