CS229: Machine Learning

Autumn 2018


Course Description   This course provides a broad introduction to machine learning and statistical pattern recognition. Topics include: supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines); unsupervised learning (clustering, dimensionality reduction, kernel methods); learning theory (bias/variance tradeoffs; VC theory; large margins); reinforcement learning and adaptive control. The course will also discuss recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing.


    CS 229 projects of the Fall 2018 edition are now available on the website! Congratulations to all the students for their awesome work!

Course Information

Time and Location
MW 9:30 AM - 10:50 AM, Bishop Auditorium
Discussion sections
Bishop Auditorium, Fridays 1:30-2:50pm. Sections will be recorded and attendance is optional.
Contact Information
If you have a question, to get a response from the teaching staff quickly we strongly encourage you to post it to the class Piazza forum. For private matters, please make a private note visible only to the course instructors. For longer discussions with TAs and to get help in person, we strongly encourage you to come to office hours. Answers to commonly asked questions and clarifications to the homeworks will be posted on the FAQ.
Office Hours
Office hours can be found here.
Course Coordinator
Teaching Assistants
* denotes a project TA
Answers to frequently asked questions can be found here.
The class handout can be downloaded here.


Students are expected to have the following background:
  • Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program.
  • Familiarity with probability theory (CS 109 or STATS 116)
  • Familiarity with linear algebra (any one of Math 104, Math 113, or CS 205 should be sufficient)
To review material from the prerequisites or to supplement the lecture material, there will occasionally be extra discussion sections held on Friday. An announcement will be made whenever one of these sections is held. Attendance at these sections is optional.
Course Materials
There is no required text for this course. Notes will be posted periodically on the class syllabus.
There will be four written homeworks, one midterm, and a major open-ended term project (see the projects page for details). The assignments will contain written questions and questions that require some Python programming. In the term project, you will investigate some interesting aspect of machine learning or apply machine learning to a problem that interests you.
We try very hard to make questions unambiguous, but some ambiguities may remain. Ask if confused or state your assumptions explicitly. Reasonable assumptions will be accepted in case of ambiguous questions.
Course grades: will be based 40% on homeworks (10% each), 20% on the midterm, and 40% on the major term project.
Submitting Assignments
Assignments will be submitted through Gradescope. You should have received an invite to Gradescope for CS229 Machine Learning Fall 2018. Login via the invite, and submit the assignments on time. If you have not received an invite, please post a private message on Piazza.
Late assignments
Each student will have a total of seven free late (calendar) days to use for homeworks, project proposals and project milestones. Once these late days are exhausted, any assignments turned in late will be penalized 20% per late day. However, no assignment will be accepted more than three days after its due date, and late days cannot be used for the final project poster or write-up. Each 24 hours or part thereof that a homework is late uses up one full late day.
Honor code

We strongly encourage students to form study groups. Students may discuss and work on homework problems in groups. However, each student must write down the solutions independently, and without referring to written notes from the joint session. In other words, each student must understand the solution well enough in order to reconstruct it by him/herself. In addition, each student should write on the problem set the set of people with whom s/he collaborated.
Further, since we occasionally reuse problem set questions from previous years, we expect students not to copy, refer to, or look at the solutions in preparing their answers. It is an honor code violation to intentionally refer to a previous year's solutions. This applies both to the official solutions and to solutions that you or someone else may have written up in a previous year.