ML.NET is a cross-platform open-source machine learning framework which makes machine learning accessible to .NET developers with the same code that powers machine learning across many Microsoft products, including Power BI, Windows Defender, and Azure.
ML.NET allows .NET developers to develop/train their own models and infuse custom machine learning into their applications using .NET, even without prior expertise in developing or tuning machine learning models. It provides data loading from files and databases, enables data transformations and includes many ML algorithms.
ML.NET enables machine learning (ML) tasks like classification (for example, text classification, sentiment analysis), regression (for example, price prediction), and many other ML tasks such as anomaly detection, time-series-forecast, clustering, ranking, etc.
If you are new to machine learning, start by learning the basics from this collection of resources targeting ML.NET:
Please check our documentation and tutorials.
See the API Reference documentation.
We have a GitHub repo with ML.NET sample apps with many scenarios such as Sentiment analysis, Fraud detection, Product Recommender, Price Prediction, Anomaly Detection, Image Classification, Object Detection and many more.
In addition to the ML.NET samples provided by Microsoft, we're also highlighting many more samples created by the community showcased in this separate page ML.NET Community Samples
The ML.NET videos playlist on YouTube contains several short videos. Each video focuses on a particular topic of ML.NET.
ML.NET runs on Windows, Linux, and macOS using .NET Core, or Windows using .NET Framework.
64 bit is supported on all platforms. 32 bit is supported on Windows, except for TensorFlow and LightGBM related functionality.
Check out the release notes to see what's new.
First, ensure you have installed .NET Core 2.1 or later. ML.NET also works on the .NET Framework 4.6.1 or later, but 4.7.2 or later is recommended.
Once you have an app, you can install the ML.NET NuGet package from the .NET Core CLI using:
dotnet add package Microsoft.ML
or from the NuGet package manager:
Install-Package Microsoft.ML
Alternatively, you can add the Microsoft.ML package from within Visual Studio's NuGet package manager or via Paket.
Daily NuGet builds of the project are also available in our Azure DevOps feed:
https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json
To build ML.NET from source please visit our developers guide.
Debug | Release | |
---|---|---|
CentOS | ||
Ubuntu | ||
macOS | ||
Windows x64 | ||
Windows FullFramework | ||
Windows x86 | ||
Windows NetCore3.1 |
Check out the release process documentation to understand the different kinds of ML.NET releases.
We welcome contributions! Please review our contribution guide.
Please join our community on Gitter
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.
Here is a snippet code for training a model to predict sentiment from text samples. You can find complete samples in samples repo.
var dataPath = "sentiment.csv";
var mlContext = new MLContext();
var loader = mlContext.Data.CreateTextLoader(new[]
{
new TextLoader.Column("SentimentText", DataKind.String, 1),
new TextLoader.Column("Label", DataKind.Boolean, 0),
},
hasHeader: true,
separatorChar: ',');
var data = loader.Load(dataPath);
var learningPipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText")
.Append(mlContext.BinaryClassification.Trainers.FastTree());
var model = learningPipeline.Fit(data);
Now from the model we can make inferences (predictions):
var predictionEngine = mlContext.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);
var prediction = predictionEngine.Predict(new SentimentData
{
SentimentText = "Today is a great day!"
});
Console.WriteLine("prediction: " + prediction.Prediction);
A cookbook that shows how to use these APIs for a variety of existing and new scenarios can be found here.
ML.NET is licensed under the MIT license and it is free to use commercially.
ML.NET is a .NET Foundation project.
There are many .NET related projects on GitHub.
- .NET home repo - links to 100s of .NET projects, from Microsoft and the community.