Homework 1 (Due Wed Sep 19th at 3pm in class): In this first homework you will not only learn Python, but while at it, you will also learn to build a search engine! Read and practice the introduction to python handout and do exercises 2.1, 2.2, 2.3 and 2.4 (please follow the guidelines on how to hand in the homework). To build the small Google search engine, you will need the following webpages: Please attend the tutorials to learn about python (how to install it, how to program in python, and how to understand what pageRank does). NOTE: This handout and homework are examinable. The goal of exercise 2.1 is for you to revise eigenvalues. We can do awesome stuff with eigenvalues as we'll soon learn. If your knowledge of these is rusty, I strongly recommend the following linear algebra handout. The goal of the other two exercises is to get you to learn and practice python. If you want to learn more about the multivariate Gaussian distribution, go the wikipedia page.

Homework 2.

Homework 3.

Homework 4.

Homework 5. Due Wednesday November 21st.

Prostate data. Data for Naive Bayes classifier.

Homework 6.


  • My favourite book for this course is the book of Stuart Russell and Peter Norvig titled artificial intelligence. Chapter 14 covers probabilistic graphical models. Chapter 15 covers HMMs. Chapter 20 talks about maximum likelihood, the EM algorithm, learning the parameters of graphical models and naive Bayes. Chapter 18 teaches decision trees, linear regression, regularization, neural networks and ensemble learning.
  • The machine learning book of Hastie, Tibshirani and Friedman is much more advanced, but it is also a great resource and it is free online: The elements of statistical learning.
  • For graphical models and Beta-Bernoulli models, I recommend A Tutorial on Learning with Bayesian Networks David Heckerman.
  • Kevin Murphy has compiled a nice page about Bayesian learning.
  • Wikipedia tutorial on the: SVD
  • The following handout should help you with linear algebra.