Machine Learning (MSAI 349)

Fall 2018
Electrical Engineering and Computer Science Department
Northwestern University

Class Meets: 1:00-1:50PM MWF, Mudd 3514

Instructor: Doug Downey
Email: ddowney <at> eecs <dot> northwestern <dot> edu

Office Hours:
  Monday, 5PM-6PM, Mudd 3001


See the course syllabus.

Four homework assignments make up 40 points of the grade, a course project makes up 40 points, and two in-class exams comprise 20 points for a total of 100 points. Grades are assigned using the standard scale (given in the "introduction" lecture notes), so 93-100 points is an A, 90-93 points is an A-, etc.


Homework will be submitted via Canvas. Details on the specific files to include are given in each homework assignment.

Late peer review assignments are penalized 33% per day. All other late assignments are penalized by 10% a day, and will NOT BE ACCEPTED more than one week after the original deadline. Due dates subject to change:
Problem Set 1Due 11:59PM October 1715 pts
Problem Set 2Due 11:59PM Nov 15 pts
Problem Set 3 Due 11:59PM Nov 2810 pts
Problem Set 4Due 11:59PM Nov 2810 pts

Course Projects

Course projects will be performed by groups of students; any number of students can work together, but larger groups will be expected to complete more substantial projects. Your assignment is to formulate an interesting task for which machine learning can be used, gather training and test data for the task, and then evaluate one or more machine learning algorithms on the data. The final output will include a report Web page.

The Web pages for the completed course projects from 2008, 2010, 2014, 2015, 2016 and and other years are available for perusal.

Proposal (1 pg)Due 11:59PM Monday, Nov 55 pts
Proposals Peer ReviewDue 11:59PM Tuesday, Nov 135 pts
Status Report (1-2 pg)Due 11:59PM Monday, Nov 195 pts
Status Peer ReviewDue 11:59PM Wednesday, Nov 285 pts
Project Web pageDue 11:59PM Tuesday, December 1120 pts

You can use any learning algorithm libraries or packages that you like for your final project. You don't have to code up your own algorithms, but you can do so if you want to make that a focus of your project (implementing algorithms on your own will probably mean you spend less time on data acquisition and experimentation). See links to some general ML and neural net packages below.

General ML packages:

Neural Net packages:


See lecture slides.

Lectures and Schedule (subject to change)

Week of Sept 24 F: Introduction
Week of Oct 1 M: Decision Trees
W: Decision Trees (cont.)
F: Decision Trees (cont.),
Week of Oct 8 M: Instance-based Learning
W: Instance-based learning (cont.)
F: Instance-based learning (cont.)
Week of Oct 15 M: Distance Measures
W: Recommenders (briefly), Linear Regression
F: Local Search, Exam Review
Week of Oct 22 M: Exam 1
W: Gradient Descent, Optimization Project Guidelines and Suggestions
F: Genetic Algorithms, Exam Return
Week of Oct 29 M: Basics of probability for ML
W: Statistical Estimation
F: Naive Bayes Classifiers
Week of Nov 5 M: Naive Bayes Classifiers
W: Logistic Regression
F: Neural Networks
Week of Nov 12 M: Neural networks (cont.)
W: Deep Learning
F: Ensemble Methods
Week of Nov 19 M: Unsupervised Learning
W: Computational Learning Theory and Evaluating Hypotheses
F: No class (Thanksgiving break)
Week of Nov 26 M: Theory (cont.)
W: Bias in ML, exam review
F: Exam 2
Week of Dec 3 M: No class
W: Support Vector Machines
F: Reinforcement Learning, MDPs