C# für maschinelles Lernen: Möglichkeiten, Grenzen und Beispiele für Einsteiger

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

Einleitung: Warum C# für maschinelles Lernen?

Die Welt des maschinellen Lernens (ML) wird traditionell mit Python assoziiert. Das C#-Ökosystem und die .NET-Plattform bieten jedoch leistungsstarke Alternativen, insbesondere für Entwickler, die bereits in dieser Umgebung arbeiten. Wenn Sie mit C# vertraut sind und Ihre Fähigkeiten im ML-Bereich anwenden möchten, ist dieser Artikel für Sie.

Wir betrachten die wichtigsten Bibliotheken, die Stärken und Schwächen von C# im ML-Kontext und geben praktische Codebeispiele. Sie erfahren, wann C# die bessere Wahl sein kann und wann Sie zu Python greifen sollten.



Wichtige C#-Bibliotheken für maschinelles Lernen

Das .NET-Ökosystem entwickelt sich im ML-Bereich aktiv weiter. Hier sind drei wichtige Werkzeuge, die jeder Einsteiger kennen sollte.



1. ML.NET – Die native Bibliothek von Microsoft

ML.NET ist eine plattformübergreifende, quelloffene und kostenlose Bibliothek für maschinelles Lernen für .NET. Sie ermöglicht es, ML in Anwendungen zu integrieren, ohne das C#-Ökosystem verlassen zu müssen.

Hauptfunktionen:

  • Klassifikation (z.B. Spam-Erkennung in E-Mails)
  • Regression (Preisvorhersage)
  • Clustering (Kundensegmentierung)
  • Ranking und Empfehlungen
  • Anomalieerkennung
  • Bildverarbeitung (Transfer Learning)

Beispiel: Ein einfaches Modell zur Stimmungsklassifikation von Text.

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; }}

// Trainingscodevar context = new MLContext();var data = context.Data.LoadFromTextFile<SentimentData>("data.csv", separatorChar: ',');var pipeline = context.Transforms.Text.FeaturizeText("Features", "Text") .Append(context.BinaryClassification.Trainers.SdcaLogisticRegression());var model = pipeline.Fit(data);var predictionEngine = context.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);var prediction = predictionEngine.Predict(new SentimentData { Text = "C# für ML – großartig!" });Console.WriteLine($"Stimmung: {(prediction.PredictedLabel ? "Positiv" : "Negativ")}");


2. TensorFlow.NET – Die Brücke zu TensorFlow

TensorFlow.NET (TF.NET) bietet Bindungen an das beliebte Google-Framework TensorFlow. Dies ermöglicht die Nutzung aller TensorFlow-Funktionen (neuronale Netze, Deep Learning) aus C# heraus.

Vorteile:

  • Zugriff auf vortrainierte Modelle (z.B. für Bilderkennung)
  • Möglichkeit des Fine-Tunings
  • Hohe Leistung auf der GPU

Beispiel: Laden eines vortrainierten Modells zur Bildklassifikation.

using Tensorflow;using static Tensorflow.Binding;

// Laden des Inception-Modells (Modell-Dateien werden im Ordner erwartet)var graph = new Graph().as_default();graph.Import("inception_v3.pb");

var session = new Session(graph);var tensor = ImageUtil.CreateTensorFromImageFile("cat.jpg");var output = session.run(outputs: graph.OperationByName("output"), inputs: graph.OperationByName("input"), inputTensors: new[] { tensor });Console.WriteLine($"Vorhergesagte Klasse: {output[0].argmax()}");


3. Accord.NET und der SciSharp-Stack

Accord.NET ist eine ältere, aber immer noch nützliche Bibliothek, die eine breite Palette von Algorithmen bietet (SVM, neuronale Netze, Statistik). SciSharp ist eine Community, die beliebte Python-Bibliotheken (NumPy, Pandas, Scikit-learn) auf C# portiert.

Für Einsteiger empfehlen wir den Einstieg mit ML.NET, da es am besten in das .NET-Ökosystem integriert ist und eine hervorragende

Blogs

Buchempfehlungen