# Top 6 Machine Learning Courses - 2019 Guide & Reviews

Learn Machine Learning this year from these top courses. Curriculum and learning guide included.

With strong roots in statistics, Machine Learning is becoming one of the most interesting and fast-paced computer science fields to work in. There’s an endless supply of industries and applications machine learning can be applied to to make them more efficient and intelligent.

Chat bots, spam filtering, ad serving, search engines, and fraud detection, are among just a few examples of how machine learning models underpin everyday life. Machine learning is what lets us find patterns and create mathematical models for things that would sometimes be impossible for humans to do.

Unlike data science courses, which contain topics like exploratory data analysis, statistics, communication, and visualization techniques, machine learning courses focus on teaching only the machine learning algorithms, how they work mathematically, and how to utilize them in a programming language.

Now, it’s time to get started. Here’s a **TL;DR** of the top five machine learning courses this year.

## Best 6 Machine Learning Courses & Certifications for 2019:

- Machine Learning — Coursera
- Deep Learning Specialization — Coursera
- Machine Learning with Python — Coursera
- Advanced Machine Learning Specialization — Coursera
- Machine Learning — EdX
- Introduction to Machine Learning for Coders — Fast.ai

## What makes a really good machine learning course?

After several years of following the e-learning landscape and enrolling in countless machine learning courses from various platforms, like Coursera, Edx, Udemy, Udacity, and DataCamp, I’ve collected the best machine learning courses currently available.

### Criteria

Each course in the list is subject to the following criteria.

The course should:

- Strictly focus on machine learning
- Use free, open-source programming languages, namely Python, R, or Octave
- Use free, open-source libraries for those languages. Some instructors and providers use commercial packages, so these courses are removed from consideration.
- Contain programming assignments for practice and hands-on experience
- Explain how the algorithms work mathematically
- Be self-paced, on-demand or available every month or so
- Have engaging instructors and interesting lectures
- Have above average ratings and reviews from various aggregators and forums

With that, the overall pool of courses gets culled down quickly, but the goal is to help you decide on a course that’s worth your time and energy.

To immerse yourself and learn ML as fast and comprehensively as possible, I believe you should also seek out various books in addition to your online learning. Below are two books that made a big impact to my learning experience, and remain at an arm’s length at all times.

## Two Excellent Book Companions

In addition to taking any of the video courses below, if you’re fairly new to machine learning you should consider reading the following books:

- Introduction to Statistical Learning, which is also available for Free online.

This book has incredibly clear and straightforward explanations and examples to boost your overall mathematical intuition for many of the fundamental machine learning techniques. This book is more on the theory side of things, but it does contain many exercises and examples using the R programming language.

- Hands-On Machine Learning with Scikit-Learn and TensorFlow, also available through a Safari subscription

A good complement to the previous book since this text focuses more on the application of machine learning using Python. Together with any of the courses below, this book will reinforce your programming skills and show you how to apply machine learning to projects immediately.

Now, let’s get to the course descriptions and reviews.

This is the course for which all other machine learning courses are judged. The teacher and creator of this course for **beginners** is Andrew Ng, a Stanford professor, co-founder of Google Brain, co-founder of Coursera, and the VP that grew Baidu’s AI team to thousands of scientists.

The course uses the open-source programming language **Octave** instead of Python or R for the assignments. This might be a deal-breaker for some, but if you’re a complete beginner, Octave is actually a simple way to learn the fundamentals of ML.

Overall, the course material is extremely well-rounded and intuitively articulated by Ng. All of the math required to understand each algorithm is completely explained, with some calculus explanations and a refresher for Linear Algebra. The course is fairly self-contained, but some knowledge of Linear Algebra beforehand would definitely help.

**Provider:** Andrew Ng, Stanford**Cost:** Free to audit, $79 for Certificate

Course structure:

- Linear Regression with One Variable
- Linear Algebra Review
- Linear Regression with Multiple Variables
- Octave/Matlab Tutorial
- Logistic Regression
- Regularization
- Neural Networks: Representation
- Neural Networks: Learning
- Advice for Applying Machine Learning
- Machine Learning System Design
- Support Vector Machines
- Dimensionality Reduction
- Anomaly Detection
- Recommender Systems
- Large Scale Machine Learning
- Application Example: Photo OCR

All of this is covered over eleven weeks. If you can commit to completing the whole course, you’ll have a good base knowledge of machine learning in about **four months**.

After that, you can comfortably move on to a more advanced or specialized topic, like Deep Learning, ML Engineering, or anything else that piques your interest.

This is undoubtedly the best course to start with as newcomer.

Also taught by Andrew Ng, this specialization is a **more advanced** course series for anyone interested in learning about neural networks and Deep Learning, and how they solve *many* problems.

The assignments and lectures in each course utilize the **Python** programming language and use the **TensorFlow** library for neural networks. This is naturally a great follow up to Ng’s Machine Learning course since you’ll receive a similar lecture style but now will be exposed to using Python for machine learning.

**Provider:** Andrew Ng, deeplearning.ai**Cost:** Free to audit, $49/month for Certificate

Courses:

