Apprentissage automatique en C# (.NET) : aperçu des bibliothèques et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Apprentissage automatique en C# (.NET) : aperçu des bibliothèques clés



Bien que Python soit traditionnellement considéré comme le langage principal pour l'apprentissage automatique (ML), l'écosystème C# (.NET) propose des solutions puissantes et matures pour intégrer des modèles de ML dans des applications d'entreprise, des services web et des programmes de bureau. Dans cet article, nous examinons les principales bibliothèques disponibles pour les développeurs C#, leurs fonctionnalités, des exemples d'utilisation et des scénarios d'application.



1. ML.NET — la bibliothèque officielle de Microsoft



ML.NET est une bibliothèque d'apprentissage automatique multiplateforme, open source et gratuite développée par Microsoft. Elle permet de créer, former et utiliser des modèles de ML directement dans des applications .NET, sans avoir besoin de passer à Python ou à d'autres langages.



Principales fonctionnalités :

  • Prise en charge des algorithmes classiques : régression, classification, clustering, classement.
  • Apprentissage profond via l'intégration avec TensorFlow et ONNX.
  • Apprentissage automatique automatique (AutoML) pour sélectionner le modèle optimal.
  • Pipelines de traitement de données intégrés (transformations, normalisation).
  • Intégration avec Visual Studio (extension Model Builder).


Exemple : classification binaire (détermination de la tonalité du texte)

using Microsoft.ML;using Microsoft.ML.Data;

public class SentimentData{ public string SentimentText { get; set; } public bool Label { get; set; }}

public class SentimentPrediction{ public bool PredictedLabel { get; set; } public float Probability { get; set; }}

var context = new MLContext();// Chargement des donnéesIDataView data = context.Data.LoadFromTextFile<SentimentData>("data.tsv", separatorChar: '\\t');// Pipeline : transformation du texte + apprentissagevar pipeline = context.Transforms.Text.FeaturizeText("Features", nameof(SentimentData.SentimentText)) .Append(context.BinaryClassification.Trainers.SdcaLogisticRegression());// Apprentissagevar model = pipeline.Fit(data);// Utilisationvar engine = context.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);var prediction = engine.Predict(new SentimentData { SentimentText = "This is great!" });Console.WriteLine($"Predicted: {prediction.PredictedLabel}, Probability: {prediction.Probability}");


2. Accord.NET — ensemble de calculs scientifiques



Accord.NET est une bibliothèque puissante qui fournit non seulement des algorithmes de ML, mais aussi des outils pour le traitement du signal, les statistiques, la vision par ordinateur et les réseaux de neurones. Elle est considérée comme l'une des solutions les plus complètes pour .NET.



Principales fonctionnalités :

  • Large choix d'algorithmes : SVM, Random Forest, K-Means, Naive Bayes.
  • Réseaux de neurones profonds (Accord.Neuro).
  • Traitement d'images et de vidéos (Accord.Imaging).
  • Tests statistiques et distributions.


Exemple : apprentissage d'un classifieur SVM

using Accord.MachineLearning.VectorMachines;using Accord.MachineLearning.VectorMachines.Learning;using Accord.Statistics.Kernels;

// Données d'apprentissage (caractéristiques : deux nombres)double[][] inputs = { new double[] { 0, 0 }, new double[] { 1, 1 }, new double[] { 1, 0 }, new double[] { 0, 1 }};int[] outputs = { 0, 1, 1, 0 };

// Création et apprentissage du SVM avec noyau gaussienvar teacher = new SequentialMinimalOptimization<Gaussian>(){ Complexity = 100};var svm = teacher.Learn(inputs, outputs);

// Prédictionint prediction = svm.Decide(new double[] { 0.8, 0.2 });Console.WriteLine($"Predicted class: {prediction}");


3. TensorFlow.NET — liaisons .NET pour TensorFlow



TensorFlow.NET (SciSharp) est la liaison officielle de bas niveau pour TensorFlow en .NET. La bibliothèque permet d'effectuer des opérations sur les tenseurs, de construire et d'entraîner des réseaux de neurones, ainsi que de char

Recommendations