CS780 / CS880: Introduction to Machine Learning
When and Where
Tue & Thu, 12:40 pm - 2:00 pm Kingsbury N133
See class overview for more information on textbooks, syllabus, assignments, office hours, and grading.
Assignments
Please use Piazza for questions about assignments.
Assignment | Due Date |
---|---|
Assignment 1 | 2/14/17 at 12:40PM |
Assignment 2 | 2/21/17 at 12:40PM |
Assignment 3 | 3/09/17 at 12:40PM |
Assignment 4 | 4/06/17 at 12:40PM |
Assignment 5 | 4/20/17 at 12:40PM |
Syllabus
Date | Slides | Reading | Notebooks |
---|---|---|---|
1/26 | Statistical learning | ISL 1,2 | (html) (RMD) |
1/31 | Linear regression I | ISL 3.1-2 | (html) (RMD) |
2/02 | No class | ||
2/07 | Linear regression II | ISL 3.3-6 | |
2/09 | No class | ||
2/14 | Logistic regression | ISL 4.1-3 | (html)(RMD) |
2/16 | LDA, QDA, Bayes | ISL 4.4-6 | |
2/21 | Cross-validation | ISL 5 | |
2/23 | Model selection | ISL 6.1-6.2 | |
2/28 | Dimensionality | ISL 6.3-6.4 | |
3/2 | PCA ML/MAP | ISL 10.1-2 | ML PCA |
3/6 | Clustering and EM | ISL 10.3-5 | kmeans |
3/9 | Midterm Review | ISL 1-6, 10 | |
3/21 | ** Midterm ** | ||
3/23 | Linear algebra | LAO 1.1-2,2,3 | |
3/28 | LA in ML | LAR | linear algebra |
3/30 | LA in ML | LAR | linear algebra |
4/04 | SVM | ISL 9 | |
4/06 | Decision trees and boosting | ISL 8 | |
4/11 | Nonlinear methods | ISL 7 | |
4/13 | Recommender systems | ||
4/18 | Bayes nets | MLP 10 | |
4/20 | Reinforcement learning | RL | |
4/25 | Final exam review | ||
4/27 | Project presentations (Graduate) | ||
5/02 | Deep learning and big data | DL | |
5/04 | Project presentations (Undergraduate) |
Project
See the project overview for details on the details of deliverables. The deliverable are due by the end of the day (midnight).
Date | Deliverable | Page Limit |
---|---|---|
2/24 | Project description and data sources | 1 |
3/07 | Evaluation methodology | 1 |
3/23 | Method and literature overview | 2 |
4/06 | Preliminary results | 3 |
4/27 | Final report | 7 |
Exams
See practice questions for questions you should be able to answer to be ready for the midterm and final exams.
Date | Exam |
---|---|
3/21 | Midterm (take home) |
Textbooks
Main reference:
ISL: James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning
More in-depth material:
Related topics:
- LAO: Hefferon, J. Linear Algebra (2017)
- LA: Strang, G. Introduction to Linear Algebra. (2016) Also see: online lectures
- LAR: Introductory Linear Agebra with R
- CO: Boyd, S., & Vandenberghe, L. (2004). Convex Optimization.
- RL: Sutton, R. S., & Barto, A. (2012). Reinforcement learning. 2nd edition (forthcoming?)
- RLA: Szepesvari, C. (2013), Algorithms for Reinforcement Learning
- DL: Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning
- MLP: Murphy, K (2012). Machine Learning, A Probabilistic Perspective.
See class overview for more information on the textbook.
Class Content
The goal of this class is to teach you how to use machine learning to understand data and make predictions in practice. The class will cover the fundamental concepts and algorithms in machine learning and data science as well as a wide variety of practical algorithms. The main topics we will cover are:
- The maximum likelihood principle
- Regression: Linear regression
- Classification: Logistic regression and linear discriminant analysis
- Cross-validation, bootstrap, and over-fitting
- Model selection: Regularization, Lasso
- Nonlinear models: Decision trees, Support vector machines
- Unsupervised: Principal component analysis, k-means
- Advanced topics: Bayes nets and deep learning
The graduate version of the class will cover the same topics in greater depth.
Programming Language
The class will involve hand-on data analysis using machine learning methods. The recommended language for programming assignments is R which is an excellent tool for statistical analysis and machine learning. No prior knowledge of R is needed or expected; the book and lecture will cover a gentle introduction to the language. Experienced students may also choose other alternatives, such as Python or Matlab.
Pre-requisites
Basic programming skills (scripting languages like Python are OK) and some familiarity with statistics and calculus. If in doubt, please email me.