This is the course homepage for CPSC 330: Applied Machine Learning at the University of British Columbia. You are looking at the current version (Jan-May 2025).
The syllabus is available here. Please read it carefully to understand all rules and expectations of this course. The content of the syllabus is tested in a quiz, to be completed by Jan 24, 11:59 pm.
- Mathias Lecuyer (Section 201: Tue Thu 9:30 to 10:50, SWNG 222) (Office Hours, Thu's ICCS 317, 2:00-3:00pm)
- Giulia Toti (Section 202: Tue Thu 3:30 to 4:50, Section 203: Tue Thu 5:00 to 6:20, MCML 360) (Office Hours, Tue's ICCS 231, 2:00-3:15pm)
- Andrew Roth (Section 204: Tue Thu 11:00 to 12:20, GEOG 212) (Office Hours, Tue's ICCS 359, 12:30-1:30pm)
- Ancuta (Anca) Barbu ([email protected]), please reach out to Anca for: admin questions, extensions, academic concessions etc. Include a descriptive subject, your name and student number, and course section so that we can keep track of emails.
- Amirali Goodarzvand Chegini
- Frederick Sunstrum
- Kimia Rostin
- Tianyu (Niki) Duan
- Abdelrahman Ahmed
- Maissan Bazazeh
- Gaurav Bhatt
- Patrick Cui
- Neo Ghassemi
- Alison Hardy
- Mishaal Kazmi
- Zefeng Li
- Yifei Li
- Harry Wang
- Allya Wellyanto
- Yan Zeng
- Alain Zhiyanov
- Mahsa Zarei
© 2024 Varada Kolhatkar, Mike Gelbart, Giulia Toti, and Firas Moosvi
Software licensed under the MIT License, non-software content licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License. See the license file for more information.
- Course GitHub page
- Course Jupyter book
- Canvas
- Piazza
- Gradescope For first time access, go through Canvas link
- Course videos YouTube channel
- Syllabus / administrative info
- Other course documents
Usually the homework assignments will be due on Mondays (except next week) and will be released on Tuesdays (the links below will lead to a "page not found" if the assignment has not been published yet).
Important: use the link in the Canvas course to access Gradescope for the first time, so that your accounts are correctly linked. Failing to do so will result in delays in getting your grades and risk of miscalculations.
Assessment | Due date | Where to find? | Where to submit? |
---|---|---|---|
hw1 | Jan 14, 11:59 pm | GitHub repo | Gradescope |
hw2 | Jan 20, 11:59 pm | [GitHub repo] | Gradescope |
Syllabus quiz | Jan 24, 11:59 pm | PrairieLearn | PrairieLearn |
hw3 | Feb 03, 11:59 pm | [GitHub repo] | Gradescope |
hw4 | Feb 10, 11:59 pm | [GitHub repo] | Gradescope |
Midterm 1 | Feb 12-14 | PrairieLearn (CBTF, in person) | PrairieLearn (CBTF, in person) |
hw5 | Mar 10, 11:59 pm | [GitHub repo] | Gradescope |
hw6 | Mar 17, 11:59 pm | [GitHub repo] | Gradescope |
Midterm 2 | Mar 19-21 | PrairieLearn (CBTF, in person) | PrairieLearn (CBTF, in person) |
hw7 | Mar 24, 11:59 pm | [GitHub repo] | Gradescope |
hw8 | Mar 31, 11:59 pm | [GitHub repo] | Gradescope |
hw9 | Apr 07, 11:59 pm | [GitHub repo] | Gradescope |
Final exam | TBA | PrairieLearn (CBTF, in person) | PrairieLearn (CBTF, in person) |
Live lectures: The lectures will be in-person.
This course will be run in a semi flipped classroom format. There will be pre-watch videos for many lectures, at least in the first half of the course. All the videos are available on YouTube and are posted in the schedule below. Try to watch the assigned videos before the corresponding lecture. During the lecture, we'll summarize the important points from the videos and focus on demos, iClickers, and Q&A.
We'll be developing lecture notes directly in this repository. So if you check them before the lecture, they might be in a draft form.
Date | Topic | Assigned videos | vs. CPSC 340 |
---|---|---|---|
Jan 7 | Course intro | 📹 Pre-watch: 1.0 | n/a |
Jan 9 | Decision trees | 📹 Pre-watch: 2.1, 2.2, 2.3, 2.4 | less depth |
Jan 14 | ML fundamentals | 📹 Pre-watch: 3.1, 3.2, 3.3, 3.4 | similar |
Jan 16 |
|
📹 Pre-watch: 4.1, 4.2, 4.3, 4.4 | less depth |
Jan 21 | Preprocessing, sklearn pipelines |
📹 Pre-watch: 5.1, 5.2, 5.3, 5.4 | more depth |
Jan 23 | More preprocessing, sklearn ColumnTransformer , text features |
📹 Pre-watch: 6.1, 6.2 | more depth |
Jan 28 | Linear models | 📹 Pre-watch: 7.1, 7.2, 7.3 | less depth |
Jan 30 | Hyperparameter optimization, overfitting the validation set | 📹 Pre-watch: 8.1, 8.2 | different |
Feb 4 | Evaluation metrics for classification | 📹 Reference: 9.2, 9.3,9.4 | more depth |
Feb 6 | Regression metrics | 📹 Pre-watch: 10.1 | more depth on metrics less depth on regression |
Feb 11 | Midterm review | ||
Feb 12-14 | Midterm 1 - no class, no tutorials | ||
Feb 17-21 | Midterm break - no class, no tutorials | ||
Feb 25 | Ensembles | 📹 Pre-watch: 11.1, 11.2 | similar |
Feb 27 | Feature importances, model interpretation | 📹 Pre-watch: 12.1,12.2 | feature importances is new, feature engineering is new |
Mar 4 | Feature engineering and feature selection | None | less depth |
Mar 6 | Clustering | 📹 Pre-watch: 14.1, 14.2, 14.3 | less depth |
Mar 11 | More clustering | 📹 Pre-watch: 15.1, 15.2, 15.3 | less depth |
Mar 13 | Simple recommender systems | less depth | |
Mar 18 | Text data, embeddings, topic modeling | 📹 Pre-watch: 16.1, 16.2 | new |
Mar 19-21 | Midterm 2 - no class, no tutorials | ||
Mar 25 | Neural networks and computer vision | less depth | |
Mar 27 | Time series data | (Optional) Humour: The Problem with Time & Timezones | new |
Apr 1 | Survival analysis | 📹 (Optional but highly recommended)Calling Bullshit 4.1: Right Censoring | new |
Apr 3 | Communication | 📹 (Optional but highly recommended) |
new |
Apr 8 | Ethics | 📹 (Optional but highly recommended) |
new |
Click to expand!
- A Course in Machine Learning (CIML) by Hal Daumé III
- Introduction to Machine Learning with Python: A Guide for Data Scientists by Andreas C. Mueller and Sarah Guido.
- An Introduction to Statistical Learning
- The Elements of Statistical Learning (ESL)
- Data Mining: Practical Machine Learning Tools and Techniques (PMLTT)
- Artificial intelligence: A Modern Approach by Russell, Stuart and Peter Norvig.
- Artificial Intelligence 2E: Foundations of Computational Agents (2023) by David Poole and Alan Mackworth (of UBC!).
- Machine Learning Crash Course
- Machine Learning (Andrew Ng's famous Coursera course)
- Foundations of Machine Learning online course from Bloomberg.
- Machine Learning Exercises In Python, Part 1 (translation of Andrew Ng's course to Python, also relevant for DSCI 561, 572, 563)
- A Visual Introduction to Machine Learning (Part 1)
- A Few Useful Things to Know About Machine Learning (an article by Pedro Domingos)
- Metacademy (sort of like a concept map for machine learning, with suggested resources)
- Machine Learning 101 (slides by Jason Mayes, engineer at Google)
Enjoy your learning journey in CPSC 330: Applied Machine Learning!