You are here for one of two reasons: either because you want to get a ML quick start or because you have already made your first steps and want to see whether they have been the right ones.
By Iffy Kukkoo
08 Jun, 2017
You are here for one of two reasons: either because you want to get a ML quick start or because you have already made your first steps and want to see whether they have been the right ones. Either way, this article should prove an interesting read for you. Since, unlike most of the other texts on the subject, it doesn’t propose using Python or MATLAB. Instead, it focuses on explaining how to efficiently use .NET technologies. And why doing that may mean getting rid of the need for other programming languages.
Don’t get me wrong: it’s a never-ending discussion and there’s a reason why Python and MATLAB are usually favoured. They are both easy to learn and as easy to use afterwards. Especially if you’re starting from scratch. Furthermore, they both use your CPU resources rather sparingly, while providing comparatively fast performance.
However – and particularly if you are already programming in .NET – there’s really no reason for you to switch.
The most popular .NET language (and one of the most popular programming languages in general), C#, is not only the best choice for developing Windows apps and games, but it also works as great with ML. These are the main three reasons:
If you know the basics of the C# syntax, you will quickly find your inside the libraries for ML (like Accord.NET and AForge.NET);
C# is faster than Python due to its “compiled” origin (Python is an interpreted language);
Microsoft’s tools will make your work significantly easier and more efficient. You can create and manage Azure Database and publish your program to the Azure server directly from your integrated development environment (IDE). In addition, you can use all of Azure’s machine learning services, which will certainly help you get the most of cloud computing insofar data manipulations with ML are concerned.
Python and MATLAB work great if you are just starting and you don’t have any programming background either in .NET or at all. In any other case, however, I’d recommend giving .NET a try. I promise: exploring the numerous opportunities it offers will be merely a beginning.
Leaving the theory behind us, it’s time we focus more on practising the basics of ML using C# and the Accord.NET library. Maybe that will do the trick.
This article presumes that you already have some basic understanding of how AI – and ML in particularly – works. If that’s not the case, first, take your time to get familiar with some of the basic concepts and terminology or even ML’s objectives (there are few other relevant articles as well – more philosophical and less scientific). Afterwards, come back here and, bit by bit, I’ll lead you through some of the coding basics.
Hopefully, since you moved to this paragraph, you have same basic grasp of ML or you did heed to my warnings and read few of this blog’s other articles. Anyway, it’s time we began. In supervised ML, each task falls in one of two categories: regression and classification. Since this article concerns only the practical side of the most basic ML concepts, for now, we’ll focus mostly on regression. You may know something about regression from your linear algebra classes. According to a relevant course at Khan’s Academy (which I strongly advise you to take if you want to strengthen your mathematical skills):