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.NETfü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 Auch in der Bibliothek
Objektserialisierung in Java: Vollständiger Leitfaden für Anfänger
ClosedXML für C# (.NET): Komplettguide mit Beispielen
Überwachung von TypeScript-Anwendungen: Tools und Bibliotheken
gRPC für Kotlin: Bibliotheken, Server und Client – Codebeispiele
Arbeiten mit CSV in JavaScript (Node.js): Bibliotheken und Werkzeuge