- All DegreesExplore Bachelorâ€™s & Masterâ€™s degrees
- Computer Science & EngineeringExplore Computer Science & Engineering degrees
- BusinessExplore MBA & Business degrees
- Bachelorâ€™s DegreesExplore masterâ€™s degrees from leading universities
- MasterTrackâ„¢Earn credit towards a Masterâ€™s degree
- University CertificatesAdvance your career with graduate-level learning

Back to Mathematics for Machine Learning: PCA

stars

2,920 ratings

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

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:

By Diego M E

â€¢Apr 2, 2021

This course by no means retains the quality of its two predecessors. The difficulty of the programming assignments simply does not match that of what you watch in the videos and have to face in the practice quizzes. You need to have at the very least an intermediate understanding of both python and numpy. It should be stated somewhere that, if you really want to try and complete the assignments with a passing grade you'd need to invest **a lot** of your time. The course does not even remotely give you the tools necessary to complete these assignments; you'll need to research on your own and consult forums, videos, manuals, etc. My advice would be to learn python to an intermediate level first, then really practice with numpy, and just after that take this course. Otherwise you'll probably get very frustrated and quit.

By Alistair K

â€¢May 16, 2020

The instructor is extremely dry and monosyllabic and does a very poor job of explaining topics, he frequently introduces topics by jumping straight into formulas without bothering to explain the topic or the use of the subject he is supposed to be explaining.

The majority of lectures are no more that the lecturer reading our a formula parrot-fashion onto the screen, he makes no effort to make the subject informative or explain what is going on. In many cases, he doesn't even bother creating a lecture, he simply posts a link to Wikipedia.

Lectures, quizzes and assignments are littered with bugs and omissions.

A negative mark on an otherwise excellent specialisation. This lecturer has no place teaching, he made the whole subject unapproachable.

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 Pavel S

â€¢Dec 12, 2019

The course has two problems:

complete lack of participation of staff in maintaining it. This leads to students giving each other incorrect advice and sharing incorrect code which passes the grader function check ( the grades are assigned automatically). The advice students give each other are frankly so wrong it is shocking.

the teacher focuses on formalised proof rather than concepts. Hence the lectures turn into lecturer applying mathematical transfomations which end in a formal argument without any intuitive understanding of the underlying subject. This course is the worst of the module with linear algebra and multivariate calculus being much better

By Indira P

â€¢Mar 26, 2021

I'm sorry but it is hard to understand. My expectation before starting this course is I'll be able to understand mathematic in an easier and better way but this is too complex to understand. I think you need to simplify this or make the course in a more fun way. Other than that, the course give me so much knowledge and it was so fun to learn all of these even though it require most of my time

By Raghav G

â€¢Jul 13, 2020

The course is very monotonic and boring and it is quite difficult to understand much of what the extremely mathematical terms that the instructor does. I am an M.Sc. Mathematics student and even I could not understand nor enjoy more than half of the course. I would strongly advise against taking this course, however the other two courses from this specialization are good and interesting.

By Deleted A

â€¢Jul 31, 2019

Feedback for the assignments sucks! The discussion forums don't help. I have to submit the last assignment last 6 times until it work, and I still don't know why my previous versions didn't pass. Other than that, the lectures are actually very good, but the only one worth the time is the fourth one, the other three are just the first course (Linear Algebra) all over again.

By Galina F

â€¢Jan 8, 2020

Mathematical concepts are clear, but no explanation how to apply them to python to solve machine learning ussies. But you need this for python assignments.

Scripts checking assignments work uncorrectly such a way that one can submit the same piece of working(!) code and get 0/10 and then submit the same code and get 10/10.

All in all, it's very annoying and disappointing.

By Cy L

â€¢Jun 9, 2018

The course is mathematics for Machine Learning. Yet, they require that you are proficient in python. I understand the mathematics. However, no one will answer my questions on the python we are suppose to code. I passed both of the previous courses. I've taken and passed Statistics with python on edX. I've very disappointed in 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 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 NB

â€¢Jan 18, 2023

One of the best applied mathematics I have attended. This course provides a graduate-level outstanding analysis of linear algebraic data analysis using the next approach:

- Statistical Learning of Datasets

- Linear Algebra of Transformations: Orthogonal Projections, Inner Products in Finite Dimensions

- Analysis of Covariance Matrix

- PCA Algorithm via a constrained minimization problem.

There are also studied some applications:

1. Numpy Programming

2. KNN algorithm

3. Classification, Logistic Regression

4. Encoding and Decoding Information

The course and whole specialisation is suitable for people who have a solid mathematical background because some of theories are provided in a review, given that other mathematics courses have been studied. The main goal is to formulate the PCA algorithm and related topics. This is a master of Linear Algebra in Data Processing.

Thank you Imperial College!

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.

By Laszlo C

â€¢Dec 6, 2019

This is an excellent course first covers statistics, looks back to inner products and projections, thereafter it connects all of that and introduces PCA. The knowledge that you've gathered throughout the first two courses gets applied here. Granted, it's more abstract and challenging than the others, I wouldn't give a worse rating just because of that. You'll need to dive into certain topics on your own and if you strengthen your coding skills for the programming exercises. Nevertheless, it's just as highly rewarding as the first two.

By Mohit

â€¢Dec 28, 2020

This course is too good ,difficult level of this course from other too of this specialization is more.

Having patience and more practice lead to more successful .

If anyone want to learn Machine learning course then after doing this Machine Learning course is simple because most of the thing you have learn through this course

This specialization makes you better and better and you learn many more new and interesting thing related to real world example with practice assignment

Thanks a lot for this to all the mentors

By Douglas W

â€¢May 22, 2020

This was the most challenging of the three classes in the series. I thought the instructor did an excellent job of moving from theory to practice, and in the end I came away with a good understanding of the topic. As a developer, part of my personal learning style is to shadow these types of lectures in code. I did (or attempted) naive implementations on most slides - that definitely helped my comprehension of this challenging material. Be prepared to work hard, occasionally head scratch and you'll do fine.

By Muhammad Y A

â€¢Nov 5, 2020

Big thanks to the teacher, this is the most challenging course among the other courses on this specialization. It took me a full 24 hours to complete the final assignment, PCA Algorithm. But, it's worth it, I really enjoyed this course besides how hard it is lmao. One more, unfortunately, there will not be much discussion on the forums, since there's a few people enroll in this course compared to others and the assignment, especially the last one was very hard, anyway hope you enjoy this course, see ya.

- AWS Cloud A Practitioner's Guide
- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Developing Professional High Fidelity Designs and Prototypes
- Get Google CBRS-CPI Certified
- Introduction to MATLAB Programming
- Learn HTML and CSS for Building Modern Web Pages
- Learn the Basics of Agile with Atlassian JIRA
- Managing IT Infrastructure Services
- Mastering the Fundamentals of IT Support

- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Building a Modern Computer System from the Ground Up
- Getting Started with Google Cloud Fundamentals
- Introduction to Cryptography
- Introduction to Programming and Web Development
- Introduction to UX Design
- Learn HTML and CSS for Building Modern Web Pages
- Mastering the Fundamentals of IT Support
- Utilizing SLOs & SLIs to Measure Site Reliability

- Building an Agile and Value-Driven Product Backlog
- Foundations of Financial Markets & Behavioral Finance
- Getting Started with Construction Project Management
- Getting Started With Google Sheets
- Introduction to AI for Non-Technical People
- Learn the Basics of SEO and Improve Your Website's Rankings
- Mastering Business Writing
- Mastering the Art of Effective Public Speaking
- Social Media Content Creation & Management
- Understanding Financial Statements & Disclosures