Back to Mathematics for Machine Learning: PCA

stars

2,549 ratings

•

632 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 connie

•Mar 21, 2020

I think content of first 2 weeks are disconnect with 3rd and 4th weeks

By Alexander

•Nov 6, 2019

Math for the sake of math. Too big jumps in calculations, too complex.

By k v k

•Nov 30, 2018

its a good course to learn mathematics essential for machine learning

By Rafael C

•Sep 24, 2019

The Classes didn't give the knowledge to solve the assignments.

By Shuyu Z

•Oct 18, 2019

The videos and instructions for the assignment are not clear.

By gaurav k

•Jul 3, 2019

More examples and visualization should be there to explain.

By Malcolm M

•Mar 5, 2019

Far more challenging than the first two courses.

By A. S M S H

•Jun 2, 2020

Theories should be explained more detailed.

By Reinaldo L N

•Feb 26, 2020

Last assignment was hell on Earth...

By Nicolás G

•Apr 12, 2021

Very bad course, poorly explained

By kirellos h

•Apr 8, 2020

This course needs more examples.

By Sean W

•Nov 25, 2019

Notebook extremely buggy

By Felipe M

•Jul 26, 2020

It is a shame that this course isn't taught in a favorable way, as the content it has is very interesting and valuable. I found that the instructor lacked the enthusiasm that David Dye and Sam Cooper had in the previous courses, which obviously doesn't change the content of the course but definitely makes the learning experience worse. The lectures were also quite fast-paced and not very clear, I feel that this course should have been longer as when it was time to do the graded assignments, I had very little intuitive understanding of the concepts learned. The programming assignments were also the worse of the three courses; this is a combination of what I believe to be an issue with Coursera's online programming environment and the assignments themselves. The assignments were poorly explained and usually involved skills that were not even presented in lectures, which meant that unfortunately I had to rely heavily on books from the internet and assistance from fellow peers in the forums. Apart from requiring skills that were not taught, the Jupyter Notebook was unorganized in the sense that I felt unclear about where I should edit, where I should not. The programming assignments with the previous courses in this specialization were done in a much better way, guiding us to the solution while still demanding creativity and insight into the concepts, while the ones in PCA were messy. This is really sad as this is the most programming-heavy course. Overall I am quite disappointed with this course, it is a frustrating way to end this specialization with the two amazing previous courses.

By Pedro L

•Apr 25, 2020

Having taken the other two courses for this specialization, a certain standard was defined and expected. The other two courses had solid basis explained by the professors, and the assignments reflected well from the lessons showing a lineal progression to adequate difficulty.

In this course unfortunately it is not the case, the maths and basis are explained well enough, with extra lectures and side investigations needed from the user side in order to fully understand each lecture, and then the assignments. Don't expect immediate response form mentors nor teaching staff, and neither a well thought difficulty progression. The assignments done by hand and examples taught during lectures DO NOT reflect the difficulty level on programming assignments because it is expected you already have previous experience with python (which is rather frustrating as I took this course expecting to be entry level only on this language).

TL;DR: Take the first two courses if you wanna strengthen your basis, but the last course is not recommended

By Jim F

•Apr 12, 2021

This course on PCA did not live up to my expectation from the previous two courses in the specialization. The first two courses were clearly designed to fit together, but this third course felt like it hadn't been designed to fit into this specialization. It covered material that had already been covered, and assumed other knowledge that hadn't been covered.

The teaching style was also very different: the teacher spent almost no time developing intuition with graphs or motivation with real-world problems, and instead nearly all the time was devoted to algebraic derivations. (Weirdly, the end of the final week did cover some of this; it should instead have been at the start!)

A full 25% of the course was on the abstract notion of "inner products", which was not even necessary to understand PCA. We just used the dot product.

IMO, PCA should not be its own course; it could be condensed to one or two weeks in the other courses. A much more useful third course for ML would be a Probability/Statistics primer.

By Abhishek J

•Jul 30, 2020

Poor programming assignments, lots of error. Also, the teaching staff has to pull their socks up. No intuition behind anything, only throwing formulas one after the other. I must say if this is the stuff Coursera has to offer then it's not far that other online platforms will take over. No offense but I sincerely request the instructor to improve his teaching skills, as this kind will take him nowhere. It might sound harsh but it's the reality. Nevertheless, I learned something new which will hopefully help in my future, and for that, I will like to thanks the whole teaching staff. I hope you all continue this great initiative, provide quality content, and make learning as easy and affordable as possible. I Will be looking forward to more courses from your side but this time, please come up with new and exciting ways to explain mathematical stuff. Once again Kudos to the teachers and all the students who completed the course!!

