Maschinelles Lernen mit C# (.NET): Überblick über Bibliotheken und Werkzeuge

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 (ML) gilt, bietet das C# (.NET)-Ökosystem leistungsstarke und ausgereifte Lösungen für die Integration von ML-Modellen in Unternehmensanwendungen, Webdienste und Desktop-Programme. In diesem Artikel betrachten wir die führenden Bibliotheken, die für C#-Entwickler verfügbar sind, ihre Funktionen, Anwendungsbeispiele und Einsatzszenarien.



1. ML.NET — Offizielle Bibliothek von Microsoft



ML.NET ist eine plattformübergreifende, offene und kostenlose Bibliothek für maschinelles Lernen, die von Microsoft entwickelt wurde. Sie ermöglicht es, ML-Modelle direkt in .NET-Anwendungen zu erstellen, zu trainieren und zu verwenden, ohne auf Python oder andere Sprachen wechseln zu müssen.



Hauptfunktionen:

  • Unterstützung klassischer Algorithmen: Regression, Klassifikation, Clustering, Ranking.
  • Deep Learning durch Integration mit TensorFlow und ONNX.
  • Automatisches maschinelles Lernen (AutoML) zur Auswahl des optimalen Modells.
  • Integrierte Datenverarbeitungspipelines (Transformationen, Normalisierung).
  • Integration mit Visual Studio (Model Builder-Erweiterung).


Beispiel: Binäre Klassifikation (Stimmungsanalyse von Text)

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();// Daten ladenIDataView data = context.Data.LoadFromTextFile<SentimentData>("data.tsv", separatorChar: '\\t');// Pipeline: Text-Featurisierung + Trainingvar pipeline = context.Transforms.Text.FeaturizeText("Features", nameof(SentimentData.SentimentText)) .Append(context.BinaryClassification.Trainers.SdcaLogisticRegression());// Trainingvar model = pipeline.Fit(data);// Verwendungvar 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 — Wissenschaftliches Rechnen



Accord.NET ist eine leistungsstarke Bibliothek, die nicht nur ML-Algorithmen, sondern auch Werkzeuge für Signalverarbeitung, Statistik, Computer Vision und neuronale Netze bereitstellt. Sie gilt als eine der umfassendsten Lösungen für .NET.



Hauptfunktionen:

  • Breite Auswahl an Algorithmen: SVM, Random Forest, K-Means, Naive Bayes.
  • Tiefe neuronale Netze (Accord.Neuro).
  • Bild- und Videoverarbeitung (Accord.Imaging).
  • Statistische Tests und Verteilungen.


Beispiel: Training eines SVM-Klassifikators

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

// Trainingsdaten (Merkmale: zwei Zahlen)double[][] inputs = { new double[] { 0, 0 }, new double[] { 1, 1 }, new double[] { 1, 0 }, new double[] { 0, 1 }};int[] outputs = { 0, 1, 1, 0 };

// Erstellen und Trainieren einer SVM mit Gauß-Kernelvar teacher = new SequentialMinimalOptimization<Gaussian>(){ Complexity = 100};var svm = teacher.Learn(inputs, outputs);

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


3. TensorFlow.NET — .NET-Bindungen an TensorFlow



TensorFlow.NET (SciSharp) sind die offiziellen Low-Level-Bindungen an TensorFlow für .NET. Die Bibliothek ermöglicht Tensoroperationen, das Erstellen und Trainieren neuronaler Netze sowie das Laden

Empfehlungen