An Architectural Perspective of ML.NET
- By Dino Esposito and Francesco Esposito
ML.NET is now slated to become the reference platform for machine learning in the .NET space. It is mainly limited to shallow learning and doesn’t offer direct support for building neural networks and deep learning (the support is only for consuming existing networks). On the other hand, also in the Python space there are libraries for shallow learning (scikit-learn) and libraries for building neural networks.
It is, instead, much more interesting and promising is the overall approach aimed at making machine learning easy to consume and relatively easy to design for developers. No developers will turn into expert data scientists overnight—not even after digesting the content of this book—but any savvy developer passionate about newer technologies and artificial intelligence would be incredibly comfortable with getting into the dazzling world of machine learning through ML.NET.
We’ve already mentioned something, but it helps to reinforce the concept: Although Python is quite popular among data scientists, there’s no strict reason why machine learning models can’t be developed and tested in .NET (or other languages, including Java and Go). It’s all about the ecosystem and ease of use. ML.NET relies on the .NET Core infrastructure and Visual Studio.
Let’s now go with a simple but not-so-trivial and complete example: taxi fare prediction. The next chapter includes a bit of feature engineering, feature selection, and, more importantly, a client web application.