By Tuan Q N

•Feb 16, 2021

This was a very disappointing module compared to the first two modules; I've taken many online courses over the years but this is by far the worst one. The third instructor who leads this module was boring and would work through his examples without explaining how he gets from one step to another. Programming assignments came with very few instructions and would be very difficult for someone with little Python experience (luckily the solutions are out there). The forums are mostly full of months-old posts from people asking for help and getting absolutely no responses from the teachers or moderators. The most active thread was actually just a bunch of people complaining about this course and the instructor. I started a thread because I wanted to know how to solve a problem (I wasn't asking for the answer!) and it was deleted with no explanation.

By Erik P

•Feb 12, 2020

The first two courses in this series are excellent. However, this third course is taught by a new teacher and this introduces a remarkable drop in quality.

There are of cause different styles of teaching. However, as a minimum a teacher should strive towards conveing to students the importance of the subject at hand and the intuition behind it. However, this teacher settles for monotonously writing out formulas and definitions that can simply be read in the course formula PDF. Thus, watching the videos becomes a waste of time. In turn, this makes it harder to complete quizzes and assignments since one first has to go searching the internet for web pages that actually explain rather than simply state formulas that one needs to combine and apply in order to solve the assignments.

By Jonathan M

•Jan 23, 2021

I struggle to understand the thought process behind the course structure in this specialization. The first two courses are very surface level when it comes to the mathematics, which I do not think is a bad thing. However, it seems this last course tries to jam fundamental, and challenging, mathematics into the simplified format of the other two courses. From the comments section, I do not believe I am the only one who thinks this way. Wouldn't it be better to just extend the duration of this last course and make it a challenging, but thorough, introduction to the topics? The former without the latter is just painful.

By Nicholas T

•Aug 31, 2020

I found this course to be rather lacking in what it lists as pre-requisites. I found the need to take a course on numpy while I took this course. Also, I'm just confused as to why this is part 3 of the specialization. Why not do a section on probability/stats to prepare for machine learning? I like all the professors, but there's only so much you're going to learn. I found I needed to constantly use the resources, and they are good, but the resources were better than the assignments and instruction, so... I would suggest saving your money.

By noel s

•Jul 22, 2020

The intermediate level of this course is accurate, but mainly because of the course's structure. In my opinion this course should not be a part of the specialization as the PCA is already covered in the first two courses. Although this third class is more (and almost only) about the maths I found it confusing in relation with the previous course and their explanation of PCA. Programming assignments are difficult and help the student to think by itself, however they are buggy which may take away the struggling student motivation.

By Brian G

•Mar 12, 2021

The weakest of the series of 3 in the Mathematics for Machine Learning Specialization. The course videos did not explain the material well enough and referenced significant amount of external reading sources. The videos are full of jargons without taking the time to properly explain them or help the learner develop intuitions. I walked away with a very muddled understanding of PCA even though I was able to complete all quiz and exercises. I recommend a revision to this course so this important topic can be taught better.

By Sagar L

•Mar 21, 2020

Although the topics and lecturer's delivery were nice, but as compared to the two previous courses of the specialization, this one doesn't fare well. The content in the video lessons and that in the notebook were not really planned well in terms of scope. A participant who isn't already familiar with these concepts, would struggle a lot. Only if the reading material, video content and notebook assignments were designed keeping that in mind, it would have been better. Apart from that it was a good course.

By Vitali Z

•Aug 22, 2020

Slow notebooks, bad explanations, unclear what to do in the notebooks.

I don't know why i spent so much time to finish the course- maybe because of my perfectionism didn't let me stop trying.

I guess the matter itself is good, but:

1. you probably got to re-record all the videos a little more bit by bit with more examples

2. fix the slow notebooks

3. more assertions for each function instead of for the whole thing in the notebooks

4. more detailed explanations what we are even doing there

By Tobias T

•Jul 14, 2019

If you like traditional lectures, which you go into a math class then feel puzzled, then go for it. Otherwise, the contents of this course are simply going through the mathematics equations and definitions, which can easily be found in textbooks. Ironically, the previous two courses in this specialization used lots of graphics and animations to help you understand the maths (either in terms of equation-wise or intuitively), this course completely lacks this element.

- 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