Online Course
Machine Learning
AllTime Top 100 Provider Coursera
 Cost Free Online Course (Audit)
 Session In progress
 Language English
 Certificate Paid Certificate Available
 Effort 57 hours a week
 Duration 11 weeks long
 Learn more about MOOCs
Taken this course? Share your experience with other students. Write review
Overview
Class Central Tips
Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us selfdriving cars, practical speech recognition, effective web search, and a vastly improved understanding of the human genome. Machine learning is so pervasive today that you probably use it dozens of times a day without knowing it. Many researchers also think it is the best way to make progress towards humanlevel AI. In this class, you will learn about the most effective machine learning techniques, and gain practice implementing them and getting them to work for yourself. More importantly, you'll learn about not only the theoretical underpinnings of learning, but also gain the practical knowhow needed to quickly and powerfully apply these techniques to new problems. Finally, you'll learn about some of Silicon Valley's best practices in innovation as it pertains to machine learning and AI.
This course provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/nonparametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI). The course will also draw from numerous case studies and applications, so that you'll also learn how to apply learning algorithms to building smart robots (perception, control), text understanding (web search, antispam), computer vision, medical informatics, audio, database mining, and other areas.
This course provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/nonparametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI). The course will also draw from numerous case studies and applications, so that you'll also learn how to apply learning algorithms to building smart robots (perception, control), text understanding (web search, antispam), computer vision, medical informatics, audio, database mining, and other areas.
Syllabus
Introduction
Welcome to Machine Learning! In this module, we introduce the core idea of teaching a computer to learn concepts using data—without being explicitly programmed. The Course Wiki is under construction. Please visit the resources tab for the most complete and uptodate information.
Linear Regression with One Variable
Linear regression predicts a realvalued output based on an input value. We discuss the application of linear regression to housing price prediction, present the notion of a cost function, and introduce the gradient descent method for learning.
Linear Algebra Review
This optional module provides a refresher on linear algebra concepts. Basic understanding of linear algebra is necessary for the rest of the course, especially as we begin to cover models with multiple variables.
Linear Regression with Multiple Variables

What if your input has more than one value? In this module, we show how linear regression can be extended to accommodate multiple input features. We also discuss best practices for implementing linear regression.
Octave/Matlab Tutorial
This course includes programming assignments designed to help you understand how to implement the learning algorithms in practice. To complete the programming assignments, you will need to use Octave or MATLAB. This module introduces Octave/Matlab and shows you how to submit an assignment.
Logistic Regression
Logistic regression is a method for classifying data into discrete outcomes. For example, we might use logistic regression to classify an email as spam or not spam. In this module, we introduce the notion of classification, the cost function for logistic regression, and the application of logistic regression to multiclass classification.
Regularization
Machine learning models need to generalize well to new examples that the model has not seen in practice. In this module, we introduce regularization, which helps prevent models from overfitting the training data.
Neural Networks: Representation
Neural networks is a model inspired by how the brain works. It is widely used today in many applications: when your phone interprets and understand your voice commands, it is likely that a neural network is helping to understand your speech; when you cash a check, the machines that automatically read the digits also use neural networks.
Neural Networks: Learning
In this module, we introduce the backpropagation algorithm that is used to help learn parameters for a neural network. At the end of this module, you will be implementing your own neural network for digit recognition.
Advice for Applying Machine Learning
Applying machine learning in practice is not always straightforward. In this module, we share best practices for applying machine learning in practice, and discuss the best ways to evaluate performance of the learned models.
Machine Learning System Design
To optimize a machine learning algorithm, you’ll need to first understand where the biggest improvements can be made. In this module, we discuss how to understand the performance of a machine learning system with multiple parts, and also how to deal with skewed data.
Support Vector Machines
Support vector machines, or SVMs, is a machine learning algorithm for classification. We introduce the idea and intuitions behind SVMs and discuss how to use it in practice.
Unsupervised Learning
We use unsupervised learning to build models that help us understand our data better. We discuss the kMeans algorithm for clustering that enable us to learn groupings of unlabeled data points.
Dimensionality Reduction
In this module, we introduce Principal Components Analysis, and show how it can be used for data compression to speed up learning algorithms as well as for visualizations of complex datasets.
Anomaly Detection
Given a large number of data points, we may sometimes want to figure out which ones vary significantly from the average. For example, in manufacturing, we may want to detect defects or anomalies. We show how a dataset can be modeled using a Gaussian distribution, and how the model can be used for anomaly detection.
Recommender Systems
When you buy a product online, most websites automatically recommend other products that you may like. Recommender systems look at patterns of activities between different users and different products to produce these recommendations. In this module, we introduce recommender algorithms such as the collaborative filtering algorithm and lowrank matrix factorization.
Large Scale Machine Learning
Machine learning works best when there is an abundance of data to leverage for training. In this module, we discuss how to apply the machine learning algorithms with large datasets.
Application Example: Photo OCR
Identifying and recognizing objects, words, and digits in an image is a challenging task. We discuss how a pipeline can be built to tackle this problem and how to analyze and improve the performance of such a system.
Welcome to Machine Learning! In this module, we introduce the core idea of teaching a computer to learn concepts using data—without being explicitly programmed. The Course Wiki is under construction. Please visit the resources tab for the most complete and uptodate information.
Linear Regression with One Variable
Linear regression predicts a realvalued output based on an input value. We discuss the application of linear regression to housing price prediction, present the notion of a cost function, and introduce the gradient descent method for learning.
Linear Algebra Review
This optional module provides a refresher on linear algebra concepts. Basic understanding of linear algebra is necessary for the rest of the course, especially as we begin to cover models with multiple variables.
Linear Regression with Multiple Variables

