Chevron Left
Back to Mathematics for Machine Learning: PCA

Learner Reviews & Feedback for Mathematics for Machine Learning: PCA by Imperial College London

4.0
stars
3,045 ratings

About the Course

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....

Top reviews

WS

Jul 6, 2021

Now i feel confident about pursuing machine learning courses in the future as I have learned most of the mathematics which will be helpful in building the base for machine learning, data science.

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.

Filter by:

526 - 550 of 758 Reviews for Mathematics for Machine Learning: PCA

By Mark P

•

Jul 29, 2019

This course had a lot of potential but there were a number of inconsistencies, cut/paste comment bugs, that make it more challenging than it needs to be. The comments in the notebook exercises should be triple-checked with the text above to ensure consistency of variables. Far too often these would be mixed up, or the input/output descriptions would be incorrect. Or the unit test would have different dimensions. Lectures often left out steps - e.g. "because of orthonormal basis, we can simplify and remove a bunch of terms" - how exactly? A extra few seconds of explanations would allow students to follow more closely. Notation in lectures is sloppy - sometimes terms would be missing and then the video would quietly cut to a correction. "j's" and "i's" indices were interchanged frequently making the derivations how to follow. Also, this isn't a course on unit testing - some more tests should be included to help students debug individual functions rather than relying on the final algorithm (e.g. PCA to work). It should be explained why the "1/N" term for XX^T is not necessary even though it's in the lectures. On the plus side, the added written notes were welcome and fairly well done.

By Quek J H

•

Oct 29, 2022

This course is interesting and taught me basics of PCA. Nonetheless, the last assignment needs revision by the Instructors of this course. There is even an error in one of the assertion tests! And some cells cannot be executed because of some Python syntax or traceback errors. Although these cells are not run by the Autograder, you nontheless cannot see the complete output the notebook is trying to show you. Lastly, in the error messages printe by the Autograder, I cannot seem to find which function is giving me the error! In a previous course by another University with similar programming assignment, the Autograder will point to the erroneous function and shout where went wrong.

I can expect students who have little Python programming to struggle greatly with this course - especially the last assignment. However I believe once the errors are fixed in the notebook, students may have a better experience completing it. I have completed many Coursera courses and I studied Statistics - even I got confused by the last assignment! I believe many students share this sentiment as well.

By Keith C

•

Aug 8, 2021

This course was very different from the other two courses in the Mathematics Specialisation: Linear Algebra and Multivariate Calculus. The tutor approached PCA from a more algebraic or mathematic approach, rather than a more intuitive and visual approach. Most concepts covered in Week 2 and 3 were already covered in the earlier chapters, the tutor introduced new mathematical notations that only served to confuse me... It was really tough trying to understand some of the mathematical symbols that he was just using freely during the explanations. In the last chapter, he spent a long time using proofs to explain that the PCA is an eigenvector and eigenvalue problem. I struggled so much. But, the beautiful thing about PCA is that it brings together bits of Linear Algebra, Multivariate Calculus, and Statistics. PCA wraps up this specialisation nicely. All the best for those who are deciding to take this to complete the specialisation!

By Yuchi C

•

Feb 23, 2020

The lectures (especially the last module) are fast-paced and intense, they're informative and very interesting to do. To complete and fully understand the course contents, heavy self-research is apparently required for students with no to no foundation.

I do not believe that the programming assignments match well with the lectures, they're more about programming than testing knowledge. Compared to the assignments in the first two courses from the same specialisation, the assignments in this course are very difficult for students with little to no coding experience. I highly advise explanation and solutions to the assignments to be published after completion (if possible) so that students get to know where they went wrong.

Overall, I enjoyed the course despite having spent too much time on the programming assignments, trying to spot my mistakes without any direction and dealing with the unstable programming environment.

By Leandro C F

•

Apr 1, 2021

In many reviews of this course it was said that, unlike the others in the specialization, it is much more difficult. And this is true.

The first course was very intuitive, which ended up generating positive expectations in the others. Unfortunately this course was not at all intuitive. It was very focus on the math and in many cases the professor does not explain the meaning of the calculations. For example, dealing with inner product, when will we use any form other than the dot product? These other alternatives has a physical meaning?

The exercises at the end of the topics are just about math and are not based on any real application, which is frustrating.

The last programming exercise is tricky because it doesn't work if we calculate the covariance matrix as taught in the videos. It only works if the calculate it using np.cov().

Despite this, the course is interesting and gives you some useful insights.

By Philippe R

•

May 16, 2018

