CS 189/289A is the Machine Learning course at UC Berkeley. I have had the fortune to be a TA for this course last semester, and I am currently a TA for for the second time. In this guide I have created course notes along with my good friend Garrett Thomas in order to share our knowledge with students and the general public, and hopefully draw the interest of students from other universities to Berkeley's Machine Learning curriculum.


  • Note 1: Levels of Abstraction, Ordinary Least Squares (OLS) Regression, Vector Calculus
  • Note 2: Polynomial Features, Hyperparameters, Overfitting, Ridge Regression
  • Note 3: Regression Hyperparameters, Error, Validation
  • Note 4: Gaussians, Maximum Likelihood Estimation (MLE), Maximum a Posteriori Estimation (MAP)
  • Note 5: Bias-Variance Tradeoff
  • Note 6: Weighted Least Squares, Multivariate Gaussians
  • Note 7: MAP with Colored Noise
  • Note 8: Total Least Squares
  • Note 9: Principal Component Analysis (PCA)
  • Note 10: Canonical Correlation Analysis (CCA)
  • Note 11: Nonlinear Least Squares
  • Note 12: Neural Nets: Introduction
  • Note 13: Backpropagation
  • Note 14: QDA/LDA, More Multivariate Gaussians
  • Note 15: Discriminative Models, Logistic Regression
  • Note 16: Training Logistic Regression, Multiclass Logistic Regression
  • Note 17: Support Vector Machines (SVM)
  • Note 18: Dual SVM Formulation
  • Note 19: Kernel Trick
  • Note 20: Nearest Neighbor Classification
  • Note 21: Sparsity, LASSO
  • Note 22: Kernel Trick
  • Note 23: Nearest Neighbor Classification
  • Note 24: Sparsity, LASSO
  • Note 25: Convolutional Neural Networks

Useful Resources

  • Guide on Long Short Term Memory networks (LSTMs)

Resources from Past Semesters

  • Prof. Shewchuk's notes from Spring 2017
  • Previous exams