Back to Mathematics for Machine Learning: PCA

stars

2,602 ratings

•

646 reviews

This intermediate-level course introduces the mathematical foundations to derive Principal Component Analysis (PCA), a fundamental dimensionality reduction technique. We'll cover some basic statistics of data sets, such as mean values and variances, we'll compute distances and angles between vectors using inner products and derive orthogonal projections of data onto lower-dimensional subspaces. Using all these tools, we'll then derive PCA as a method that minimizes the average squared reconstruction error between data points and their reconstruction.
At the end of this course, you'll be familiar with important mathematical concepts and you can implement PCA all by yourself. If you’re struggling, you'll find a set of jupyter notebooks that will allow you to explore properties of the techniques and walk you through what you need to do to get on track. If you are already an expert, this course may refresh some of your knowledge.
The lectures, examples and exercises require:
1. Some ability of abstract thinking
2. Good background in linear algebra (e.g., matrix and vector algebra, linear independence, basis)
3. Basic background in multivariate calculus (e.g., partial derivatives, basic optimization)
4. Basic knowledge in python programming and numpy
Disclaimer: This course is substantially more abstract and requires more programming than the other two courses of the specialization. However, this type of abstract thinking, algebraic manipulation and programming is necessary if you want to understand and develop machine learning algorithms....

JS

Jul 16, 2018

This is one hell of an inspiring course that demystified the difficult concepts and math behind PCA. Excellent instructors in imparting the these knowledge with easy-to-understand illustrations.

NS

Jun 18, 2020

Relatively tougher than previous two courses in the specialization. I'd suggest giving more time and being patient in pursuit of completing this course and understanding the concepts involved.

Filter by:

By Kenny C

•Jul 22, 2020

This course was very frustrating. I would say that I'm quite competent in math, but I still struggled, not necessarily because the content is challenging, but because the instructions are unclear. I like that the lectures go through derivations in detail, but the instructor often skips steps. Sometimes he would reference a property of matrices that were not talked about, and I would have to spend half an hour researching what that property was to follow what was happening. The quizzes were minimally helpful, as they were merely the same computation question repeated throughout the quiz, which does not help to build intuitive understanding. The programming assignments are unclear on instructions and had many bugs, even in the pre-written parts. A lot of time was spent on reading the NumPy documentation, as the assignments gave little indication of what functions should be used and how they should be used. Overall, despite having a mathematical derivation of PCA, the course is very confusing and frustrating, perhaps even to those competent in this area of study.

By Lawrence C W

•May 10, 2021

Aggravating. Poor "examples" in the lectures and followed by weak exercises. I understand that they're probably trying to change them from time-to-time to minimize the ability to copy or cheat from pervious cohorts, but when you do that we should certainly ensure to fix all text within the assignment as to prevent confusion. Such as only asking to normalize by centering on the mean, not dividing by the standard deviation. However, further down the exercise it mentions mean and standard deviation.... Okay was I supposed to do that from the beginning or did you forget to edit this section? Additionally errors within the notebook. Functions not running (eig). Causing a never ending stream of 20% grading. Is it my code or this thing failing to execute correct? Very aggravating.

