Want to learn machine learning or data science but not sure where to start? I was there — and I remember the long nights of researching through the sea of information on the internet to find the course that will be the best use of my time. After some arduous digging, I found some excellent resources on learning machine learning which I used to land interviews and get a role in the data realm. In this post, I’ll share my favourite machine learning course so you can dive straight into learning machine learning without spending nights researching on the same topic as I did.
Today, machine learning is often touted as the silver bullet to many of the world problems — it has given us effective web search, self-driving cars, real-time speech recognition and even tremendously demystified the human genome. Its ubiquity in our everyday lives reflect its utility and potential in improving human lives at scale, and therein lies the appeal of machine learning.
To the outsider who takes no interest in learning it, it is nothing but a buzzword shrouded in a cloud of mystery. To the newcomers who desire to undertake it, machine learning might seem like an esoteric concept with high barriers of entry. Yet, machine learning need not be mysterious or difficult to understand. With a genuine desire to start pursuing knowledge in machine learning and a pinch of patience, you are in the perfect place to start tackling it right now.
But what exactly is machine learning?
I like to think of machine learning as the science of teaching machines to learn by itself. More rigorously, the father of machine learning, Arthur Samuel, defined it elegantly in 1959 as
the field of study that gives computers the ability to learn without being explicitly programmed 
This is a stark difference from what we defined traditional programming as. In traditional programming, we give a computer a piece of program and an input. In turn, we expect an output. For instance, if we provide a calculator program the input of 1+1, we all know what the output is.
However, with machine learning, we give a computer some inputs and outputs. Over time, the machine learns the relationship between the inputs and outputs better. When we give a new piece of input, it’s able to tell us the predicted output.
For example, Elon plans on buying a used Tesla. He researches on Tesla car prices on Craigslist and finds that a close-to-new Tesla starts at around $40,000. He also realizes that with every year of age of the car, the Tesla prices drop by around $1,000. He then predicts that the car of 5-year age is — you’ve guessed it — $35,000.
In other words, Elon just invented regression — an important concept in machine learning! In machine learning, the program recognizes patterns between the inputs and the output and predicts the output.
What about Artificial Intelligence and Deep Learning?
Those are the buzzwords that are used in close proximity with machine learning. What exactly is their relationship with one another? This is best captured in a diagram —
As you can see from this Venn diagram, deep learning is a subset of machine learning where the algorithms mimic the way our brain transmits information — from neuron to neuron. Deep learning is often seen as a more sophisticated form of machine learning. As such, a learner should grasp the basics of machine learning before diving into deep learning.
On the other hand, machine learning is a subset of artificial intelligence (AI). Colloquially, AI is defined as the mimicry of cognitive intelligence demonstrated by machines in various forms, including but not limited to reasoning, planning and learning. 
How do these all relate to data science?
Data science is the inter-disciplinary field that uses techniques and theories drawn from the fields of mathematics, computer science, domain knowledge.  To illustrative what data science is, I like to use the Venn diagram below.
As you can see, data science is a combination of knowledge from different areas — mathematics, computer science and domain expertise. Machine learning is where mathematics meets computer science — the confluence of computational power with elegant mathematical equations applied on large data sets. As such, machine learning is a salient component of data science.
Okay, I get it now. How do I learn it?
There are a plethora of machine learning courses to learn machine learning. This runs the gamut from introductory machine learning to graduate-level classes, from physical classes to online classes.
Some of the introductory machine learning classes that are popular among newbies in the data science field include:
- Udacity’s Introduction to Machine Learning Class
- Datacamp’s / Dataquest Machine Learning Fundamentals with Python
- Machine Learning by Columbia University on EdX
- Machine Learning A-Z on Udemy
- Free Machine Learning Course by Harvard University
And the list continues!
Personally, I have attempted some of these machine learning courses on the list but was not quite satisfied by the depth and rigor provided by some of these classes.
If you are looking for a rigourous machine learning class that will help your trajectory as a data scientist, you’re at the right place. Today, I will share my personal favourite introductory machine learning class that I have benefited tremendously from — that is Machine Learning by Andrew Ng (Stanford University) on Coursera. I’ll also share my advice on what is the knowledge required, what to expect in the class and how to perform your best in this class.
Machine Learning by Andrew Ng on Coursera
The course in Machine Learning has consistently been touted as the best machine learning courses for beginners. The course’s rating of 4.9 out of 150,000 ratings from its 3.7 million enrollees alludes to its trustworthiness.
You can attend the classes for free (audit version). As a learner, you can enroll for free at any time. However, if you were to enroll for free, you will not be eligible for the certificate that proves that you have completed the class. You will not be able to submit and receive feedback for most of the programming exercises and quizzes.
You can sign up for a free trial on Coursera for 7-days and you can return the course at any time before the 7 days is up too.
The certificate costs $49. Personally I found the certificate to be an excellent way for me to prove that I have the necessary motivation to complete the class. Financial aid is also available for learners who are in need, so feel free to reach out to Coursera. Here’s how —
The instructor of the course, Andrew Ng, needs very little introduction. He is an adjunct professor at Stanford University, the co-founder of Coursera and Google Brain, the former Vice President at Baidu, and needless to say an extremely influential figure in the realm of machine learning.
Why I’m Glad I Took this Class
Wanting to pursue data science but not knowing where to start, I frantically googled ‘how to learn data science’ a little over a year ago. I was quickly overwhelmed by the deluge of resources and the sheer scale of things to learn — math, probability, statistics, machine learning — and scrambled to take the class that seemed the most popular, and that’s Andrew Ng’s Machine Learning.
I can now say that I’m very glad that I took this class.
I still remember having completed this machine learning course and wanting to try my luck for a data science internship — I was absolutely terrified, to say the least, but the fact that I took the class made me a little calmer. Those very first data science interviews taught me that most machine learning practitioners are familiar, or at least are cognizant, of the course. When I attended those interviews, I was heartened to receive nods of approval from hiring managers when I mentioned that I completed the class.
The fact that I completed the class provided a springboard for the hiring managers to ask follow-up questions, like ‘what have you learnt from the class’, ‘what was the most challenging part of the class’ and ‘how can you apply the lessons from the class in our company?’
In hindsight, the action of completing the class might have been perceived as a sign of motivation to learn and a demonstration of basic knowledge of machine learning — both of which essential qualities hiring managers look for in a data science position.
Admittedly, I didn’t land a data science internship when my resume only had this course. However, it provided me with the confidence to start speaking the language of the experts in the field. With that, I was able to network and learn from data science experts.
Who this class is for
This class is meant to the serious student would like to pursue a technical role in data analytics, data science, machine learning or AI. It is also aimed at beginners who do not have a background in machine learning or those seeking a refresher in machine learning concepts. While not explicitly mentioned, the mathematical rigor of the class will strongly appeal to learners with an appetite for a deep appreciation of machine learning while put off learners with little interest in the cogs of machine learning.
As such, the time commitment is not trivial. The class takes approximately 60 hours to complete in total. Assuming you are able to commit 2 hours every day, this course will take a month. Depending on your level of proficiency with mathematics and programming, the hours might vary.
Who is this class not for
With that in mind, this class is not meant for non-technical learners seeking a general qualitative understanding of the machine learning and how it solves problems, you might be better off taking the AI for everyone also instructed by Andrew Ng. The class aims at non-technical professionals who are hoping to get an understanding of the AI landscape and jargons. This class is also much shorter, requiring only a time commitment of about only 6 hours.
Also, if you do not the idea of learning mathematics and programming, this course might not be the easiest class. You might find it hard to sustain your motivation and interest.
Okay, math sounds difficult. Can I do machine learning without math?
Well, not really. Doing machine learning without understanding the mathematics comes with severe disadvantages. Firstly, your skill sets of blindly implementing machine learning can easily be replaced by automated machine learning AutoML like those implemented by Google Cloud. Secondly, the value of a data scientist is the careful selection of an appropriate algorithm that performs the best after considering its run-time and storage complexity and its appropriateness of an algorithm to the data set.
Imagine you are the owner of a car. Sure, you are able to drive the car smoothly when the car runs. However, if you need to build a car from scratch one day, or if you ever need to troubleshoot a faulty car, you will need an understanding of the cogs and wheels that keeps the car on the road. None of these is possible if you do not understand the inner workings of the car. Now, the car is a data science algorithm — if you do not know how it works on the inside, you can’t build a machine learning algorithm.
As data scientists, analyst and engineers, our role is not only to use a machine learning model but also to build, maintain it and deploy it. You need to do need to know the math to do that.
Okay, I do want to learn, but I don’t have solid mathematics or coding background…
No worries! There are no actual prerequisites for the class on Coursera — you can absolutely start taking the class without any of the classes I mention below. However, I do recommend taking some pre-requisites that will increase the chance of you in succeeding in the class.
Recommended Coding Background
Having attended python and R courses in Datacamp and Dataquest, I started this course with very a basic grasp of MATLAB and python. This course provides a brief and gentle introduction to MATLAB very early on, so you need not worry if you do not have the necessary coding experience. This helps to get learners up to speed on the proficiency of coding required.
If you are familiar with other programming languages but not MATLAB, I suggest you dive right into the course and not worry too much about the language. However, if you would still like to spend some time learning MATLAB, I recommend the following excellent resources provided by
Recommended Mathematics Coding Background
This course assumes some knowledge in high school level calculus and level linear algebra. The more proficient you are at math, the easier it is more you to breeze through the course, and the vice versa is also true.
Andrew Ng’s class does provide some refresher in linear algebra, so you need not worry about it if you are rusty in linear algebra.
That said, I would still recommend you asking yourself the following questions before starting the class —
- Do I know the rules of differentiation confidently? If not, check out Khan Academy’s Differential Calculus classes.
- Do I know what are matrices and how to perform operations (transpose, arithmetic, dot product) on matrices? If not, check out Khan Academy’s Linear Algebra playlist.
The following picture shows some of the mathematical questions encountered in the class. Are you comfortable with such notations? If not, it might be a good idea to give yourself a quick refresher using the links above.
What to expect
To learn machine learning, one generally needs to know
- The different types of problems that can be solved with machine learning.
- The different types of algorithms to solve different problems.
- The strength and weaknesses of each algorithm on different data sets.
- The mathematics and assumptions that underpin each algorithm.
- The trade-off of machine learning (bias-variance trade-off)
- Best practices in machine learning.
- The application of machine learning algorithms.
To cover these concepts, Andrew Ng’s class is divided into chapters organized by algorithms. Each class flows logically: it prepares the readers by first providing them with a brief introduction of the algorithm and salient examples of its real world application. It then builds the readers’ intuition of the algorithm through cogent diagrammatic explanations. Such intuition reduces the friction of understanding the mathematics of the algorithm, which are covered extensively but not excessively in the course.
After the lectures, you can test your understanding with quizzes. To internalize your learning, you would also have opportunity to implement the algorithms in Matlab from scratch using the first principles.
Things you’ll learn in this class
The course provides a wide bird-eye perspective on the bread-and-butter of the machine learning landscape. Here is a mind-map of concepts covered in the class.
Excellent Book Companion
Though Andrew Ng’s course does not have an official textbook, I do find it helpful to consult textbooks when I’m in doubt. For that, I recommend the textbook Introduction to Statistical Learning, which is also available for Free online. This book provides lucid explanations and illustrations to enhance your mathematical intuition for the machine learning algorithms. One caveat is that it uses R as a primary language of instruction.
Tips and Tricks in Making Progress
- Ask questions
It is really easy to get stuck in the same spot for very long. Coursera offers a forum for learners like yourself to ask questions. If you do need someone to help, feel free to reach out to me personally — I’ll help as much as I can.
- Take it slowly
The concepts covered in this course is by no means simple. It is natural to progress slowly through the class, so do take it slowly.
- Take small breaks
When you have tried a particular code block long enough and it does not give you the desired output, maybe it is time to take a step back and take a break.
- Make notes along the way.
I found making notes and coding on paper to be very helpful as I get to visualize the concepts by drawing diagrams. I also find it instructive to write down the code on paper before implementing it on my computer as it helps me formalize my thoughts.
If you are convinced, I strongly encourage you to start today and give it a try today .
Where to Go After This Course
Congratulations! Now that you’ve completed the course and that you’re hungry for more knowledge, you have a good foundation of what machine learning is and its mathematical foundation, you are ready for more. Here are some of my suggestions of what you can pursue.
- Brush up on other data science skills (SQL, python and R)
- Create interesting projects that showcase your newfound skills.
- Take classes in statistics and probability.
- Take classes in deep learning from deeplearning.ai on Coursera.
- Take the advanced version of this class CS229 Machine Learning. This requires an advanced (undergraduate/graduate) understanding of linear algebra, statistics and probability.
If you’re interested in becoming a data scientist…
This is a four-part series on how to learn data science in 2020. You can refer to them below.
- Part 1 — Data Processing with SQL, Python and R
- Part 2 — Mathematics, Probability and Statistics (coming soon)
- Part 3 — Computer Science Fundamentals (coming soon)
- Part 4 — Machine Learning (you’re here!)
- Part 5 — Your Personal Data Science Capstone Project (coming soon)
As a learner who did not know in machine learning, I felt incredibly hopeful after I took this course. It provided me with a great foundation to learn other machine learning and data science concepts. If you keep at it, I’m sure you can complete the course in no time and feel the same way.
All the best to your learning journey! Feel free to reach out to me via LinkedIn for any suggestions or questions.
 Dhar, V. (2013). “Data science and prediction”. Communications of the ACM. 56 (12): 64–73. doi:10.1145/2500499. S2CID 6107147. Archived from the original on 9 November 2014. Retrieved 2 September 2015.