About two months ago I took steps to get into the Machine Learning bandwaggon. It was tough to take that first step for many reasons. The first was the tough decision of choosing the right programming language to learn. Did I want to stick to the JVM and Java or chose another JVM language? Take up Python. Or learn something else. This article from KDnuggets made that decision much harder. Luckily, due to circumstances from a recent project, I decided to turn to Scala. And so far, I haven’t been disappointed.
But the bigger challenge was getting my head around machine learning. Everything I got my fingers on was for those who were already familiar with data sciences. All the articles either discuss the top 10 algorithms or something similar. What I needed was to learn the theory behind machine learning and the basis for all those algorithms. After some research, I found the following book: Understanding Machine Learning: From Theory to Algorithms.
Finally, I needed to choose the technology; there is so much out there. The two big ones being Google’s TensorFlow and Apache’s Spark. Some are dedicated to the Python programming language. Others support Java and Scala. There isn’t anything for Google Go, a language that I had spent a week learning. Julia looks interesting. But it seems to have a bigger following in the data sciences than in general-purpose development.
After viewing several videos. Attempting to read several articles. And going in circles several times over. I finally settled with Apache Spark. One of the reasons being that it has a solid foothold within the Big Data realm. It’s a member of Hadoop. And has already earned its notches as a tool. MLlib, its machine learning library seems fairly mature.
Finally, to confirm that I had made the right decision I checked indeed.ca. There seems to be a bigger demand for Apache Spark developers versus Google’s TensorFlow. Some of the other known JVM-based libraries like WEKA and Smile didn’t make the mark.
So I’ve purchased a few books on the topics of Spark and Deep Learning. And looking forward to gaining that needed experience.