The combination: Poor "examples" during lecture - assuming that everyone is more familiar i guess (maybe I'm alone in this), and sub-par exercises as they pertain to the lecture. I'm disappointed.

By Osaama S

•Aug 22, 2020

Relative to the first two courses, this one unforutanately focused a lot less on building the intuition and more on proofs and theorems. The instructor did not offer insight into the "why" and "how" of projections and it was left on us to figure out how to connect eigenvectors and projections to derive PCA. The instructor also offered zero insight into the inner products properties. Big thanks to Susan Huang for explaining so many challenging and theoretical concepts on discussion forums in such beautiful detail.

By Astankov D A

•May 26, 2020

Although the lecturer admits that the course is quite challenging at times, it is a poor justification for the terrible assignments with close to zero explanations, errors in functions and lots of misfunctioning code in general where the notebook keeps spinning in an infinite loop. I was very hesitant while rating this course - sometimes I wanted to give it 4 stars and sometimes just a single one. I ended up with just two due to the really bad final programming assignment.

By Karl

•May 30, 2020

Pretty bad in comparison to the previous 2 courses. Not sure if the topic was just harder or it was presented less clearly. Assignments were confusing and I spent a lot of time trying to work out what I was supposed to be doing. More relevant practice questions might have been better. Also course felt slightly detached and maybe collaboration between the tutors which seemed to be there in the previous course should have happened here.

By Colin H

•Oct 2, 2020

Course material good but programming exercises are poorly designed and cause a lot of problems - even when you have understood the material very well. So unfortunately part of the assessment is your ability to sort out the problems from a poorly designed exercise rather than reinforce what you have been learning.

Fix the programming exercises and the course could be very good.

By Yana K

•Apr 18, 2019

Not really well structured. Too much in-depth details, too little intuition given. Didn't help to understand PCA. Had to constantly look for other resources online. Pity, because first 2 courses in the specialisation were really good.

By Ali K

•Jun 3, 2020

the instructor is knowledgeable but he has no teaching skills what so ever. He makes things very confusing. An example at the end would be very useful. No step-wise algorithm is provided.

By Christian M

•Sep 29, 2020

Very enlightening but the course assignments are full of bugs and make it really hard to work with. The first two courses of the specialization were way better.

By Patrick F

•Feb 1, 2019

The programming tasks are very bad documented and have errors.

By Andrei

•Nov 1, 2018

terrible assignments

By Anurag G

•Sep 13, 2020

I started this course with lots of enthusiasm since the previous two courses were exceptionally well structured and helpful, but I can not compare this course with those two.

The biggest problem for me was that Programming assignments are not well written and most of the time beyond the course material shared. It challenges your previous skills and may hit your self-confidence.

There are also few mistakes or/and skipped steps in the video, and they make progress little tricky.

My classmates were very helpful, and I would suggest relying more on the forums than video lectures when you need help. I would not recommend this course at all to anyone, but if you have done the first two, may complete the last one to complete the specialization.

Also, the first two courses are a few of the best certificates that I did on Machine Learning, and I have done six other mathematics for machine learning, currently enrolled for a degree course in Data Science.

All the best!

By Nuria C

•Nov 3, 2020

I did the other two courses of the specialization, which I found great. They clearly explain concepts and give examples. In this course, the professor basically writes down definitions as you can find in any maths book, with no explanation and barely no examples. So, I found myself lost on the quiz and programming assignments. I am quitting the course even if I paid for it, since I feel is it not being a good use of my time. It is true that it is indicated as intermediate level, while the other two courses were for beginners, so I guess I am just in a course which is not for my level. I just don't know then why they included all three in the same package? :/

By Aniket D B

•Oct 2, 2020

Do not take this course. This course is just a waste of time, money, and effort. The instructions in this course are vague and useless. You have to learn everything from the internet in order to answer the quiz. The programming assignments are so poorly designed that there is no difference between a blank notebook and programming assignments in this course. The grader will grade everything wrong even when your code is correct. You have to do extra maneuvers in order to get your assignment graded correctly. IF I HAD AN OPTION OF GIVING A NEGATIVE RATING I WOULD HAVE GIVEN THIS COURSE A MAXIMUM NEGATIVE RATING. EVEN 1 STAR RATING IS TOO MUCH FOR THIS COURSE.

By Shubhayu D

•Jun 13, 2020

The first two courses in the specialization were extremely good. However, this course is nowhere close to them. Neither does the instructor provide enough intuition, nor do the assignments help in the learning process.

By Abhishek S

•Jun 7, 2020

The first two courses of this specialisation were awesome PCA being a hard topic is difficult to understand but the course was boring and not good compared to previous two.

By Nathaniel F

•Mar 14, 2021

I think there are broken graded assessment in week 4 'test_normalization'

By Kapeesh V

•Apr 17, 2021

Week 4 Assignment is not constructed properly.

By Gita A S

•Mar 12, 2021

So many bugs on the programming assignment!

By Anton K

•Nov 14, 2020

By far, this is the best out of 3 courses in this specialization. It is hard though and in the weeks 3 and 4 I had to pause and rewind almost every 10 seconds of the videos and search some error in code labs on the web. But in the end this course showed me in great detail the process of PCA and I also learned a bit of linear algebra alongside it. Considering problems with this course, there were some points that got me a little bit dissapointed. I still don't get it why are we using the biased version of variance, sometimes the notation changed a little bit, (which is not a big problem but introduces some inconvience if the material is completely new to the learner), some of the math concepts were not covered in the "linear algebra" course. But the worst problem was a technical one: some parts of the labs that are not necessary for grading but are very important for learning were throwing errors. I hope that in the future versions they will be resolved.

By Marco v Z

•Jul 19, 2020

I was somewhat put off by critical comments about the third course in this series, but have to disagree with the reviewers. Yes, it is tougher and, yes, the instructor doesn't have the "schwung" of the other two instructors, but that doesn't affect the quality of this course. His walkthrough of the derivation of PCA is thorough and systematic, and builds on material that has been presented in the earlier lectures.

In fact, looking back on the entire specialisation, I would retrospectively grade the first two courses a notch lower (even if they're excellent), simply because they "sailed through" a bit too easily. The exercises in those courses required little thinking apart from recalling what was said in the lectures. In this course, exercises tended to go beyond or ahead of the material presented in the lectures. Solving them required active thinking, reading, and problem solving, which in the end brings a more thorough understanding.

By Ivy W

•Apr 3, 2021

I find this course a good use of my time, I have learnt a number of new things from it and it was quite a fun playing around with the programming assignments. What I especially like are the detailed math explanations/derivations and the reading materials/lecture notes provided (so that I have texts to refer to, instead of always having to view the videos again).

This course is obviously more challenging than the first two in the specialization (I'd say the first two are too easy as 'math' courses), one needs a good understanding of the first two, esp. linear algebra, to know what's going on here. I'm most satisfied with this course among the three, and it's sad to see so many people giving negative reviews on this and complaining on the depth of the contents.

By Fredrick A

•Feb 20, 2020

The coverage of PCA provided by the instructor was wide and provided me with an intuitive basis for executing the PCA algorithm in the wild. Ultimately, the subject and its various steps were easy to understand. That said, I gained many great insights watching Khan Academy videos especially ones on eigenvalues/eigenvectors. By far the hardest part of the class was implementing and executing the python code. There the devil was in, and sometimes, outside of the details. I cursed the name of the Instructor more than once (a lot more). But, in the end, because of the real life, no safety net experience, I was able to jump right into PCA (and other feature engineering projects) adding value to my team at work on day 1.

By Abdu M

•Jan 20, 2019

Best course out of the series so far. A fine balance between theory and derivations, and practice with the programming assignments. It seems that they have solved their programming assignment issues (the first one still has some problems with the grader I believe). This course does require you to have some prior experience, though, so if you are new to programming or linear algebra (not just the concepts but how to apply them) it's bets to take the first two courses with some additional help (maybe Khan academy or even MIT OCW. I will certainly refer to this course in the future, as well as the professor's book on Mathematics for ML.

By Anamitra S

•Sep 4, 2020

Even though one might read quite a few negative reviews about this course, I having completed this course certainly can tell that I learnt the most while doing this course. The course was indeed hard and challenging but the good thing that came out of this course was it gave me the ability to learn to study quite a few topics extensively on my own. The course had the book on "Mathematics for Machine Learning" which acted as a great supplement to this course. Overall, I'd ask anyone who is seriously interested in learning the extensive Math behind Machine learning, to take this course.

- Google Data Analyst
- Google Project Management
- Google UX Design
- Google IT Support
- IBM Data Science
- IBM Data Analyst
- IBM Data Analytics with Excel and R
- IBM Cybersecurity Analyst
- Facebook Social Media Marketing
- IBM Full Stack Cloud Developer
- Salesforce Sales Development Representative
- Salesforce Sales Operations
- Soporte de Tecnologías de la Información de Google
- Certificado profesional de Suporte em TI do Google
- Google IT Automation with Python
- DeepLearning.AI Tensorflow
- Popular Cybersecurity Certifications
- Popular SQL Certifications
- Popular IT Certifications
- See all certificates

- Skills for Data Science Teams
- Data Driven Decision Making
- Software Engineering Skills
- Soft Skills for Engineering Teams
- Management Skills
- Marketing Skills
- Skills for Sales Teams
- Product Manager Skills
- Skills for Finance
- Android Development Projects
- TensorFlow and Keras Projects
- Python for Everybody
- Deep Learning
- Excel Skills for Business
- Business Foundations
- Machine Learning
- AWS Fundamentals
- Data Engineering Foundations
- Data Analyst Skills
- Skills for UX Designers

- MasterTrack® Certificates
- Professional Certificates
- University Certificates
- MBA & Business Degrees
- Data Science Degrees
- Computer Science Degrees
- Data Analytics Degrees
- Public Health Degrees
- Social Sciences Degrees
- Management Degrees
- Degrees from Top European Universities
- Master's Degrees
- Bachelor's Degrees
- Degrees with a Performance Pathway
- Bsc Courses
- What is a Bachelor's Degree?
- How Long Does a Master's Degree Take?
- Is an Online MBA Worth It?
- 7 Ways to Pay for Graduate School
- See all degrees