Maschinelles Lernen mit C# (.NET): Überblick über die Bibliotheken ML.NET, Accord.NET, TensorFlow.NET

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Maschinelles Lernen mit C# (.NET): Überblick über die wichtigsten Bibliotheken

Obwohl Python traditionell als die Hauptsprache für maschinelles Lernen gilt, bietet das C# (.NET)-Ökosystem ebenfalls leistungsstarke und ausgereifte Werkzeuge zur Erstellung von ML-Modellen. Wenn Ihre Infrastruktur auf dem Microsoft-Stack aufbaut oder Sie statische Typisierung und hohe Leistung bevorzugen, helfen Ihnen die Bibliotheken für .NET, künstliche Intelligenz zu integrieren, ohne den Technologie-Stack wechseln zu müssen. In diesem Artikel betrachten wir die drei wichtigsten Bibliotheken: ML.NET, Accord.NET und TensorFlow.NET, und geben praktische Codebeispiele.



1. ML.NET – Die offizielle Bibliothek von Microsoft

ML.NET ist eine plattformübergreifende Open-Source-Bibliothek für maschinelles Lernen, die speziell für .NET-Entwickler entwickelt wurde. Sie ermöglicht die Integration von ML in Anwendungen, ohne dass man Python oder R lernen muss. ML.NET unterstützt Klassifikation, Regression, Clustering, Ranking, Anomalieerkennung und sogar Deep Learning durch Integration mit ONNX und TensorFlow.



Wichtigste Funktionen:

  • Integrierte Transformatoren zur Datenaufbereitung (Normalisierung, Kodierung, Verkettung).
  • Automatische Modellauswahl (AutoML) über AutoML.NET.
  • Export des Modells in das ONNX-Format zur weiteren Verwendung auf anderen Plattformen.
  • Unterstützung für Training mit großen Datenmengen über IDataView.


Beispiel: Binäre Klassifikation von Bewertungen (Stimmungsanalyse)

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

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

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

// Daten laden und trainierenvar context = new MLContext();var data = context.Data.LoadFromTextFile<SentimentData>("data.csv", separatorChar: ',');var pipeline = context.Transforms.Text.FeaturizeText("Features", nameof(SentimentData.Text)) .Append(context.BinaryClassification.Trainers.SdcaLogisticRegression());var model = pipeline.Fit(data);

// Vorhersagevar predictionEngine = context.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);var prediction = predictionEngine.Predict(new SentimentData { Text = "This product is amazing!" });Console.WriteLine($"Positive: {prediction.PredictedLabel}, Confidence: {prediction.Probability:P}");

Dieser Code zeigt, wie man in wenigen Zeilen ein Modell mit einer CSV-Datei trainiert und eine Vorhersage trifft. ML.NET verarbeitet Datentypen automatisch und erstellt eine Pipeline.



2. Accord.NET – Das klassische Framework für wissenschaftliche Berechnungen

Accord.NET ist eine Sammlung von Bibliotheken für Signalverarbeitung, Statistik und maschinelles Lernen. Es umfasst über 40 Algorithmen: von SVM und neuronalen Netzen bis hin zu versteckten Markov-Modellen. Die Bibliothek wird seit 2010 aktiv im akademischen Umfeld und in der Industrie eingesetzt. Im Gegensatz zu ML.NET bietet Accord.NET eine niedrigschwelligere Kontrolle über die Algorithmen.



Wichtigste Funktionen:

  • Breite Auswahl an Klassifikatoren: KNN, NaiveBayes, RandomForest, SVM.
  • Integrierte Vorverarbeitungsmethoden: PCA, LDA, Normalisierung.
  • Unterstützung für neuronale Netze (Deep Learning Toolkit).
  • Integration mit Math.NET für komplexe mathematische Operationen.


Beispiel: Klassifikation der Fischer-Iris mit KNN

using Accord.MachineLearning;using Accord.MachineLearning.VectorMachines;using Accord.Statistics.Analysis;

// Daten laden (klassischer Iris-Datensatz)double[][] inputs = new double[][]{ new double[] { 5.1, 3.5, 1.4, 0.2 }, new double[] { 4.9, 3.0, 1.4, 0.2 }, // ... restliche

Empfehlungen