holehouse.org Blog Machine learning notes

Stanford Machine Learning

The following notes represent a complete, stand alone interpretation of Stanford's machine learning course presented by Professor Andrew Ng and originally posted on the ml-class.org website during the fall 2011 semester. The topics covered are shown below, although for a more detailed summary see lecture 19. The code examples throughout use Python with NumPy rather than the programming environment the original course taught.

All diagrams are my own or are directly taken from the lectures, full credit to Professor Ng for a truly exceptional lecture course.

What are these notes?

Originally written as a way for me personally to help solidify and document the concepts, these notes have grown into a reasonably complete block of reference material spanning the course in its entirety in just over 40,000 words and a lot of diagrams! The target audience was originally me, but more broadly, can be someone familiar with programming although no assumption regarding statistics, calculus or linear algebra is made. We go from the very introduction of machine learning to neural networks, recommender systems and even pipeline design. The one thing I will say is that a lot of the later topics build on those of earlier sections, so it's generally advisable to work through in chronological order.

The notes were written in Evernote and exported to HTML automatically, which left the original pages with a lot of markup that was never meant to be read. This version rewrites that markup by hand-built conversion: the words are unchanged, but the structure underneath them is now clean, semantic HTML.

How can you help!?

If you notice errors or typos, inconsistencies or things that are unclear please tell me and I'll update them. It would be hugely appreciated!
You can find me at alex[AT]holehouse[DOT]org

A changelog can be found here — it lists both the original corrections and everything that changed in this rewrite.

Contents

Each chapter is tagged with where it came from. 2011 course marks the original notes from the Stanford course: the text is unchanged apart from corrections, although the code examples were rewritten in Python and NumPy in 2026. 2026 addition marks chapters written for this edition, covering material that did not exist or was not part of the course in 2011.