Very mixed feelings about this course. First three weeks are OK, but going from week 3 to week 4 is like a HUGE step in difficulty if you really want to follow it all. Which is a pity because week 4 is the whole purpose for the course!

I learned "some" about the subject, but not to the level that I can say I understand it fully.

The assignments are OK, but the instructions are not always all that clear, leaving you at times wondering what is expected from you. And not that it is specific to this course, but the grader feedback is not all that helpful. If that is the only information you rely on to figure out where you may have gone wrong in a programming assignment, fixing your mistakes is likely to take quite some time.

All in all, an "OK" course, but not one that I would take again. I will most likely resort to other sources to get a better understanding of the subject.

By P G

•

Apr 23, 2018

This course is overall good in terms of the accuracy and obvious deep knowledge of the tutor. However, after the first two modules of this course I expected a completely different approach with way more conceptual thinking than writing proofs and long derivations which can be found on Wikipedia and other websites. It seems to me that there is a clear mismatch between the styles of the first 2 modules and the 3rd course. I'm giving it only three stars because this is not what I expected, I signed up for this track to gain additional conceptual overview of how maths in many machine learning applications works on high level. On the other side though, the assignments and quizzes were harder in this course which is a big plus.

By Keshav B

•

Aug 22, 2020

This is tough for me. On one hand I appreciate the academic nature of how this was presented. There were few frills and the instructor is focused purely on the maths. In that space it gets a 5/5. My issue is the course requires a _lot_ of dedication and a _lot_ of self study. More so than the previous courses. More examples and a clearer explanations would have helped much more. Additionally, the course states experience with numpy or python is unnecessary, but you are left to figure out the odd tricks that numpy offer that aren't inherently obvious.

How it can be improved: Clearer examples, better assignment explanation, and more visual feedback to help us understand if we did something correctly.

By Diep N N

•

Jul 14, 2020

The instructor had a broad knowledge pool but I think his explanation sometimes is really vague and hard to understand. It took me a lot of time to comprehend the content and to be honest, I was quite disappointed since I needed to read many other resources to fully understand. Comparing to the other 2 courses in the specialization, I don't highly recommend this course due to the fact that the compression of the information was not sufficient and inefficient. Plus, the coding assignment is harder with a few hints or explanations and will be more suitable for Python-experienced learners to get the structures of the code. Otherwise, as a beginner in the field, I found it hard.

By Giann D

•

Apr 7, 2021

While I personally enjoyed the course, I think the huge difference in handling between the Linear Algebra and Multivariate Calculus topics was too much. Even Week 1 of this course took much effort to figure out and things just kept getting more difficult with Week 4 being a huge stumbling block. I think the problem lies in the professor's pedagogy where he puts so much emphasis on the derivation and often skips on some calculations which are not intuitive for all. I personally liked the quizzes where the questions sometimes require some level of thinking which was not directly mentioned in the session, however, I see that this was not well-received by most.

By Michael P G

•

May 21, 2020

The mathematical skills needed to take this class exceed what was covered in the previous two classes of this specialization. The instructor provided reading materials that were just wikipedia pages, not designed to teach a newcomer.

The programming exercises were poorly designed. In some cases it was not at all clear what one is supposed to implement, what the shape of the input numpy arrays are, etc. In one case, the automated graded system provides inputs that are unlike the provided example inputs, so one has no idea what to be coding for.

I took all three courses in this specialization: the first two got 5 stars, this one gets only 3.

By Trevor F K

•

Jan 3, 2021

This course didn't really promote understanding. The lectures were a lot of derivations with little elaboration. I still learned the things, but had to spend a lot of time doing side research to understand the lectures. And I didn't appreciate that many of the readings were wikipedia pages.

The lab assignments were confusing. Not hard, but confusing. As in "what is being asked here?" and the automated feedback was not at all helpful. It is possible to pass all the tests in the lab but still not get 100%. Very frustrating and disappointing, especially since the first 2 courses of the specialization were so good

By Sanjay K A

•

Jun 23, 2021

The average rating of this course, according to my calculation, is 3.47. (Not sure why it shows 4 stars still as of June 2021.) The delivery is sloppy, the quizzes and coding assignments do not always test the most important concepts, and yes, this is much harder than the other two classes. However, if you stick through it, you'll probably find that you've jumped up a level in your understanding of linear algebra, calculus, and other math concepts. You may need to be prepared to take a day or two off to finish the last week and lab because you underestimated the amount of time it would take to finish it!

By Ben H

•

Aug 20, 2019

This course had a lot of potential, but unfortunately the pacing, structure, and teaching was not up to the standard of the other two courses in the specialisation. The teacher is clearly very knowledgable about his subject, and seems like a really nice person, but delivers the material in a very direct, formal mathematical style. This makes it much more difficult to gain intuitive insight into the subject matter.

