Machine Learning for Large-Scale Data Analysis and Decision Making

Fall 2020

[Schedule]  [Evaluations]  [References]  [Fall 2019]  [Français

Instructor: Laurent Charlin

Class Schedule: I am teaching the course twice this term, once in French and once in English.

Day/Time Section Zoom Link
Monday 8:30am--11:30am J01 (English) Virtual Room
Friday 8:30am--11:30am J01 (French) Salle virtuelle

Office hours: Wednesday 9am--11am (Virtual Room)

Rooms are password-protected. Reach out to me by email if you need the password.

In this course, we will study machine learning models, a type of statistical analysis that focuses on prediction, for analyzing very large datasets ("big data").
The plan is to survey different machine learning techniques (supervised, unsupervised, reinforcement learning) as well as some applications (e.g., recommender systems). We will also study large-scale machine learning and will discuss distributed computational frameworks (Hadoop and Spark).

**Course delivery:** Due to the online nature of the semester, this course will be given as a flipped classroom. It is an instructional strategy where students learn the material before they come to class. The material will be a mix of readings and video capsules. Class time is reserved for more active activities such as problem solving, demonstrations, and questions-answering. In addition, class time will contain a short summary of the week's material.

Mathematical Note: Mathematical maturity will be assumed.

Programming Note: Python knowledge will be assumed. If you do not know Python I have listed a few ways to learn the basics below. I recommend option 1 (Data Camp):

  1. DataCamp. Complete Chapters 1, 2, 3 (sign in using the link I sent you to access Chapters 2 and 3).
  2. HEC CAM offers introductory python courses in September (currently only in French). Register here: CAM registration
  3. Here is the tutorial we used in 2018: Fall 2018 tutorial. While I think the first two options are superior, this will give you an idea of the level I am expecting. particularly recommend this

Further a machine-learning tutorial using python will be provided on week #4.

Weekly Schedule

  1. 08/31. Class introduction and math review. [slides]
  2. 09/14. Machine learning fundamentals
  3. 09/21. Supervised learning algorithms
  4. 09/28. Python for scientific computations and machine learning [Practical Session]
    • The tutorial that you will follow is here (on colab), Solutions.
    • I encourage you to start the tutorial ahead of time and to finish it during our 90 minutes together.
  5. 10/05. Neural networks and deep learning
  6. 10/13. Recurrent Neural networks and Convolutional neural networks
  7. 10/19. Unsupervised learning
  8. 10/26. Reading week (no class)
  9. 11/02. Project team meetings
  10. 11/09. Parallel computational paradigms for large-scale data processing
  11. 11/16 Recommender systems
  12. 11/23 Sequential decision making I
  13. 11/30 Sequential decision making II
  14. 12/07 Class project presentations


  1. Homework (20%)
  2. Project (30%)
    • Due date: final report December 11 (by the end of the day).
    • Instructions
  3. Project presentation (10%)
  4. Final Exam (30%)
    • Date: December 18, Time: 9:00am-12:00pm (Montreal time),
    • Material covered: Everything covered in class + required lectures.
    • Past exam: Fall 2018
  5. Capsule summaries (10%)
    • Provide a short summary (10 to 15 lines of text in the form) of 5 capsules throughout the semester.
    • Post your summaries using this form


  1. The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition Hastie, Trevor, Tibshirani, Robert, Friedman, Jerome, 2009 [ESL]
  2. Deep Learning. Ian Goodfellow, Yoshua Bengio and, Aaron Courville. [DL]
  3. Reinforcement Learning : An Introduction Hardcover. Richard S. Sutton, Andrew G. Barto. A Bradford Book. 2nd edition [RL-Sutton-Barto]
  4. Machine Learning. Kevin Murphy. MIT Press. 2012. [ML-Murphy]
  5. Recommender Systems Handbook, Ricci, F., Rokach, L., Shapira, B., Kantor, P.B. 2011. [RSH]
  6. Data Algorithms : Recipes for Scaling Up with Hadoop and Spark 1st Edition. Mahmoud Parsian. O'Reilly. 2015 [DA]
  7. Python for Data Analysis : Data Wrangling with Pandas, NumPy, and IPython. Wes McKinney. O'Reilly. 2012 [PDA]
  8. Pattern Recognition and Machine Learning. Christopher Bishop. 2006 [PRML]
  9. Advanced Analytics with Spark. O'Reilly. Second Edition. 2017