Skip to content
ML.NET is an open source and cross-platform machine learning framework for .NET.
C# C++ Batchfile Shell CMake C
Branch: master
Clone or download

Latest commit

frank-dong-ms new code coverage (#5169)
* test new code coverage

* change coverage path

* fix failure

* try test code coverage

* fix build

* try new file filters

* fix coverage report path

* fix coverage report path

* try remove GC.Collect

* remove unnecessary new line
Latest commit c8cace2 May 30, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update CODEOWNERS Oct 27, 2019
build new code coverage (#5169) May 30, 2020
docs added in standard conversions from types to ReadOnlyMemory<char> (#5106) May 28, 2020
pkg Fix Microsoft.ML.DataView references (#5136) May 18, 2020
src Robust Scaler now added to the Normalizer catalog (#5166) May 29, 2020
test new code coverage (#5169) May 30, 2020
tools-local Updates NetCoreApp 3.0 builds to NetCoreApp 3.1 (#4888) Mar 23, 2020
.editorconfig Enable VSTHRD200 (Use "Async" suffix for async methods) (#4794) Mar 2, 2020
.gitattributes ci test build Jan 15, 2019
.gitignore switch housing dataset to wine (#170) May 23, 2018
.gitmodules Making MF to be a part of ML.NET (#1263) Oct 26, 2018
.vsts-dotnet-ci.yml Update Ubuntu build and reenable test on Linux (#5137) May 15, 2020
BuildToolsVersion.txt Updates NetCoreApp 3.0 builds to NetCoreApp 3.1 (#4888) Mar 23, 2020 Adding code of conduct definition (#3449) Apr 22, 2019 ci test build Jan 15, 2019
Directory.Build.props test move back to host see if still hangs (#5108) May 9, 2020
Directory.Build.targets Fix official build (#5040) Apr 19, 2020
DotnetCLIVersion.txt Updates NetCoreApp 3.0 builds to NetCoreApp 3.1 (#4888) Mar 23, 2020
DotnetExtraRuntimeVersion.txt Enabling building ML.NET for .NET Core 3.0 in the official builds. (#… Aug 13, 2019 Create & (#12) Jan 17, 2019
LICENSE Initial commit May 4, 2018
Microsoft.ML.sln Updates NetCoreApp 3.0 builds to NetCoreApp 3.1 (#4888) Mar 23, 2020 Update May 7, 2018 Remove March survey link (#4984) Mar 31, 2020 [Mn] Roadmap and release process update (#4704) Jan 28, 2020
THIRD-PARTY-NOTICES.TXT Fix runtime exception in ImageClassification. (#3249) Apr 9, 2019
build.cmd Fixes build errors caused by spaces in the project path (#196) May 23, 2018
build.proj new code coverage (#5169) May 30, 2020 Make,, & executable on OSX/Linux (#225) Feb 26, 2019
codecov.yml Enhance code coverage bot message. (#2235) Feb 20, 2019
config.json Updates NetCoreApp 3.0 builds to NetCoreApp 3.1 (#4888) Mar 23, 2020
dir.traversal.targets ci test build Jan 15, 2019
init-tools.cmd fix 2 build issues (#5026) Apr 15, 2020
init-tools.msbuild ci test build Jan 15, 2019 Enabling building ML.NET for .NET Core 3.0 in the official builds. (#… Aug 13, 2019
run.cmd ci test build Jan 15, 2019 Fixing build in UNIX systems that don't have en-US as default culture ( Apr 17, 2020

Machine Learning for .NET

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.

Getting started with machine learning by using ML.NET

If you are new to machine learning, start by learning the basics from this collection of resources targeting ML.NET:

Learn ML.NET

ML.NET Documentation, tutorials and reference

Please check our documentation and tutorials.

See the API Reference documentation.

Sample apps

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

ML.NET videos playlist at YouTube

The ML.NET videos playlist on YouTube contains several short videos. Each video focuses on a particular topic of ML.NET.

Operating systems and processor architectures supported by 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.

ML.NET Nuget packages status

NuGet Status

Release notes

Check out the release notes to see what's new.

Using ML.NET packages

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:

Building ML.NET (For contributors building ML.NET open source code)

To build ML.NET from source please visit our developers guide.


Debug Release
CentOS Build Status Build Status
Ubuntu Build Status Build Status
macOS Build Status Build Status
Windows x64 Build Status Build Status
Windows FullFramework Build Status Build Status
Windows x86 Build Status Build Status
Windows NetCore3.1 Build Status Build Status

Release process and versioning

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 Join the chat at

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.

Code examples

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")
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.

.NET Foundation

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.
You can’t perform that action at this time.