Aprendizado de Máquina em C# (.NET): Visão Geral de Bibliotecas e Ferramentas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Aprendizado de Máquina em C# (.NET): Visão Geral das Principais Bibliotecas



Embora o Python seja tradicionalmente considerado a linguagem principal para aprendizado de máquina (ML), o ecossistema C# (.NET) oferece soluções poderosas e maduras para integrar modelos de ML em aplicações corporativas, serviços web e programas desktop. Neste artigo, analisaremos as principais bibliotecas disponíveis para desenvolvedores C#, seus recursos, exemplos de uso e cenários de aplicação.



1. ML.NET — Biblioteca oficial da Microsoft



ML.NET é uma biblioteca de aprendizado de máquina multiplataforma, de código aberto e gratuita, desenvolvida pela Microsoft. Ela permite criar, treinar e usar modelos de ML diretamente em aplicações .NET, sem a necessidade de mudar para Python ou outras linguagens.



Principais recursos:

  • Suporte a algoritmos clássicos: regressão, classificação, clusterização, ranqueamento.
  • Aprendizado profundo através da integração com TensorFlow e ONNX.
  • Aprendizado de máquina automático (AutoML) para seleção do modelo ideal.
  • Pipelines integrados de processamento de dados (transformações, normalização).
  • Integração com Visual Studio (extensão Model Builder).


Exemplo: classificação binária (análise de sentimento de texto)

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();// Carregamento de dadosIDataView data = context.Data.LoadFromTextFile<SentimentData>("data.tsv", separatorChar: '\\t');// Pipeline: transformação de texto + treinamentovar pipeline = context.Transforms.Text.FeaturizeText("Features", nameof(SentimentData.SentimentText)) .Append(context.BinaryClassification.Trainers.SdcaLogisticRegression());// Treinamentovar model = pipeline.Fit(data);// Usovar 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 — Conjunto de ferramentas de computação científica



Accord.NET é uma biblioteca poderosa que oferece não apenas algoritmos de ML, mas também ferramentas para processamento de sinais, estatística, visão computacional e redes neurais. É considerada uma das soluções mais completas para .NET.



Principais recursos:

  • Ampla variedade de algoritmos: SVM, Random Forest, K-Means, Naive Bayes.
  • Redes neurais profundas (Accord.Neuro).
  • Processamento de imagens e vídeos (Accord.Imaging).
  • Testes estatísticos e distribuições.


Exemplo: treinamento de um classificador SVM

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

// Dados de treinamento (características: dois números)double[][] inputs = { new double[] { 0, 0 }, new double[] { 1, 1 }, new double[] { 1, 0 }, new double[] { 0, 1 }};int[] outputs = { 0, 1, 1, 0 };

// Criação e treinamento de SVM com kernel Gaussianovar teacher = new SequentialMinimalOptimization<Gaussian>(){ Complexity = 100};var svm = teacher.Learn(inputs, outputs);

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


3. TensorFlow.NET — Bindings .NET para TensorFlow



TensorFlow.NET (SciSharp) são bindings oficiais de baixo nível para TensorFlow no .NET. A biblioteca permite realizar operações com tensores, construir e treinar redes neurais, além de carreg

Recommendations