Machine Learning is no longer limited to Python developers. With ML.NET, .NET developers can build, train, and deploy machine learning models directly using C#.
What is ML.NET?
ML.NET is an open-source, cross-platform machine learning framework developed by Microsoft.
It allows developers to:
- Train custom machine learning models
- Use pre-trained models
- Perform predictions in C#
- Integrate AI into ASP.NET, desktop, and console apps
Official website:
Why Use ML.NET?
Here are some reasons developers love ML.NET:
- Works directly with C#
- No need to learn Python
- Easy integration with existing .NET applications
- Cross-platform support
- Supports classification, regression, recommendation, clustering, and more
Project Goal
In this beginner project, we will create a simple Sentiment Analysis Application.
The application will predict whether a sentence is:
- Positive
- Negative
Example:
| Input | Prediction |
|---|---|
| “This product is amazing” | Positive |
| “Worst experience ever” | Negative |
Prerequisites
Before starting, install:
1. .NET SDK
Download from:
2. Visual Studio
Download from:
Make sure you install:
.NET Desktop Development workload
Step 1: Create Console Application
Open terminal and run:
dotnet new console -n FirstMLNetProject
Move into the project folder:
cd FirstMLNetProject
Step 2: Install ML.NET Package
Run the following command:
dotnet add package Microsoft.ML
This installs the ML.NET framework into your project.
Step 3: Create Training Data
Create a file named:
sentiment-data.tsv
Add sample data:
Sentiment Text
1 I love this product
1 This is fantastic
1 Amazing experience
0 I hate this item
0 Worst product ever
0 Very bad service
Here:
1= Positive0= Negative
Step 4: Create Data Models
Create a new class file:
SentimentData.cs
Add:
using Microsoft.ML.Data;
public class SentimentData
{
[LoadColumn(0)]
public bool Sentiment;
[LoadColumn(1)]
public string Text;
}
public class SentimentPrediction
{
[ColumnName("PredictedLabel")]
public bool Prediction;
public float Probability;
public float Score;
}
Step 5: Write ML.NET Logic
Open Program.cs and replace with:
using Microsoft.ML;
var context = new MLContext();
// Load Data
var data = context.Data.LoadFromTextFile<SentimentData>(
path: "sentiment-data.tsv",
hasHeader: true);
// Build Pipeline
var pipeline = context.Transforms.Text.FeaturizeText(
outputColumnName: "Features",
inputColumnName: nameof(SentimentData.Text))
.Append(context.BinaryClassification.Trainers.SdcaLogisticRegression(
labelColumnName: "Sentiment",
featureColumnName: "Features"));
// Train Model
var model = pipeline.Fit(data);
// Create Prediction Engine
var predictor = context.Model.CreatePredictionEngine
<SentimentData, SentimentPrediction>(model);
// Test Prediction
var input = new SentimentData
{
Text = "This service is awesome"
};
var prediction = predictor.Predict(input);
Console.WriteLine($"Prediction: {(prediction.Prediction ? "Positive" : "Negative")}");
Console.WriteLine($"Probability: {prediction.Probability}");
Step 6: Run the Application
Execute:
dotnet run
Example Output:
Prediction: Positive
Probability: 0.95
How ML.NET Works Behind the Scenes
ML.NET follows a simple workflow:
Data → Training → Model → Prediction
The framework:
- Reads data
- Converts text into numeric features
- Trains a machine learning algorithm
- Predicts results from new input
Understanding the Pipeline
This line is very important:
context.Transforms.Text.FeaturizeText()
It converts text into machine-readable vectors.
Then:
SdcaLogisticRegression()
trains a binary classification model.
Advantages of ML.NET
Easy for .NET Developers
- You can build AI solutions without leaving C#.
Production Ready
Works smoothly with:
- ASP.NET Core
- Blazor
- WinForms
- WPF
- Web APIs
Fast Integration
- No external Python service needed.
Real-World Use Cases
ML.NET can be used for:
- Spam detection
- Product recommendation
- Fraud detection
- Price prediction
- Customer sentiment analysis
- Image classification
Tips for Beginners
- Start with small datasets
- Learn data preprocessing
- Understand model evaluation metrics
- Experiment with different trainers
- Use Model Builder for visual training
ML.NET Model Builder
Microsoft also provides a visual tool called:
- ML.NET Model Builder
- It helps generate machine learning code automatically.
Learn more:
Conclusion
Your first project with ML.NET is a great starting point for entering the world of AI using C#.
With only a few lines of code, you can:
- Train models
- Predict outcomes
- Add intelligence to applications
As you continue learning, you can explore:
- Deep learning
- Image recognition
- Recommendation engines
- NLP applications
- AI-powered web APIs
Machine Learning in .NET is becoming more powerful every year, and ML.NET makes it accessible for every C# developer.
Happy Coding
Leave a Comment