Aprendizado de Máquina em C# (.NET): visão geral das bibliotecas ML.NET, Accord.NET, TensorFlow.NET

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, o ecossistema C# (.NET) também oferece ferramentas poderosas e maduras para construir modelos de ML. Se sua infraestrutura é baseada no stack da Microsoft, ou se você prefere tipagem estática e alta performance, as bibliotecas para .NET ajudam a implementar inteligência artificial sem mudar de stack tecnológico. Neste artigo, vamos explorar três bibliotecas principais: ML.NET, Accord.NET e TensorFlow.NET, além de fornecer exemplos práticos de código.



1. ML.NET — biblioteca oficial da Microsoft

ML.NET é uma biblioteca de aprendizado de máquina multiplataforma e de código aberto, criada especificamente para desenvolvedores .NET. Ela permite integrar ML em aplicações sem a necessidade de aprender Python ou R. O ML.NET suporta classificação, regressão, clusterização, ranqueamento, detecção de anomalias e até aprendizado profundo através da integração com ONNX e TensorFlow.



Principais recursos:

  • Transformadores embutidos para preparação de dados (normalização, codificação, concatenação).
  • Seleção automática de modelo (AutoML) via AutoML.NET.
  • Exportação de modelo para o formato ONNX para uso em outras plataformas.
  • Suporte para treinamento em grandes volumes de dados através de IDataView.


Exemplo: classificação binária de avaliações (análise de sentimento)

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

// Carregar dados e treinarvar 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);

// Previsãovar predictionEngine = context.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);var prediction = predictionEngine.Predict(new SentimentData { Text = "This product is amazing!" });Console.WriteLine($"Positivo: {prediction.PredictedLabel}, Confiança: {prediction.Probability:P}");

Este código mostra como treinar um modelo a partir de um arquivo CSV e fazer uma previsão em poucas linhas. O ML.NET processa automaticamente os tipos de dados e cria um pipeline.



2. Accord.NET — framework clássico para computação científica

Accord.NET é um conjunto de bibliotecas para processamento de sinais, estatística e aprendizado de máquina. Ele inclui mais de 40 algoritmos: desde SVM e redes neurais até modelos ocultos de Markov. A biblioteca é amplamente utilizada no meio acadêmico e na indústria desde 2010. Diferente do ML.NET, o Accord.NET oferece um controle de mais baixo nível sobre os algoritmos.



Principais recursos:

  • Ampla variedade de classificadores: KNN, NaiveBayes, RandomForest, SVM.
  • Métodos de pré-processamento embutidos: PCA, LDA, normalização.
  • Suporte a redes neurais (Deep Learning Toolkit).
  • Integração com Math.NET para operações matemáticas complexas.


Exemplo: classificação das íris de Fisher usando KNN

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

// Carregar dados (conjunto clássico Iris)double[][] inputs = new double[][]{ new double[] { 5.1, 3.5, 1.4, 0.2 }, new double[] { 4.9, 3.0, 1.4, 0.2 }, // ... restante

Recommendations