Machine Learning has become the hot topic of this decade and is only gaining more and more popularity with companies like Google, Apple, Facebook using it more and more to improve their products and alongside leading the march for young developers around the world.
The sudden shift towards machine learning is not just because big companies are using it, but one of the major factor driving this is the availability of numerous open source frameworks which do the heavy lifting and make developer's life easier.
In this article, we will talk about 10 such frameworks which are most popular and best to start with Machine learning.
1. Apache Spark MLlib
Apache Spark MLlib is a scalable machine learning library which can be used in Java, Scala, Python and R. It can be used along with any Hadoop data source like HDFS, HBase etc. Performance wise it is a high-quality algorithm as it is built on the popular Spark framework. It is about 100x faster than MapReduce in performance.
H2O is created to be a one-stop solution for data gathering, building models based on gathered data and then making predictions. This framework can be used in all the major development environments like Python, Java, Scala, R etc and big data systems like Hadoop, Spark. It is a comparative young framework but is being actively used by some leading products for various use-cases, like PayPal, Cisco, Comcast etc.
Caffe is an ML framework developed by Berkeley AI Research(BAIR) and is open source. Caffe comes with Expressive Architecture, Extensible Code, Speed and a great community for support. Also, the documentation provided is good with a lot of tutorials and easy to follow up for absolute beginners.
4. Google TensorFlow
TensorFlow is one of the most popular machine learning framework supported by Google. In the latest Google I/O TensorFlow 1.8 was released. It's an open source library for high-performance numerical computation. Internet companies like AirBnb, AMD, Nvidia, Dropbox, Snapchat etc are actively using TensorFlow in their products.
5. Amazon machine Learning
Amazon Machine Learning is a service provided as a part of AWS which helps developers to design machine learning models without getting into the details of complex machine learning algorithms. Simple APIs are provided to implement custom prediction generation code etc. But this service is paid hence less popular amongst developers who are learning machine learning. The good thing about this framework is the availability of proper documentation with examples and a web-based interface to create and access your machine learning entities.
6. Microsoft Azure ML Studio
In the race of Machine learning framework, how could a giant company like Microsoft fall behind? This framework is best suited with Python and R language and documentation for the same is also provided on the official website. Also, there are detailed hands-on videos for a beginner to start developing using this framework.
7. Microsoft Distributed Machine learning Toolkit
DMTK Framework is best suited for setting up distributed Big data cluster which will then be used for training machine learning models. Again you get a detailed Documentation for installation and start-up guide, but additional resources are very less. But being supported by Microsoft this framework is here to stay.
As the official website says, Marvin is a minimalist GPU-only N-dimensional ConvNet framework. It is so developed that anyone can change parts of it and hack it as per any particular use-case. The best part is, all the code lives in just 2 files - marvin.hpp and marvin.cu and its super easy to setup and start working with it. But to use this, you need to have Nvidia GPU on your system.
9. The Veles
Veles is developed and released as open source by Samsung. Veles is a distributed platform, which provides machine learning and data processing services for user and is written in python.
mlpack is a fast and flexible library written in C , which aims to provide a fast and extensible implementation of machine learning algorithms.
Before picking any one framework and start with machine learning spend some time in learning about the basics of machine learning, various models etc. This will not only help you develop good applications but will also enable you to pick the right framework based on your requirements.