**Neural Networks and Deep Learning**- Introduction to Deep Learning
- Neural Network Basics
- Shallow Neural Networks
- Deep Neural Networks

**2. Improving Neural Networks: Hyperparameter Tuning, Regularization, and Optimization**

**3. Structuring Machine Learning Projects**

**4. Convolutional Neural Networks**

**5. Sequence Models**

In order to understand the algorithms presented in this course, you should already be familiar with Linear Algebra and machine learning in general. If you need some suggestions for where to pick up the math required, see the Learning Guide towards the end of this article.

Another **beginner** course, this one focuses solely on the most fundamental machine learning algorithms. The instructor, slide animations, and explanation of the algorithms combine very nicely to give you an intuitive feel for the basics.

This course uses **Python** and is somewhat lighter on the mathematics behind the algorithms. With each module you’ll get a chance to spool up an interactive Jupyter notebook in your browser to work through the new concepts you just learned. Each notebook reinforces your knowledge and gives you concrete instructions for using an algorithm on real data.

**Provider:** IBM, Cognitive Class**Price:** Free to audit, $39/month for Certificate

Course structure:

- Intro to Machine Learning
- Regression
- Classification
- Clustering
- Recommender Systems
- Final Project

One of the best things about this course is the practical advice given for each algorithm. When introduced to a new algorithm, the instructor provides you with how it works, its pros and cons, and what sort of situations you should use it in. These points are often left out of other courses and this information is important for new learners to understand the broader context.

This is another **advanced** series of courses that casts a *very* wide net. If you have an interest in covering as many machine learning techniques as possible, this Specialization the key to a balanced and extensive online curriculum.

The instruction in this course is fantastic: extremely well-presented and concise. Due to its advanced nature, you will need more math than any of the other courses listed so far. If you have already taken a beginner course and brushed up on linear algebra and calculus, this is a good choice to fill out the rest of your machine learning expertise.

Much of what’s covered in this Specialization is pivotal to many machine learning projects.

**Provider:** National Research University Higher School of Economics**Cost:** Free to audit, $49/month for Certificate

Courses:

**Introduction to Deep Learning**- Intro to Optimization
- Intro to Neural Networks
- Deep Learning for Images
- Unsupervised Representation Learning
- Dee Learning for Sequences
- Final Project

**2. How to Win Data Science Competitions: Learn from Top Kagglers**

**3. Bayesian Methods for Machine Learning**

**4. Practical Reinforcement Learning**

**5. Deep Learning in Computer Vision**

**6. Natural Language Processing**

**7. Addressing the Large Hadron Collider Challenges by Machine Learning**

It takes about 8-10 months to complete this series of courses, so if you start today, in a little under a year you’ll have learned a massive amount of machine learning and be able to start tackling more cutting-edge applications.

Throughout the months, you will also be creating several real projects that result in a computer learning how to read, see, and play. These projects will be great candidates for your portfolio and will result in your GitHub looking very active to any interested employers.

This is an **advanced** course that has the highest math prerequisite out of any other course in this list. You’ll need a very firm grasp of Linear Algebra, Calculus, Probability, and programming. The course has interesting programming assignments in either **Python** or **Octave**, but the course doesn’t teach either language.

One of the biggest differences with this course is the coverage of the probabilistic approach to machine learning. If you’ve been interested in reading a textbook, like Machine Learning: A Probabilistic Perspective — which is one of the most recommended data science books in Master’s programs — then this course would be a fantastic complement.

**Provider:** Columbia**Cost:** Free to audit, $300 for Certificate

Course structure:

- Maximum Likelihood Estimation, Linear Regression, Least Squares
- Ridge Regression, Bias-Variance, Bayes Rule, Maximum a Posteriori Inference
- Nearest Neighbor Classification, Bayes Classifiers, Linear Classifiers, Perceptron
- Logistic Regression, Laplace Approximation, Kernel Methods, Gaussian Processes
- Maximum Margin, Support Vector Machines (SVM), Trees, Random Forests, Boosting
- Clustering, K-Means, EM Algorithm, Missing Data
- Mixtures of Gaussians, Matrix Factorization
- Non-Negative Matrix Factorization, Latent Factor Models, PCA and Variations
- Markov Models, Hidden Markov Models
- Continuous State-space Models, Association Analysis
- Model Selection, Next Steps

Much of the topics in the curriculum are covered in other courses aimed at beginners, but the math isn’t watered down here. If you’ve already learned these techniques, are interested in going deeper into the mathematics, and want to work on programming assignments that actually derive some of the algorithms, then give this course a shot.

Fast.ai produced this excellent, free machine learning course for those that already have roughly a year of **Python** programming experience.

It's astounding how much time and effort the founders of Fast.ai have put into this course — and other courses on their site. The content is based on the University of San Diego's Data Science program, so you'll find that the lectures are done in a classroom with students, similar to the MIT Opencourseware style.

The course has many videos, some homework assignments, extensive notes, and a discussion board. Unfortunately, you won't find graded assignments and quizzes or a certification upon completion, so if you'd rather have those features then Coursera/Edx would be a better route for you.

Much of the course content is applied, so **you'll learn how to not only how to use the ML models but also launch them on cloud providers**, like AWS.

