Back to Mathematics for Machine Learning: PCA

4.0

stars

1,313 ratings

•

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

Jul 17, 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.

May 01, 2018

This course was definitely a bit more complex, not so much in assignments but in the core concepts handled, than the others in the specialisation. Overall, it was fun to do this course!

Filter by:

By Samresh

•Aug 10, 2019

Nice Course.

By David N

•Jul 24, 2019

Great course

By Mohamed H

•Aug 10, 2019

fantastic

By Karthik

•May 03, 2018

RRhis cl

By Akash G

•Mar 20, 2019

awesome

By Bálint - H F

•Mar 20, 2019

Great !

By HARSH K D

•Jun 28, 2018

good

By Vassiliy T

•Jul 10, 2018

it is good, challenging course. i've learned a lot, but feel that i came away with quite patchy knowledge. This course is a big step up in complexity and delivery form the previous two courses. perhaps my expectations were not right to start with - one cannot learn this level of complexity so quickly. Admittedly there are many gaps between the lectures and course materials and what is asked in programming assignments. i ended up reading a lot online to fill in the gaps (i've learned a lot of python during the course, which is great!).nevertheless, after this course i feel equipped to continue with machine learning.

By Nikolay B

•Aug 03, 2019

Instructor gives the very dry but useful essence of the "philosophical" concepts of dot and generalized inner product, etc., - personally, liked that. Unfortunately, the offered problems are so far away from the delivered videos but the web search helps on getting the hints. This course makes you think - I learned a lot just by asking myself "what do they mean under this statement?", what they want in this task? Though I will appreciate if providers elaborate the material further and so instead of googling we spend our time watching - a single point access.

By Antonio C P

•Jan 24, 2020

It was a real tour de force on the mathematics, and I had some hard time following the ideas of the instructor many times. However, the topic was completely covered in a very systematic way, which is excellent in my opinion. My only suggestion is to focus more on what really matters: do we really have to spend such a long time discussing about different metrics for an inner product if in the end we only use the euclidean metric?

By Barnaby D

•Jan 03, 2020

Would give this course 5 stars if it was properly described so that expectation could match reality:

Give yourself plenty of time for this course - it will take quite a bit longer than described.

Make sure you are comfortable with Python and NumPy before you start (particularly the linear algebra functions).

It is very different (much less hand-holding) than the other courses in the specialization.

By Nelson F A

•Apr 25, 2019

This course brings together many of the concepts from the first two courses of the specialization. If you worked through them already, then this course is a must. There are some issues with the programming assignments and the lectures could do with some more practical examples. Be sure to check the discussions forums for help. For me they were essential to passing the course.

By Evgeny ( C

•Jul 25, 2018

It was a harder course where I spent double the time I have initially anticipated.

It is much harder than the two predecessor courses in specialization, and amount of direction when it comes to doing exercises is significantly smaller. More Python knowledge is required.

That said, I feel like I have finally understood the PCA and math behind it, which made it all worth it

By Mark S

•Jul 07, 2018

Loved the course, although I wish there was more ramp up to some of the complex scenarios (or anything simple but new). Very helpful forums/community. Requires a fair amount of external reading/referencing for some of the concepts which seem to be covered only at a high level in the lectures.I would love to see more courses on applied mathematics for machine learning.

By Jerome M

•Jul 26, 2018

The best of the 3 courses. This is a refresh course of course. A solid background in linear algebra is required in order to fully understand everything. I personnaly recommen the MIT course from Gilbert Strang before you try this one. The python exercises are very well designed and I can only be thankful to having shared this knowledge. Thank you Imperial College.

By Timo K

•Apr 10, 2018

Not quite as good as the other two courses of the same specialization. Even though the instructor seems immensely knowledgeable he could work on delivering the material (which is more abstract than before to his credit) in a clearer manner.

The programming assignments are great albeit a bit hard to troubleshoot at times. All in all still a great course.

By Joshua C B A

•Mar 11, 2019

Very good course. I liked every single video and exercise. I feel that the programming assignments were a bit more challenging and sometimes I was not too sure of what I was doing. I am not a professional in handling Python, so I had to surf online finding the commands to be able to build the simplest code possible. Other than that, it was enjoyable.

By Cheng T Y

•Jul 08, 2018

good thing is it's trying to give you a sense of practically how to do it.downside is it's not really bridging to from maths to that practical sense in python (and the online jupyter notebook is terrible).the teaching staff is actually more responsive than the other 2 in the specialization.a bit more sided on python than maths though.

By Phạm N M H

•Jul 12, 2019

This maybe the most frustrating course and most advance compare to 2 other courses, you might confuse about the code in the assignment of this course. So, if you do have basic background about coding with numpy, matrices,etc..., I do recommend this course, if you qualify enough to fix the bugs of what the dev team left.

By Thorben S

•Mar 08, 2019

I would have liked to be introduced to the topic on a higher level first - and then, step by step, an introduction of the math to solve specific problems in the progress. That would be a perfect approach, especially for data scientists who just want to understand the underlying math for such a widely used technique.

By Shariq A

•Oct 20, 2019

Thank you professor for providing such a valuable course.

Just I wanted to say one thing without hurting anyone, the week 4 on PCA is not very clear. The derivation are not very correlated .A humble request isthat to elaborate the derivation which would further enhance the learning

By Jonathan F

•Mar 17, 2019

This course is way harder than the first two. The maths itself is more difficult. The Python parts are a lot more challenging because they require a good understanding of the way Numpy handles vectors and matrices. But the end result is good and it is worthwhile!

By Gaetano F

•Oct 10, 2019

I found the course excellent but in the programming assignments is not always clear what should one exactly do. They are also quite confusing, especially the last one on PCA implementation. One wastes so much time trying to figure out the solution.

By Ronald T B

•Jan 21, 2019

it is very challenging course, of course you will complain at first on how lack the programming explanation is given. However, it just like the ingredients the math for machine learning will not be complete without attempting to this one.

By Вернер А И

•Mar 18, 2018

Very tough course because of the programming assignments. Material was sometimes taught in a non-clear and deceiving way, e.g. covariance matrix of a dataset. Nevertheless, the course is good and covers lots of important details.