Keep an eye on this paragraph at the top of the readme file, I will try to keep it up to date with urgent to-dos and important things.
Grades for HW7 have been posted on Gradescope. Regrade requests can be submitted by April 13, 11:59PM.
Thursday's lesson (our last one!) will be very practical. To fully benefit from it, I recommend you do the following before coming to class:
Other python installations you will need:
pip install Flask
pip install Flask-WTF
pip install joblib
A note on HW8, Q4.3: For this part of the homework, you won't have to write a real blog post, you can use Jupyter and markdown cells, as long as you format text nicely, include figures etc. If you feel confident about your post and want to share it, you could consider https://medium.com/
If you have trouble embedding images in your Jupyter file, please check this Piazza post. And if you still have trouble, you can write your blog post as a Google doc file and add the link to your Jupyter notebook.
The deadline for HW8 has been extended to Monday, April 11, 11:59PM.
I am sure you are very busy these days, but I need to ask you to find 10 minutes of your time and complete the course evaluations on Canvas: https://canvas.ubc.ca/courses/83420/external_tools/4732
The current response rate is very low and if it stays like that I will not have access to the results! Since your input is very valuable, I would hate for that to be the case. This is my first semester teaching this course, and I would very much like to get some input to work with.
Also rest assured that surveys are completely anonymous! The system only tracks who has completed the survey; there is no way to trace responses or comments unless a student self-identifies; additionally, we only receive a summary report and only after all grades are submitted and finalized. There is no risk of repercussions to students for giving honest, critical feedback.
A final note: it may help to read this post from one of our coworkers before filling your survey.
https://www.reddit.com/r/UBC/comments/k18qj7/teaching_evaluations_the_good_the_bad_and_the_ugly/
I hope reading this will help you formulate constructive feedback that we can all benefit from.
As per calendar, the midterm will be on February 17, in DMP 310 during class time (expected start at 12:35, end at 1:50, for a total of 75 minutes). No remote options allowed.
The exam will be closed-book and it will be administered through Canvas.
You are required to bring your own computer or tablet to complete the exam. If you do not think you will have one available on the day of the exam, let your instructor know through Piazza by February 9. If you come to the exam without a computer, or if your computer malfunctions during the exam, you will be offered a paper version of the test. You do not need to bring anything else to the test: scrap paper will be provided and a basic calculator is accessible in Canvas.
You are also required to bring your UBC student card or another piece or photo ID for identification. If we are unable to verify your identity because you do not have a valid ID, your exam will be invalidated and you will be assigned a grade of 0.
Students who require special accommodations must register with CFA and take the exam at their facilities. Remember that CFA requires you to do so at least 1 week prior to the exam, so do this ASAP. If you fail to register with CFA and can not take the exam with them, we will not be able to provide alternative accommodations and you will have to take the exam with the rest of the class.
If you are unable to attend the midterm because of unexpected externa circumstances, let me know using this survey by the end of February 20. Failing to communicate that you have missed the midterm in a timely manner will impact the options that we can provide to make up for it.
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-Apr 2022). Earlier versions can be found at these links:
Instructor: Giulia Toti
- Course GitHub page
- Course Jupyter book
- Course videos YouTube channel
- Canvas link
- Syllabus / administrative info
- Piazza (this is where all announcements will be made). Click here to enroll.
- Other course documents
- Past exams
Usually the homework assignments will be due on Mondays and will be released on Tuesdays.
Assessment | Due date | Where to find? | Where to submit? |
---|---|---|---|
Syllabus quiz | Jan 17, 11:59pm | Canvas | Canvas |
hw1 | Jan 17, 11:59pm | Github repo | Gradescope |
hw2 | Jan 24, 11:59pm | Github repo | Gradescope |
hw3 | Feb 2, 11:59pm | Github repo | Gradescope |
hw4 | Feb 11, 11:59pm | Github repo | Gradescope |
hw5 | Feb 28, 11:59pm | Github repo | Gradescope |
Midterm | Feb 17, during class time | TBD | TBD |
hw6 | Mar 14, 11:59pm | Github repo | Gradescope |
hw7 | Mar 23, 11:59pm | Github repo | Gradescope |
hw8 | TBD, 11:59pm | Github repo | Gradescope |
Final exam | Apr 27, 15:30 pm | ESB 1013 | Canvas |
Lectures will be on Tuesday and Thursday from 12:30pm to 2:00pm.
Online lectures: Lectures will be delivered online until January 24th (at least). Look for the Zoom tab on Canvas to find the link to connect to the lectures. Lectures recordings will also be available on Canvas.
Live lectures: In-person lectures will be in Hugh Dempster Pavilion (DMP) 310.
Lectures:
- Watch the "Pre-watch" videos before each lecture.
- I'll be developing lecture notes in this repository. So if you check them before the lecture, they might be unavailable or in a draft form.
Date | Topic | Assigned videos and datasets | vs. CPSC 340 |
---|---|---|---|
Jan 11 | Course intro | 📹 |
n/a |
Part I: ML fundamentals and preprocessing | |||
Week 1 datasets: |
|||
Jan 13 | Decision trees | 📹 |
less depth |
Jan 18 | ML fundamentals | 📹 |
similar |
Week 2 datasets: |
|||
Jan 20 | $k$-NNs and SVM with RBF kernel | 📹 |
less depth |
Jan 25 | Preprocessing, sklearn pipelines |
📹 |
more depth |
Week 3 dataset: |
|||
Jan 27 | More preprocessing, sklearn ColumnTransformer , text features |
📹 |
more depth |
Week 4 datasets: |
|||
Feb 1 | Linear models | 📹 |
less depth |
Week 5 datasets: |
|||
Feb 3 | Hyperparameter optimization, overfitting the validation set | 📹 |
different |
Feb 8 | Evaluation metrics for classification | 📹 |
more depth |
Week 6 datasets: |
|||
Feb 10 | Regression metrics | 📹 |
more depth on metrics less depth on regression |
Feb 15 | Midterm review | Topic selection poll | |
Feb 17 | Midterm | ||
Feb 20-26 | Reading week (no classes) | ||
Week 7 datasets: |
|||
Mar 1 | Ensembles | 📹 |
similar |
Mar 2 | feature importances, model interpretation | 📹 |
feature importances is new, feature engineering is new |
Mar 8 | Feature engineering and feature selection | None | less depth |
Part II: Unsupervised learning, transfer learning, different learning settings | |||
Mar 10 | Clustering | 📹 |
less depth |
Week 9 datasets: |
|||
Mar 15 | Simple recommender systems | less depth | |
Mar 17 | Text data, embeddings, topic modeling | 📹 |
new |
Mar 22 | Neural networks and computer vision | less depth | |
Mar 24 | Time series data | (Optional) Humour: The Problem with Time & Timezones | new |
Mar 29 | Survival analysis | 📹 (Optional but highly recommended)Calling Bullshit 4.1: Right Censoring | new |
Part III: Communication, ethics, deployment | |||
Mar 31 | Ethics | 📹 (Optional but highly recommended) |
new |
Apr 5 | Communication | 📹 (Optional but highly recommended) |
new |
Apr 7 | Model deployment and conclusion | new |
We are working together on this course during a global pandemic. Everyone is struggling to some extent. If you tell me you are having trouble, I am not going to judge you or think less of you. I hope you will extend me the same grace!
Here are some ground rules:
- If you are unable to submit a deliverable on time, please reach out before the deliverable is due.
- If you need extra support, the teaching team is here to work with you. Our goal is to help each of you succeed in the course.
- If you are struggling with the material, the new hybrid teaching format, or anything else, please reach out. I will try to find time and listen to you empathetically.
- If I am unable to help you, I might know someone who can. UBC has some great student support resources.
Masks: This class is going to be (mostly) in person. Masks are required indoors, including in classrooms, as per the BC Public Health Officer orders. For the purposes of this order, the term "masks" refers to medical and non-medical masks that cover our noses and mouths. Masks are a primary tool to make it harder for Covid-19 to find a new host. You will need to wear a medical or non-medical mask anytime you are indoors at UBC, for your own protection, and the safety and comfort of everyone else in the class. Please do not eat in the classroom. If you need to drink water/coffee/tea/etc, please keep your mask on between sips. Please note that there are some people who cannot wear a mask. These individuals are equally welcomed in our class.
Seating in class: To reduce the risk of Covid transmission, please sit in a consistent area of the classroom each day. This will minimize your contacts and will still allow for the pedagogical methods planned for this class to help your learning.
Questions after class: We realize that many of you may have questions immediately after class and that this is a convenient time to ask them. However, for our in-person sections this term, we ask that you do not approach the instructor after class. Please vacate the room as soon as possible, to allow the next group of students to enter. If you have questions about lecture content or operational aspects of the course, please post them to Piazza or ask during office hours.
Vaccination: If you have not yet had a chance to get vaccinated against Covid-19, vaccines are available to you, free, and on campus [http://www.vch.ca/covid-19/covid-19-vaccine]. The higher the rate of vaccination in our community overall, the lower the chance of spreading this virus. You are an important part of the UBC community. Please arrange to get vaccinated if you have not already done so.
COVID-19 testing: UBC will require COVID-19 testing for all students, faculty and staff, with exemptions provided for those who are vaccinated against COVID-19: [https://news.ubc.ca/2021/08/26/ubc-implements-vaccine-declaration-and-rapid-testing-for-covid-19/]
Your personal health: If you're sick, it's important that you stay home – no matter what you think you may be sick with (e.g., cold, flu, other). A daily self-health assessment is required before attending campus. Every day, before leaving home, complete the self-assessment for Covid symptoms using this tool.
Stay home if you have Covid symptoms, have recently tested positive for Covid, or are required to quarantine. You can check this website to find out if you should self-isolate or self-monitor.
Your precautions will help reduce risk and keep everyone safer. In this class, the marking scheme is intended to provide flexibility so that you can prioritize your health and still be able to succeed:
- Attendance in classes and tutorials is not graded (although obviously beneficial when it is safe to attend).
- All course notes will be provided online.
- All homework assignments can be done and handed in online.
- Video recordings of class activities will be made available to you when possible/appropriate.
- Before each class, I'll also try to post some videos on YouTube to facilitate hybrid learning.
- There will be at least a few office hours which will be held online.
If sick on an exam day: If you are sick on a midterm exam day, please contact the instructor through Piazza as soon as you are confident you should not come to the scheduled exam. We would strongly prefer that you contact us to make an alternate arrangement than for you to come to the exam while you are ill. If you do show up for an exam and you are clearly ill, you will not be able to write the exam and we will make alternate arrangements with you. It is much better for you to email ahead of time and not attend. Remember to include your full name and student number in your message.
If you are sick on a final exam day, do not attend the exam. You must apply for deferred standing (an academic concession) through Science Advising no later than 48 hours after the missed final exam/assignment. Students who are granted deferred standing write the final exam/assignment at a later date. Learn more and find the application online: https://science.ubc.ca/students/advising/concession
For additional information about academic concessions, see the UBC policy here:http://www.calendar.ubc.ca/vancouver/index.cfm?tree=3,329,0,0
During this pandemic, the shift to online learning has greatly altered teaching and studying at UBC, including changes to health and safety considerations. Keep in mind that some UBC courses might cover topics that are censored or considered illegal by non-Canadian governments. This may include, but is not limited to, human rights, representative government, defamation, obscenity, gender or sexuality, and historical or current geopolitical controversies. If you are a student living abroad, you will be subject to the laws of your local jurisdiction, and your local authorities might limit your access to course material or take punitive action against you. UBC is strongly committed to academic freedom, but has no control over foreign authorities (please visit http://www.calendar.ubc.ca/vancouver/index.cfm?tree=3,33,86,0 for an articulation of the values of the University conveyed in the Senate Statement on Academic Freedom). Thus, we recognize that students will have legitimate reason to exercise caution in studying certain subjects. If you have concerns regarding your personal situation, consider postponing taking a course with manifest risks, until you are back on campus or reach out to your academic advisor to find substitute courses. For further information and support, please visit: http://academic.ubc.ca/support-resources/freedom-expression.