What if your input has more than one value? In this module, we show how linear regression can be extended to accommodate multiple input features. We also discuss best practices for implementing linear regression.
Octave/Matlab Tutorial
This course includes programming assignments designed to help you understand how to implement the learning algorithms in practice. To complete the programming assignments, you will need to use Octave or MATLAB. This module introduces Octave/Matlab and shows you how to submit an assignment.
Logistic Regression
Logistic regression is a method for classifying data into discrete outcomes. For example, we might use logistic regression to classify an email as spam or not spam. In this module, we introduce the notion of classification, the cost function for logistic regression, and the application of logistic regression to multiclass classification.
Regularization
Machine learning models need to generalize well to new examples that the model has not seen in practice. In this module, we introduce regularization, which helps prevent models from overfitting the training data.
Neural Networks: Representation
Neural networks is a model inspired by how the brain works. It is widely used today in many applications: when your phone interprets and understand your voice commands, it is likely that a neural network is helping to understand your speech; when you cash a check, the machines that automatically read the digits also use neural networks.
Neural Networks: Learning
In this module, we introduce the backpropagation algorithm that is used to help learn parameters for a neural network. At the end of this module, you will be implementing your own neural network for digit recognition.
Advice for Applying Machine Learning
Applying machine learning in practice is not always straightforward. In this module, we share best practices for applying machine learning in practice, and discuss the best ways to evaluate performance of the learned models.
Machine Learning System Design
To optimize a machine learning algorithm, you’ll need to first understand where the biggest improvements can be made. In this module, we discuss how to understand the performance of a machine learning system with multiple parts, and also how to deal with skewed data.
Support Vector Machines
Support vector machines, or SVMs, is a machine learning algorithm for classification. We introduce the idea and intuitions behind SVMs and discuss how to use it in practice.
Unsupervised Learning
We use unsupervised learning to build models that help us understand our data better. We discuss the kMeans algorithm for clustering that enable us to learn groupings of unlabeled data points.
Dimensionality Reduction
In this module, we introduce Principal Components Analysis, and show how it can be used for data compression to speed up learning algorithms as well as for visualizations of complex datasets.
Anomaly Detection
Given a large number of data points, we may sometimes want to figure out which ones vary significantly from the average. For example, in manufacturing, we may want to detect defects or anomalies. We show how a dataset can be modeled using a Gaussian distribution, and how the model can be used for anomaly detection.
Recommender Systems
When you buy a product online, most websites automatically recommend other products that you may like. Recommender systems look at patterns of activities between different users and different products to produce these recommendations. In this module, we introduce recommender algorithms such as the collaborative filtering algorithm and lowrank matrix factorization.
Large Scale Machine Learning
Machine learning works best when there is an abundance of data to leverage for training. In this module, we discuss how to apply the machine learning algorithms with large datasets.
Application Example: Photo OCR
Identifying and recognizing objects, words, and digits in an image is a challenging task. We discuss how a pipeline can be built to tackle this problem and how to analyze and improve the performance of such a system.
Taught by
Andrew Ng
Class Central Charts
 #3 in Subjects / Computer Science
 #3 in Subjects / Computer Science / Artificial Intelligence
 #2 in Subjects / Computer Science / Machine Learning
 #1 in Subjects / Machine Learning / Supervised Learning
