CS 189 is the Machine Learning course at UC Berkeley. I have had the fortune to be a TA for this course for the past three semesters. 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.

### Book

A Comprehensive Guide to Machine Learning

### Topics Covered

- Linear Regression
- Features, Hyperparameters, Validation
- MLE and MAP for Regression
- Bias-Variance Tradeoff
- Multivariate Gaussians
- Kernels, Kernel Ridge Regression
- Total Least Squares
- Principal Component Analysis (PCA)
- Canonical Correlation Analysis (CCA)
- Optimization Methods
- Neural Networks
- Discriminative and Generative Classification
- Logistic Regression
- Gaussian Discriminant Analysis
- Expectation-Maximization (EM) Algorithm, k-means Clustering
- Support Vector Machines (SVM)
- Duality
- Nearest Neighbor Classification
- Sparsity
- Decision Trees and Random Forests
- Boosting
- Convolutional Neural Networks (CNN)

### Useful Resources

- Math4ML: a great review of linear algebra, vector calculus, and probability
- CS231n: Stanford's deep learning course covering MLPs, CNNs, RNNs, GANs, and Deep RL
- Guide on Long Short Term Memory networks (LSTMs)
- Prof. Shewchuk's CS 189 notes from Spring 2017
- Previous CS 189 exams
- Useful ipython notebook on tensorflow basics