Given the level of the past two courses, this felt like way too big a leap. Don't get me wrong — this course is still worthwhile, but could use some refining.

By Chris

•

Apr 13, 2020

The first two courses in this series were amazing and provided a very intuitive understanding of the mathematics. I felt like I had no idea what we i was actually trying to do this entire course and basically had to learn it all on my own. This was basically a punch in the face and required much more background knowledge of linear algebra/python than the previous classes provided. If you are going into this third course of MML I recommend you do some outside study beforehand to get up to speed or else you might be spinning your wheels and get frustrated.

By Dan M

•

Jun 4, 2020

Pros:

There is a lot of interesting math to be learned, and some of the Jupyter notebooks provide cool examples of how you might use Numpy and Scipy to learn more about data sets and algorithms through various kinds of visualizations.

Cons:

The lectures are dense with lots of complicated derivations that are moved through quite quickly.

The final programming assignment is a mess. In particular there are cells within the Jupyter notebook that take a VERY long time to execute even if you reduce the number of iterations.

By Helena R

•

Feb 15, 2022

Course material was quite challenging - really challenging. Almost gave up. Obvious gaps in the lesson. However, the videos by KHAN were a solver - very clear, very helpful in expounding the concepts for the most part. Find that for the most part, because students themselves are struggling, questions might not be responded. Would wish that a STAFFER would review the forum at least ONCE A WEEK to assist the struggling students. Overall, I developed PATIENCE. THE STRUGGLE WAS REAL - with most of the material.

By W T

•

May 5, 2023

The instructor is very knowledgable about the subject. But I feel not enough details are covered in the class to reduce to struggling during the quiz and especially the labs. I struggle with module4 lab for hours and until I got the pca() function pass the checker, I am not sure why I have to double transpose the projection matrix to make the projection to the principle subspace correct. I feel the course needs to be reorgainized to smooth out the bumps for the students especially in module3 and 4.

By Vishvapalsinhji

•

Feb 8, 2021

I am doing Mathematics for Machine Learning specialization. I found this course hard to understand. I know some of you would say that it is designed for an intermediate learner. But what I think is, there is a lack of interaction from tutor while presenting concepts. Maybe it sounds rude opinion, but compares to the first two part of the specialization third one seems less interested. Other than that I liked the quiz and assignment which makes you think about the concepts in detail.

By Nont N

•

Sep 25, 2019

I am a bit disappointed by this course. The professor didn't do much to help learner understand what's the meaning of the math we are looking at. Much of the quiz is just math grinding. The programming assignment require a lot of my effort in programming, but not much on math.

I'm not saying that this course is very bad, but Compare to the previous 2 course in the Math for ML specialization, provided by the same university, this one is obviously inferior.

By Vagif A

•

Feb 9, 2021

The first and last week's assignments were really complicated. Overall, almost the same topics as in the first course of the specialization, but with a lack of good explanation (in linear algebra course the same staff explained but on easy language). Better just take the first and second course of specialization and watch only the PCA part of this course. 3 stars only because of the PCA part, which also could be explained better, but still okay.

By Lisa F

•

Jul 6, 2020

This course was much tougher to follow than the previous two courses in the specialisation. Important sections are simply explained via a quick PDF, and the final week felt very rushed. I mostly skipped the video lectures for the final week entirely and self studied the content from other resources.

There were also some technical issues with the final assignment that seem to have been problematic for at least a month for other users.

By Guerville J

•

Apr 15, 2020

The topic has been presented very clearly by Marc. It just feels sometimes a bit dull compared to the other two courses in the specialization as David and Samuel were quite more entertaining as they were both bringing their enthusiasm and energy. Also some of the assignments were far from intuitive and offered little help to check intermediate steps in programming. I thought they were sometimes unnecessarily too difficult.

By Bibek J

•

Sep 16, 2023

As compared to previous courses this course is tough but the instructor tried his best to deliver this course. Due to technical error I found it really frustrating at times and there is lack of examples and the study material wasn't enough and I found myself going through youtube many times through out this course. The discussion form is really helpful with out which I wouldn't have been able to complete this course

By Rene R

•

Jul 18, 2020

Few examples in lectures. Topics introduced with no apparent relevance. Topics repeated from prior courses in specialization indicated as pre-requisites for this course. Coding assignments poorly organized. Many problems submitting coding assignments. Over all frustrating experience. Many comments in forums reflect this and after 2 years, no apparent changes have been made. Disappointing.