**Provider:** Fast.ai

**Cost:** Free

Course Structure:

- Introduction to Random Forests
- Random Forest Deep Dive
- Performance, Validation, and Model Interpretation
- Feature Importance. Tree Interpreter
- Extrapolation and RF from Scratch
- Data Products and Live Coding
- RF From Scratch and Gradient Descent
- Gradient Descent and Logistic Regression
- Regularization, Learning Rates, and NLP
- More NLP and Columnar Data
- Embeddings
- Complete Rossmann. Ethical Issues

This course is great if you're a programmer that just wants to learn and apply ML techniques, but I find there is one drawback for me. They teach machine learning through the use of their open-source library (called fastai), which is a layer over other machine learning libraries, like PyTorch.

If you just care about using ML for your project and don't care about learning something like PyTorch, then the fastai library offers convenient abstractions. Personally, I tend to prefer working with the underlying libraries directly.

## Learning Guide

Now that you’ve seen the course recommendations, here’s a quick guide for your learning machine learning journey. First, we’ll touch on the prerequisites for most machine learning courses.

### Course Prerequisites

More advanced courses will require the following knowledge before starting:

- Linear Algebra
- Probability
- Calculus
- Programming

These are the general components of being able to understand how machine learning works under the hood. Many beginner courses usually ask for at least some programming and familiarity with linear algebra basics, such as vectors, matrices, and their notation.

The first course in this list, Machine Learning by Andrew Ng, contains refreshers on most of the math you’ll need, but if you haven’t taken Linear Algebra before, it might be difficult to learn machine learning *and* Linear Algebra at the same time.

If you need to brush up on the math required, check out:

- Matrix Algebra for Engineers from Coursera to cover Linear Algebra
- Fat Chance: Probability from the Ground Up from EdX to cover Probability
- Single Variable Calculus from MIT OpenCourseWare to cover intro Calculus.
- Programming for Everybody course on Coursera to learn Python programming

I’d recommend learning Python since the majority of good ML courses use Python. If you take Andrew Ng’s Machine Learning course, which uses Octave, you should learn Python either during the course or after since you’ll need it eventually. Additionally, another great Python resource is dataquest.io, which has a bunch of free Python lessons in their interactive browser environment.

After learning the prerequisite essentials, you can start to really understand how the algorithms work.

### Fundamental Algorithms

There’s a base set of algorithms in machine learning that everyone should be familiar with and have experience using. These are:

- Linear Regression
- Logistic Regression
- k-Means Clustering
- k-Nearest Neighbors
- Support Vector Machines (SVM)
- Decision Trees
- Random Forests
- Naive Bayes

These are the essentials, but there’s many, many more. The courses listed above contain essentially all of these with some variation. Understanding how these techniques work and when to use them will be extremely important when taking on new projects.

After the basics, some more advanced techniques to learn would be:

- Ensembles
- Boosting
- Dimensionality Reduction
- Reinforcement Learning
- Neural Networks and Deep Learning

This is just a start, but these algorithms are usually what you see in the most interesting machine learning solutions, and they’re effective additions to your toolbox.

And just like the basic techniques, with each new tool you learn you should make it a habit to apply it to a project immediately to solidify your understanding and have something to go back to when in need of a refresher.

### Tackle a Project

Learning machine learning online is challenging and extremely rewarding. It’s important to remember that just watching videos and taking quizzes doesn’t mean you’re really learning the material. You’ll learn even more if you have a side project you’re working on that uses different data and has different objectives than the course itself.

As soon as you start learning the basics, you should look for interesting data that you can apply those new skills to. The courses above will give you some intuition on when to apply certain algorithms, and so it’s a good practice to immediately apply them in a project of your own.

Through trial and error, exploration and feedback, you’ll discover how to experiment with different techniques, how to measure results, and how to classify or make predictions. For some inspiration on what kind of ML project to take on, see this list of examples.

Tackling projects gives you a better high-level understanding of the machine learning landscape, and as you get into more advanced concepts, like Deep Learning, there’s virtually an unlimited number of techniques and methods to understand and work with.

### Read New Research

Machine learning is a rapidly developing field where new techniques and applications come out daily. Once you’re passed the fundamentals, you should be equipped to work through some research papers on a topic you’re interested in.

There’s several websites to get notified about new papers matching your criteria. Google Scholar is always a good place to start. Enter keywords like “machine learning” and “twitter”, or whatever else you’re interested in, and hit the little “Create Alert” link on the left to get emails.

Make it a weekly habit to read those alerts, scan through papers to see if their worth reading, and then commit to understanding what’s going on. If it has to do with a project you’re working on, see if you can apply the techniques to your own problem.

## Wrapping Up

Machine learning is incredibly fun and interesting to learn and experiment with, and I hope you found a course above that fits your own journey into this exciting field.

Machine learning makes up one component of Data Science, and if you’re also interested in learning about statistics, visualization, data analysis, and more, be sure to check out the top data science courses, which is a guide that follow a similar format to this one.

Lastly, if you have any questions or suggestions, feel free to leave them in the comments below.

Thanks for reading and have fun learning!