Welcome, .NET developers! Explore the power of ML.NET, Microsoft's opensource machine learning framework. Leverage your existing C# skills to build intelligent applications. No Python or TensorFlow needed.
Step by Step Project Implementation:
Create Console Application Project using C#
Download Micorsoft.ML Package
Step 1st:
using Microsoft.ML.Data;
namespace MLExample
{
internal class StudentData
{
[LoadColumn(0)]
public float StudyHours;
[LoadColumn(1)]
public float Attendance;
[LoadColumn(2), ColumnName("Label")]
public bool Passed;
}
}
2) Create StudentPrediction Class
internal class StudentPrediction
{
[ColumnName("PredictedLabel")]
public bool Passed;
public float Probability { get; set; }
public float Score { get; set; }
}
3) Create student-data.csv file as a Data Source
5,90,True
2,60,False
8,95,True
1,50,False
6,85,True
3,65,False
7,92,True
2,40,False
4,70,True
1,30,False
4) Program.cs file
using Microsoft.ML;
using MLExample;
using System;
class Program
{
static void Main(String[] args)
{
Console.WriteLine("Hello");
var context = new MLContext();
// 2. Load Data (update your file path here)
var data = context.Data.LoadFromTextFile<StudentData>(
path: @"d:\student-data.csv",
hasHeader: false,
separatorChar: ',');
// 3. Define the pipeline
var pipeline = context.Transforms
.Concatenate("Features", nameof(StudentData.StudyHours), nameof(StudentData.Attendance))
.Append(context.BinaryClassification.Trainers.SdcaLogisticRegression(
new Microsoft.ML.Trainers.SdcaLogisticRegressionBinaryTrainer.Options
{
MaximumNumberOfIterations = 10
}));
Console.WriteLine("Training started...");
// 4. Train the model
var model = pipeline.Fit(data);
Console.WriteLine("Training completed.");
// 5. Create prediction engine (for single prediction)
var predictor = context.Model.CreatePredictionEngine<StudentData, StudentPrediction>(model);
// 6. Create sample input
var newStudent = new StudentData
{
StudyHours = 4,
Attendance = 80
};
// 7. Predict
var result = predictor.Predict(newStudent);
// 8. Output result
Console.WriteLine($"Study Hours: {newStudent.StudyHours}, Attendance: {newStudent.Attendance}");
Console.WriteLine($"Will Pass: {result.Passed}, Probability: {result.Probability:P2}");
}
}
POST Answer of Questions and ASK to Doubt