En ce moment, on parle de plus en plus d’intelligence artificielle (IA) grâce à Chat GPT et Bard. C’est probablement le meilleur moment pour parler de machine learning avec C#. Le Machine Learning est une branche de l’IA qui consiste à apprendre des modèles à partir de données. L’utilisation de C# pour le Machine Learning est de plus en plus répandue grâce à la disponibilité d’outils et de bibliothèques open source tel que ML.NET. Avec ML.NET, le développeur lambda peut ainsi facilement créer , entrainer et déployer ses modèles. Voyons comment créer et utiliser facilement ses modèles avec Visual Studio et C#.
Introduction
La première version de ML.NET est sortie en 2019. La version la plus récente est la 1.7.1 sortie en mars 2022.
On peut faire beaucoup de choses avec ML .NET: analyses de sentiments , recommandation de produits, prédiction de prix, classification d’image…
Dans notre exemple, nous allons faire de l’analyse de sentiments.
A partir d’une phrase, nous pourrons dire si elle exprime un sentiment positif ou négatif.. on parle de classification.
Le processus est découpée en plusieurs étapes:
- collecte des données
- application d’un algorithme ou plusieurs algorithmes de machine learning sur les données
- entraînement du modèle
- test du modèle
- sauvegarde du modèle dans un fichier
- utilisation du modèle
Préparation de l’environnement
Lancer Visual Studio et installer ML. NET Model Builder si nécessaire
Créer un nouveau projet (console par exemple) et ajouter un modèle de Machine Learning
Sélectionner un scénario
Vous avez plusieurs choix. Notre exemple, utilisera la classifications des données. La classification des données en ML .NET est une technique d’apprentissage supervisé qui permet de prédire la catégorie à laquelle appartient une donnée en se basant sur des exemples d’apprentissage.
Sélectionnez l’environnement d’entrainement
Nous utiliserons un entrainement local, c’est à dire que la source de donnée est située sur notre machine.
Les données
Nous utiliserons des données issues du fichier https://archive.ics.uci.edu/ml/machine-learning-databases/00331/sentiment%20labelled%20sentences.zip. Nous utiliserons un fichier csv qui contient une liste d’avis postés sur Amazon. La première colonne contient l’avis,la seconde la classification de l’avis, positif (1) ou négatif (0).
Importez le fichier, fixez la colonne à prédire, sélectionnez la durée de l’entrainement et lancez le
Entraînement
Augmentez la durée d’entrainement si les résultats ne sont pas satisfaisants.
Il faut que la meilleure justesse se rapproche le plus de 1.
Test du modèle
Vous pouvez évaluer votre modèle. Entrez une valeur et le modèle vous propose un résultat
Vous pouvez maintenant récupérer le code proposé par Visual Studio et l’adapter avant de l’utiliser dans votre application.
var res0 = MLModel1.Predict(new MLModel1.ModelInput() { Col0= "Do yourself a favor and buy another brand" }); // result.PredictedLabel = 0 / Negatif
var res1 = MLModel1.Predict(new MLModel1.ModelInput() { Col0 = "I am very happy with my purchase and I recommend this " }); // result.PredictedLabel = 1 / Positif
var res2 = MLModel1.Predict(new MLModel1.ModelInput() { Col0 = "I do NOT recommend this machine" }); // result.PredictedLabel = 0 / Negatif
var res3 = MLModel1.Predict(new MLModel1.ModelInput() { Col0 = "Overall very good value" }); // result.PredictedLabel = 1 / Positif
En conclusion, ML .NET est une plateforme de Machine Learning open source qui permet aux développeurs de construire des modèles prédictifs puissants et performants en utilisant leur langage de programmation préféré. Avec sa prise en charge des tâches courantes de Machine Learning, telles que la classification, la régression, la clustering, le traitement du langage naturel et la reconnaissance d’images, ML .NET facilite l’implémentation de modèles de Machine Learning dans une large gamme d’applications.
ga46nf