This course covers a selected set of topics in machine learning and data mining, with an emphasis on good methods and practices for deployment of real systems.
The majority of sections are related to commonly used supervised learning techniques, and to a lesser degree unsupervised methods.
This includes fundamentals of algorithms on linear and logistic regression, decision trees, support vector machines,
clustering, neural networks, as well as key techniques for feature selection and dimensionality reduction, error estimation and empirical validation.
This course requires programming skills (Python and NumPy) and knowledge of probability (e.g., MATH 323 or ECSE 305),
calculus (e.g., MATH 222), linear algebra (e.g., MATH 223), and algorithms (e.g., COMP 251).
For more information on official requirements see the course prerequisites and restrictions
Assignments, slides, project descriptions and other course materials are posted on
There are no required textbook but the topics are covered by the following books:
[Bishop] Pattern Recognition and Machine Learning by Christopher Bishop (2007)
[Goodfellow]    Deep Learning by Ian Goodfellow, Yoshua Bengio, and Aaron Courville (2016)
[Murphy] Machine Learning: A Probabilistic Perspective by Kevin Murphy (2012)
Other Related References
The Elements of Statistical Learning: Data Mining, Inference, and Prediction
by Trevor Hastie, Robert Tibshirani and Jerome Friedman (2009)
Information Theory, Inference, and Learning Algorithms
, by David MacKay (2003)
Bayesian Reasoning and Machine Learning
, by David Barber (2012).
Understanding Machine Learning: From Theory to Algorithms
, by Shai Shalev-Shwartz and Shai Ben-David (2014)
Foundations of Machine Learning
, by Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalkar (2018)
Dive into Deep Learning
, by Aston Zhang, Zachary Lipton, Mu Li, and Alexander J. Smola (2019)
Mathematics for Machine Learning
, by Marc Peter Deisenroth, A Aldo Faisal, and Cheng Soon Ong (2019)
A Course in Machine Learning
, by Hal Daumé III (2017)
Hands-on Machine Learning with Scikit-Learn and TensorFlow
, by Aurélien Géron (2017)