Back to Mathematics for Machine Learning: PCA

stars

2,571 ratings

•

639 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 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 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 Christopher R

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

By Weijie D

•Nov 23, 2019

This is a terrific course, but week2 and week4 programming assignments are disappointing. If there is only one thing to improve, that must be step-by-step feedback.

I know it is important to write test cases on our own, while it is of no use if there are so many things to figure out and we cannot know which particular step where we are stuck.

Not to mention typos in the code provided in hw2

By Loc N

•Jan 14, 2020

This course feels like a spin-off from the previous two courses in the series. The materials are repeated and feels conflicting with the foundations set by the previous courses. A lot of the times, the assignment are not difficult in execution, but are unclear in requirements, making the process confusing instead of intellectually fulfilling - even after having solved the assignments.

By Nigel H

•Apr 18, 2018

I want to give this course a higher rating but I was disappointed; the production standards are as high as ever but the assignments are a bit heavy on the Python. If you are inexperienced in coding Python you may be in trouble. This is not the case for the first two courses of this specialisation. If it is the maths that concerns you .. you are in safe hands. very well taught. Thanks

By Rhea G

•Jun 27, 2020

The mathematics were very well explained and I could understand almost all of it by just watching the videos and completing quizzes. However, I think the programming assignments require more experience with using Python and just coding in general, because I had to put in far more effort to figure out what I needed to do, compared to the other two courses in this specialisation.

By Chi W

•May 19, 2018

Really hard to be a fan of this course. The lectures are simply lists of formulas and theorems without few examples. And the quizzes must be made out by a Chinese, as its purpose is not testing how much you have understood the course but how careful you are instead and even if you have a powerful calculator. Hope the stuff can give us more examples and quizzes not so tricky.

By Prashant D

•Feb 16, 2019

The lecturer is good and probably has a very good understanding of the mathematics. However if you are looking for a light and easy course, then this one is not for you. The mathematics is sometimes difficult to follow and although the lecturer patiently explains the derivation of the results, I had to go back and forth a number of times to understand what was happening.

By Francesc B

•Jun 2, 2018

I found hard to follow the mathematical proofs, and without a clear step by step formula sheet the last assignment was very hard. All in all I found the course very useful, although I would have liked more intuitive comprehension rather than deep mathematical comprehension. The previous two courses I think matched the balance. Potentially this was not possible for PCA?

By Omoloro O

•Aug 7, 2019

Compared to the first two courses in this specialisation, this course was not very engaging. Additionally it was often hard to see what the end-goal was and the instructor seemed to be going deep into details without making the practical reasoning behind it clear. Furthermore, a lot of the exercises involved repetitions of tasks that can easily be done by computers.

By Nourman H

•Mar 19, 2021

This course is very different from the other two courses in the specialization. I've learned how to use numpy because of this course. But for me, the math part is not very thoroughly explained, it lacks example, and the instructor doesn't explain the math notations that he use. Good if you have time and a bunch of other resources to learn PCA and numpy.

By Ronny A

•Oct 14, 2018

The content is good. But there were Jupyter Notebook/Server problems. (i) Submit button on notebooks did not work. Posted about this and staff did not respond or help. Then I found a workaround and shared with others. (ii) The graded assignments could be run ok, but the optional ones could not run at all owing to server timeout/bandwidth problems.

By Dyachkov D

•May 4, 2020

Very bad course. The content of any video don't correspond to tasks, assignments. Questions are formulated badly, I could not understand anything. Estimated time is wrong, it takes much longer to understand at least something. Programming assignments are crazy.Worst course in this specialization. No offence to teacher, but this tasks are

By Lucas O S

•Nov 7, 2019

Classers are good. However, the exercise platform is full of bugs. Notebook keeps disconnecting, making it unable to save the latest changes. The automatic grader requires a very specific implementation in the last notebook, which is not mentioned anywhere and can you make lose hours debugging an implementation that is otherwise correct.

By Tetteh H

•Jan 22, 2021

I found this very challenging as there are fewer explanation of concepts. there was a huge difference between the lecture's exercise and the practice exercise or the quizzes, the lecturer's exercises were easy with no difficulty but the quizzes. If you want to take this course, be self-prepared to bring out the best in you.

- Finding Purpose & Meaning in Life
- Understanding Medical Research
- Japanese for Beginners
- Introduction to Cloud Computing
- Foundations of Mindfulness
- Fundamentals of Finance
- Machine Learning
- Machine Learning Using Sas Viya
- The Science of Well Being
- Covid-19 Contact Tracing
- AI for Everyone
- Financial Markets
- Introduction to Psychology
- Getting Started with AWS
- International Marketing
- C++
- Predictive Analytics & Data Mining
- UCSD Learning How to Learn
- Michigan Programming for Everybody
- JHU R Programming
- Google CBRS CPI Training

- Natural Language Processing (NLP)
- AI for Medicine
- Good with Words: Writing & Editing
- Infections Disease Modeling
- The Pronounciation of American English
- Software Testing Automation
- Deep Learning
- Python for Everybody
- Data Science
- Business Foundations
- Excel Skills for Business
- Data Science with Python
- Finance for Everyone
- Communication Skills for Engineers
- Sales Training
- Career Brand Management
- Wharton Business Analytics
- Penn Positive Psychology
- Washington Machine Learning
- CalArts Graphic Design

- Professional Certificates
- MasterTrack Certificates
- Google IT Support
- IBM Data Science
- Google Cloud Data Engineering
- IBM Applied AI
- Google Cloud Architecture
- IBM Cybersecurity Analyst
- Google IT Automation with Python
- IBM z/OS Mainframe Practitioner
- UCI Applied Project Management
- Instructional Design Certificate
- Construction Engineering and Management Certificate
- Big Data Certificate
- Machine Learning for Analytics Certificate
- Innovation Management & Entrepreneurship Certificate
- Sustainabaility and Development Certificate
- Social Work Certificate
- AI and Machine Learning Certificate

- Computer Science Degrees
- Business Degrees
- Public Health Degrees
- Data Science Degrees
- Bachelor's Degrees
- Bachelor of Computer Science
- MS Electrical Engineering
- Bachelor Completion Degree
- MS Management
- MS Computer Science
- MPH
- Accounting Master's Degree
- MCIT
- MBA Online
- Master of Applied Data Science
- Global MBA
- Master's of Innovation & Entrepreneurship
- MCS Data Science
- Master's in Computer Science
- Master's in Public Health