Welcome to CME 250 (Winter 2015)!

CME 250: Introduction to Machine Learning   


  • Winter Quarter 2016 website can be found here 
  • 03/29: CME 250 will be offered again in Spring quarter 2015 (course website). 
  • 02/13: The homework is due on Monday, February 16th at 11:59pm. Instructions for submitting the homework can be found on the homework page under "How to submit" section. 
  • 02/08: Please fill out the course evaluation survey!
  • 02/08: We will be holding an Office Hour session on Wednesday, 6:30-7:30pm in the  basement of the Huang Engineering center. 
  • 02/04: We've opened up the Kaggle In Class CME 250 Prediction Competition. See Mini-Project tab at left. 
  • 01/31: We've posted a 10-minute R video demo for CART using the Housing data discussed in Wednesday's lecture.
  • 01/30: MANDATORY data survey to generate dataset for class project must be completed by noon Sundaydata survey  
    • ***Students and auditors who complete the survey should take a screenshot of the survey completion screen shown after submitting (your answers will not be shown on this screen) and email it to Alex (ioannidis [at] stanford [dot] edu) with the email subject line CME 250 PROJSURV by this Sunday at noon.***
  • 01/25: Please fill out mid-course feedback survey
  • 01/22: We've posted an optional 15 minute R video demo for the PCA and SOM techniques discussed in Wednesday's lecture.
  • 01/19: We've posted an optional 10 minute review lecture for those who would like to brush up on linear algebra for Wednesday's lecture on PCA. 
  • 01/12: Homework policy and exercises for Lectures 1 and 2 have been posted. 
  • 01/12: Slides for Lecture 2 have been posted (broken link for Lecture 1 fixed).
  • 01/12: Lecture videos will be available through SCPD (link) on 10am the morning after the lecture (access limited to enrolled students only).
  • 01/07: Join the class Piazza site to collaborate with fellow students!
  • 01/07: Please fill out student survey (for auditors and enrolled students)  
  • 01/06: Course starts on Wednesday, January 7th (no Monday lecture in first week of quarter) 


  • Mondays and Wednesdays, 6:15-7:30pm (with a total of 8 sessions): January 7, 12, 14, 21, 26, 28, and February 2, 4.
  • Location: Thornton 102 (map)

Course Description

A five-week short course presenting the principles behind when, why, and how to apply modern machine learning algorithms. We will discuss a framework for reasoning about when to apply various machine learning techniques, emphasizing questions of over-fitting/under-fitting, regularization, interpretability, supervised/unsupervised methods, and handling of missing data. The principles behind various algorithms--the why and how of using them--will be discussed, while some mathematical detail underlying the algorithms--including proofs--will not be discussed. Unsupervised machine learning algorithms presented will include k-means clustering, principal component analysis (PCA), and independent component analysis (ICA). Supervised machine learning algorithms presented will include support vector machines (SVM), classification and regression trees (CART), boosting, bagging, and random forests. Imputation, the lasso, and cross-validation concepts will also be covered. The R programming language will be used for examples, though students need not have prior exposure to R.

  • Alexander Ioannidis:  ioannidis [at] stanford [dot] edu [website]
  • Karianne Bergen:  kbergen [at] stanford [dot] edu
(Please send any emails to both instructors and include "CME 250" in subject heading)

Course Requirements 
  • Course is 1 unit, graded Satisfactory / No Credit.
  • To receive credit, students must complete a subset of assigned homework exercises and complete a mini-project to gain practical experience applying course concepts to a real data set. 
  • Details about project will be given later in the course.
  • All homework exercises and projects will be due at the end of the course (due dates to be announced). 


Course assumes no prior background in machine learning. Previous exposure to undergraduate-level mathematics (calculus, linear algebra, statistics) and basic programming (R/Matlab/Python) helpful.