Tags
Help Center
Most commonly asked questions about Coursera
Reviews for Coursera's Machine Learning Based on 352 reviews
 5 stars 82%
 4 stars 14%
 3 stars 2%
 2 stars 1%
 1 stars 1%
Did you take this course? Share your experience with other students.
Write a review 1
 …
Anonymous
Anonymous
completed this course.
My opinion is very personal.
In my view, taking a class rather then reading a book has one fundamental aim: make it easier and faster to get workable knowledge on a topic and to capitalize on it.
In other word the objective of such a class should be: get knowledge you can use in a fast and effective way. This class does none of that. Really, it DOES NOT! I have maybe spent 150 hours on this class hoping to get something real out of it. All I got is confusion and a better idea about the topic in general. After 150 hours you should be able to confortably produce somethi…
In my view, taking a class rather then reading a book has one fundamental aim: make it easier and faster to get workable knowledge on a topic and to capitalize on it.
In other word the objective of such a class should be: get knowledge you can use in a fast and effective way. This class does none of that. Really, it DOES NOT! I have maybe spent 150 hours on this class hoping to get something real out of it. All I got is confusion and a better idea about the topic in general. After 150 hours you should be able to confortably produce somethi…
Was this review helpful to you?
Yes
Gregory S
by
Gregory
completed this course and found the course difficulty to be medium.
Machine Learning is one of the first programming MOOCs Coursera put online by Coursera founder and Stanford Professor Andrew Ng. Although Machine learning has run several times since its first offering and it doesn’t seem to have been changed or updated much since then, it holds up quite well. This course assumes that you have basic programming skills. Assignments also require many vector and matrix operations and slides include some long formulas expressed in summation notation so it is recommended to have some familiarity with linear algebra. You don't need to know calculus or statistics to …
115
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Anonymous
Anonymous
completed this course.
Background elements:
I'm an engineer by trade and have been working on statiscal projects in field of transport regulation for about ten years.
I have some general background in maths and theorical computer science, I'm capable of programming.
I followed this course in order to developp my professional skills.
I did perform most review test without much trouble, I didn't do most of the programming exercise due to everyday work and as I wasn't too eager to get into another programming language at the time (Octave).
I had significa…
I'm an engineer by trade and have been working on statiscal projects in field of transport regulation for about ten years.
I have some general background in maths and theorical computer science, I'm capable of programming.
I followed this course in order to developp my professional skills.
I did perform most review test without much trouble, I didn't do most of the programming exercise due to everyday work and as I wasn't too eager to get into another programming language at the time (Octave).
I had significa…
85
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Anonymous
Anonymous
completed this course.
This is possibly the most outstanding university class you will ever take. It is definitely the best university level course I have ever taken, and I have taken quite a few, both in person and online (MOOC). If you have any interest whatsoever in how computers learn to recognize faces, text, or recommend movies you might like, this class is nearly perfect in every way.
The instructor is an amazing human being and as cofounder of Coursera cares deeply about education. Yes, you will have to do some programming, but the instructor assumes no previous knowledge and all the information…
The instructor is an amazing human being and as cofounder of Coursera cares deeply about education. Yes, you will have to do some programming, but the instructor assumes no previous knowledge and all the information…
28
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Anonymous
Anonymous
completed this course.
I was able to finish this 11week MOOC in ten days because the materials are a fine balance between succinct and comprehensive and very engagingly presented. I was initially turned off by the use of MATLAB/Octave as the programming language of choice for the assignments, but I found them relatively painless and wellcrafted to give the student a modular view of how these machine learning algorithms work and the possible optimizations when implementing them.
I had exposure to many of the concepts before taking the class, but had never implemented or understood the mathematics behin…
I had exposure to many of the concepts before taking the class, but had never implemented or understood the mathematics behin…
19
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Scott
completed this course.
Andrew Ng is a clear and charismatic lecturer, he covers advanced techniques, and he provides a number of practical tips, but the programming exercises are a bit canned, and may not fully prepare students to write their own scripts in Octave.
The exercises involve mostly copying and pasting, rather than writing entire scripts. There's a reason for this: the focus of the course is on algorithms, not on other parts of solving machine learning problems
My final concern is that Machine Learning seems to have gone on autopilot at this point, with little or no attention from Ng or anyone else who helped him prepare the course materials. Questions in the discussion forum are answered instead by "Community TA's", that is, volunteers who took earlier sessions of the course.
Despite these concerns, I still heartily recommend Machine Learning as a valuable starting point for anyone interested in data science.
The exercises involve mostly copying and pasting, rather than writing entire scripts. There's a reason for this: the focus of the course is on algorithms, not on other parts of solving machine learning problems
My final concern is that Machine Learning seems to have gone on autopilot at this point, with little or no attention from Ng or anyone else who helped him prepare the course materials. Questions in the discussion forum are answered instead by "Community TA's", that is, volunteers who took earlier sessions of the course.
Despite these concerns, I still heartily recommend Machine Learning as a valuable starting point for anyone interested in data science.
14
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Mark
completed this course.
This course is famous. It’s taught by the equally famous Coursera cofounder and MLstar, Andrew Ng. Though I found this class to be one of the worst learning experiences I’ve had with a MOOC, I really have to say I love Andrew’s ability to explain things and the way he teaches in general.
There were several problems, though. First of all, the setup instructions for Mac were broken. Much more importantly, the class is not comparable to Andrew’s actual ML class at Stanford. Throughout the course, he keeps telling students not to worry about the math, and spoon feeding equations to…
There were several problems, though. First of all, the setup instructions for Mac were broken. Much more importantly, the class is not comparable to Andrew’s actual ML class at Stanford. Throughout the course, he keeps telling students not to worry about the math, and spoon feeding equations to…
24
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Wickwack
completed this course, spending 4 hours a week on it and found the course difficulty to be medium.
Professor Ng is extremely clear. His lectures are extraordinarily wellorganized, thoughtful, and clear. The assignments are interesting, relevant, and not too difficult.
After completing the course, I took MIT's open Linear Algebra course, and at that point was able to get more of the mathematical background. Professor Ng was very careful to present the material without much math  impressive to say the least. However, once I got more of the mathematical background, I felt much more solid in my understanding.
After completing the course, I took MIT's open Linear Algebra course, and at that point was able to get more of the mathematical background. Professor Ng was very careful to present the material without much math  impressive to say the least. However, once I got more of the mathematical background, I felt much more solid in my understanding.
16
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Paolo
is taking this course right now, spending 8 hours a week on it and found the course difficulty to be medium.
Low production values; terrible audio quality; a very traditional, mostly noninteractive approach... and yet, this course manages to be one of the best I've ever taken. The quality of Andrew Ng's teaching is just *that* good. He's a rare case of a worldlevel expert that's also extremely good at communicating his knowledge. This guy makes you wish you could shake his hand and buy him a beer at the end of each lesson.
This course proves that a skilled human with a whiteboard can still beat the bells and whistles of more expensively produced trainings. If you know little or nothing about Machine Learning, it will give you a solid foundation.
This course proves that a skilled human with a whiteboard can still beat the bells and whistles of more expensively produced trainings. If you know little or nothing about Machine Learning, it will give you a solid foundation.
Was this review helpful to you?
Yes
John
completed this course.
A lot of participants were concerned that it was a watered down version of Stanford’s CS229. And, in fact, the course was more limited in scope and more applied than the official Stanford class. However, I found this to be a strength. Because I was already familiar with most of the methods in the beginning (linear and multiple regression, logistic regression), I could focus more on the machine learning perspective that the class brought to these methods. Programming exercises were done in Octave, an open source Matlablike programming environment.
7
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Nitin
completed this course.
I was completely new to ML but never felt lost while taking this course (completed yesterday). The programming assignments are a bit watered down in that most of the "boilerplate" is already written but you still get great insight with whatever is left for you to implement  in particular, learning to write vectorized code is what I found immensely useful.
6
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Prose S
by
Prose
completed this course, spending 7 hours a week on it and found the course difficulty to be medium.
Prof Ng simplifies ML as much as possible  and no more. In the complex arena of ML, that still leaves things fairly complex... But thanks to this course (which I'm 90% of the way through) I feel like I'll have a sufficient intuitive grasp of ML for vaguely sensible use of the many prebuilt libraries now available in the field.
This course should also provide a framework for coping with the remaining complexity entailed by deeper study, and motivation to brush up on the related mathematical tools, where necessary.
On the downside, there are some avoidable glitches in …
This course should also provide a framework for coping with the remaining complexity entailed by deeper study, and motivation to brush up on the related mathematical tools, where necessary.
On the downside, there are some avoidable glitches in …
10
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Rick
completed this course, spending 6 hours a week on it and found the course difficulty to be hard.
Best class I've ever taken.
Now I feel like I have a super power. The hard part now is trying to figure out what problems I'd like to swoop in and try to solve.
Now I feel like I have a super power. The hard part now is trying to figure out what problems I'd like to swoop in and try to solve.
6
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
James S
by
James
is taking this course right now, spending 4 hours a week on it and found the course difficulty to be medium.
Having completed a number of MOOCs I was pleasantly surprised to find out how good this one is. The course is taught well with lectures that are challenging at first glance but explained well, I felt like I made good progress in understanding the subject.
The course did require some understanding of calculus and algebra, but nothing too difficult. Some people who had not done either subject for some time did need to spend some time refreshing their knowledge. In addition, you will need some familiarity of programming or at least the willingness to put in the time required to br…
The course did require some understanding of calculus and algebra, but nothing too difficult. Some people who had not done either subject for some time did need to spend some time refreshing their knowledge. In addition, you will need some familiarity of programming or at least the willingness to put in the time required to br…
3
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Ruilin Y
by
Ruilin
completed this course, spending 8 hours a week on it and found the course difficulty to be medium.
Personally, I value MOOCs of either [demanding and rewarding] type or [relaxing] type. This one, though overly famous, is neither.
I finished this MOOC at around Feb, 2017, with the hope that it can help me with my transition of career. But in the end I feel apart from a paid certificate, I get almost nothing. **All you need is to interpret the mathematical formula in the slides, to be able to later program them with a programming language called Octave.**
Is it really of no value? Well, you still can gain something, like practicing your ability of blind mimic. But the really valuable thing, like gaining insight to think and formulate problems on your own, cannot be reached by translating dead mathematical formula to code.
I finished this MOOC at around Feb, 2017, with the hope that it can help me with my transition of career. But in the end I feel apart from a paid certificate, I get almost nothing. **All you need is to interpret the mathematical formula in the slides, to be able to later program them with a programming language called Octave.**
Is it really of no value? Well, you still can gain something, like practicing your ability of blind mimic. But the really valuable thing, like gaining insight to think and formulate problems on your own, cannot be reached by translating dead mathematical formula to code.
Was this review helpful to you?
Yes
Vishnuvardhan
completed this course, spending 6 hours a week on it and found the course difficulty to be medium.
It is a very good course for anyone who wants to begin their journey into Machine Learning. The course is well structured and well taught by the Prof. Ng.
You don't have to have any background in Matlab/Octave but a programming background is needed.
Neural Network related programming assignments are a bit hard compared to other assignments. But, overall there isn't much programming to do except for filling code in some functions.
Overall, it is a very good course and you will learn a lot at the end of the course.
You don't have to have any background in Matlab/Octave but a programming background is needed.
Neural Network related programming assignments are a bit hard compared to other assignments. But, overall there isn't much programming to do except for filling code in some functions.
Overall, it is a very good course and you will learn a lot at the end of the course.
3
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Anonymous
Anonymous
completed this course.
It is a very wellbalanced version of the course. Some time ago I tried watching the original Stanford video recording of this course and it was too dry with endless math derivations. On the other hand, this interactive Coursera version strikes the right balance between the theory and application. The course is very practical and you can build very useful systems just based on the material presented in the course. I've watched several similar courses, and this one is by far the best.
4
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Alan D
by
Alan
completed this course, spending 4 hours a week on it and found the course difficulty to be very easy.
A fairly good overview of machine learning, with a fair amount of breadth but almost no depth. Good introduction for a nontechnical audience, with only a highschool grasp of calculus and a little bit of linear algebra.
The exercises were very basic, and the programming exercises were pretty canned  you could easily complete them without any real understanding of the material nor any programming knowledge.
Really, this course only taught you enough to be dangerous  enough "understanding" to go around and build models, but not enough to avoid pitfalls.
The exercises were very basic, and the programming exercises were pretty canned  you could easily complete them without any real understanding of the material nor any programming knowledge.
Really, this course only taught you enough to be dangerous  enough "understanding" to go around and build models, but not enough to avoid pitfalls.
2
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Ankit D
by
Ankit
completed this course, spending 5 hours a week on it and found the course difficulty to be easy.
A really good course with focus on basic algorithms and techniques in the field of ML. Regression, Neural networks and SVMs are some of the techniques taught by Andrew Ng. Video lectures are good and material is well explained. The course also helps in learning Octave and its basic syntax; the notion of vectorized code is introduced. Coding assignments are easy and most of the code is just ready to be filled. It is a very basic intro to ML nonetheless a wellconstructed course.
4
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
Anonymous
Anonymous
completed this course.
All other Machine Learning courses require an advanced knowledge of programming, this one is not, and I really appreciate it as I have a background in statistics but not much coding experience . Great course, highly recommend to anybody who is interested in data.
5
people found
this review helpful
this review helpful
Was this review helpful to you?
Yes
 1
 …