Microsoft recently (June 2018) announced the release of ML.NET — let me try to explain what it is and a bit about its history. Briefly, ML.NET is a code library for machine learning. In its most basic form, ML.NET is just a set of .NET DLLs that can be called in many different ways — on a command line in a shell, from a GUI wrapper program, through a C# API in a C# program, and on and on.
The screenshot below shows an example of the original way ML.NET was used. You enter the command maml.exe followed by a huge list of command line arguments, and you get output. In this example, ML.NET uses a “averaged perceptron” (a very primitive linear classification algorithm that is rarely used anymore) to perform binary classification on the UCI breast cancer dataset.
ML.NET has actually been in existence for many years. It started out as an internal Microsoft project called TMSN (“text mining search and navigation”) when .NET was first released around 2003 or so. The idea was to create .NET DLLs for machine learning that Microsoft engineers could use inside product code.
Over the years TMSN was renamed to TLC (“the learning code”) and then to MAML (“Microsoft Azure machine learning”, where is was used to power the Azure Machine Learning Studio system) and then to ML.NET for use outside of Microsoft. Three’s a lot more to the story, but the point is that ML.NET isn’t new.
The motivation for ML.NET is to give software developers who use the traditional Microsoft technology stack a way to do machine learning that aligns with how they work — .NET in Visual Studio. The vast majority of machine learning is performed using the Python language but the problem is, when a prediction model has been created using Python, it’s not so easy to transfer the model into a .NET system.
The Microsoft ML.NET Web site is at https://www.microsoft.com/net/learn/apps/machine-learning-and-ai/ml-dotnet.