Difference between revisions of "Machine Learning Bio"

From Chrome
Jump to: navigation, search
(Detailed course schedule)
Line 65: Line 65:
 
A detailed schedule of the course can be found here; topics are just indicative while days and teachers are correct up to some last-minute change (I will notify you by email). Please note that not all days we have lectures!!
 
A detailed schedule of the course can be found here; topics are just indicative while days and teachers are correct up to some last-minute change (I will notify you by email). Please note that not all days we have lectures!!
  
<!--
 
 
  Note: Lecture timetable interpretation
 
  Note: Lecture timetable interpretation
  * On Wednesday, in room B.6.1, starts at 14:15 (cum tempore), ends at 18:15 (but more likely at 17:15)
+
  * On Wednesday, in room 26.02, starts at 15:15 (cum tempore), ends at 18:15
  * On Thursday, in room B.6.1, starts at 08:15 (cum tempore), ends at 10:15
+
  * On Thursday, in room 26.01, starts at 12:15 (cum tempore), ends at 14:15
  
 +
 +
{| border="1" align="center" style="text-align:center;"
 +
|-
 +
|Date || Day || Time || Room || Teacher || Type || Topic
 +
|-
 +
|24/02/2021 || Wednesday || 15:15-18:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4d25d6ca96674b84a7a94e991387b458 Course Intro] + [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=68982651c3704bb0a2e5c25ff1cfe70c Machine Learning Intro]
 +
|-
 +
|25/02/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4c08d5e9abe442b9b872403b2ac43eaf Statistical Learning Theory] (Ch. 1 ISL)
 +
|-
 +
|03/03/2021 || Wednesday || 14:15-18:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=7aa687ab4a874b86a3cda60a6f76e8fc Statistical Learning Theory - Bias/Variance Trade-off]  (Ch. 2 ISL)
 +
|-
 +
|04/03/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=52a29db7ac824b27a78ee33c73b71f83 Introduction to Linear Algebra]
 +
|-
 +
|10/03/2021 || Wednesday || 14:15-18:15 || Matteucci webex room || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=0f8a69033d324e1d8601e02f4e3e7df1 Simple Linear Regression] (Ch. 2 ISL + Ch. 3 ISL)
 +
|-
 +
|11/03/2021 || Thursday || --- || --- || --- || ---|| --- No lecture ---
 +
|-
 +
|17/03/2021 || Wednesday || 14:15-18:15 || Cannici webex room || Marco Cannici || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=83b0b99a801d2079368067d0af5fac6b Python + Numpy + Bias/Variance]
 +
|-
 +
|18/03/2021 || Thursday || 08:15-10:15 || Matteucci webex room || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=653ddf65302e4312bc7c532bfae4f720 Multi Variate Linear Regression] (Ch. 2 ISL + Ch. 3 ISL)
 +
|-
 +
|24/03/2021 || Wednesday || 14:15-18:15 || Cannici webex room || Marco Cannici || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=6a5da10f8b6fe5e8dab98d1f4726ced6 Multivariate Linear Regression Laboratory]
 +
|-
 +
|25/03/2021 || Thursday || 08:15-10:15 || Matteucci webex room || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=9788f3a243f8496fb30f8bac9abf7ef4 Generalized Linear Regression] (Ch. 2 ISL + Ch. 3 ISL)
 +
|-
 +
|31/03/2021 || Wednesday || 14:15-18:15 || Matteucci webex room || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4d48804210294afabb1e1a3aa0f8913f Feature Selection and Model Assessment] (Ch. 3 + Ch. 6 ISL)
 +
|-
 +
|01/04/2021 || Thursday || 08:15-10:15 || Matteucci webex room || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=592c0fd5e42a4b039ff228561aacedd1 Ridge Regression and Lasso] (Ch. 3 + Ch. 6 ISL)
 +
|-
 +
|07/04/2021 || Wednesday || 14:15-18:15 || Cannici webex room || Marco Cannici || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=bd67b7220eb4bd6997ccd034b229b9a8 Generalized Linear Regression and Feature Selection Laboratory]
 +
|-
 +
|08/04/2021 || Thursday || 08:15-10:15 || Matteucci webex room || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=34633f7cadfb49c6ba8b4b1dc4467646 Classification: KNN and Logistic Regression] (Ch. 4 ISL + Ch. 4 ESL)
 +
|-
 +
|14/04/2021 || Wednesday || '''15:15-18:15''' || B.6.1 ||Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=872ac30ecccb40eb9f62ec52e181d027 Classification: Logistic Regression] (Ch. 4 ISL + Ch. 4 ESL)
 +
|-
 +
|15/04/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d2ddca82f5ab4de98bda786e6eb2e9b9 Classification: Linear Discriminanr Analysis] (Ch. 4 ISL)
 +
|-
 +
|22/04/2021 || Wednesday || --- || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|23/04/2021 || Thursday || --- || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|28/04/2021 || Wednesday || --- || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|29/04/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=76439012d78a425eab1ab550601c4700 Evaluation methods for classification]
 +
|-
 +
|05/05/2021 || Wednesday || 14:15-18:15 || B.6.1 || Marco Cannici || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=93b1acdb8065b22c92d00f9539563a83 Logistic Regression and LDA Laboratory (Part 1)][https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f691eb71b3ce81c735a440871f2a635b (Part 2)]
 +
|-
 +
|06/05/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ca8305b65ee247e28d8cae0dc6c8582f The Perceptron] (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL)
 +
|-
 +
|12/05/2021 || Wednesday || 14:15-18:15 || B.6.1 ||Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=fec02aafdb55405ca03dc756e2b95a47 Support Vector Machines] (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL)
 +
|-
 +
|13/05/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=cf975d329332417582e0383d2f3bbc67 Unsupervised Learning and Clustering] (Ch. 10 ISL)
 +
|-
 +
|19/05/2021 || Wednesday || 14:15-18:15 || B.6.1 || Marco Cannici || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ad0c6db58013cc99272e921facb51b57 SVM and Classifiers Evaluation Laboratory]
 +
|-
 +
|20/05/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d0a9deddbd2d4cf8a30c74159ba453cb Clustering] (Ch. 10 ISL)
 +
|-
 +
|26/05/2021 || Wednesday || 14:15-18:15 || B.6.1 || Marco Cannici || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=cd817e862eb56acf02c09be413f915a1 Clustering Laboratory]
 +
|-
 +
|27/05/2021 || Thursday || 08:15-10:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=dfbeb4acf10b418a8fdc18cbd79ac742 Clustering] (Ch. 10 ISL)
 +
|-
 +
|02/06/2021 || Wednesday || --- || --- || --- || --- || --- No Lecture ---
 +
|-
 +
|03/06/2021 || Thursday || 08:15-11:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=26d10f88d441aa3f499d99f0e9c1b82d Clustering Evaluation] (Ch. 10 ISL)
 +
|-
 +
|04/06/2021 || Friday || 14:15-17:15 || B.6.1 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=31466d593b12e2239a65f45841ab71d4 Principal Component Analysis] (Ch. 10 ISL)
 +
|}
 +
 +
<!--
 
{| border="1" align="center" style="text-align:center;"
 
{| border="1" align="center" style="text-align:center;"
 
|-
 
|-

Revision as of 00:20, 23 February 2022


The following are last-minute news you should be aware of ;-)

* 23/02/2022: Lectures start today!

Course Aim & Organization

The objective of the Machine Learning course is to give an in-depth presentation of the techniques most used for pattern recognition, knowledge discovery, and data analysis/modeling. These techniques are presented both from a theoretical (i.e., statistics and information theory) perspective and a practical one (i.e., coding examples) through the descriptions of algorithms and their implementations in a general-purpose programming language (i.e., python).

The course presents the classical supervised and unsupervised learning paradigms described and discussed presenting regression, classification, and clustering problems in Bioinformatics. The course is composed of a set of lectures on specific machine learning techniques (e.g., generalized linear regression, logistic regression, linear and quadratic discriminant analysis, support vector machines, k-nearest-neighborhood, clustering, etc.) preceded by the introduction of the Statistical Learning framework which acts as a common reference framework for the entire course.

Teachers

The course is composed of a blending of lectures and exercises by the course teacher and a teaching assistant.

Course Program

The course mostly follows the following book which is also available for download in pdf

The course lectures will present the theory and practice of the following:

  • Machine Learning and Pattern Classification: the general concepts of Machine Learning and Pattern Recognition are introduced within the framework of Statistical Decision Theory with reference to the bias-variance trade-off and the Bayes classifier;
  • Generalized Linear Regression: linear methods for regression will be presented and discussed introducing different techniques (e.g., Linear Regression, Ridge Regression, K-Nearest Neighbors Regression, Non-Linear Regression, etc.) and the most common methodologies for model validation and selection (e.g., AIC, BIC, cross-validation, stepwise feature selection, Lasso, etc.).
  • Linear and Non-Linear Classification: generative and discriminative techniques for classification will be described and discussed (e.g., Logistic Regression, Linear and Quadratic Discriminant Analysis, K-Nearest Neighbors, Perceptron Rule, and Support Vector Machines, etc.). Metrics for classifiers evaluation and comparison are presented in this part of the course (e.g., accuracy, precision, recall, ROC, AUC, F-measure, Matthew coefficient).
  • Unsupervised Learning: the most common approaches to unsupervised learning are described mostly focusing on clustering methods such as hierarchical clustering, k-means, k-medoids, Mixture of Gaussians, DBSCAN, etc

These topics will be presented both from a theoretical perspective and a practical one via implementations in the general-purpose programming language python.

Detailed course schedule

A detailed schedule of the course can be found here; topics are just indicative while days and teachers are correct up to some last-minute change (I will notify you by email). Please note that not all days we have lectures!!

Note: Lecture timetable interpretation
* On Wednesday, in room 26.02, starts at 15:15 (cum tempore), ends at 18:15
* On Thursday, in room 26.01, starts at 12:15 (cum tempore), ends at 14:15


Date Day Time Room Teacher Type Topic
24/02/2021 Wednesday 15:15-18:15 B.6.1 Matteo Matteucci Lecture Course Intro + Machine Learning Intro
25/02/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture Statistical Learning Theory (Ch. 1 ISL)
03/03/2021 Wednesday 14:15-18:15 B.6.1 Matteo Matteucci Lecture Statistical Learning Theory - Bias/Variance Trade-off (Ch. 2 ISL)
04/03/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture Introduction to Linear Algebra
10/03/2021 Wednesday 14:15-18:15 Matteucci webex room Matteo Matteucci Lecture Simple Linear Regression (Ch. 2 ISL + Ch. 3 ISL)
11/03/2021 Thursday --- --- --- --- --- No lecture ---
17/03/2021 Wednesday 14:15-18:15 Cannici webex room Marco Cannici Python Laboratory Python + Numpy + Bias/Variance
18/03/2021 Thursday 08:15-10:15 Matteucci webex room Matteo Matteucci Lecture Multi Variate Linear Regression (Ch. 2 ISL + Ch. 3 ISL)
24/03/2021 Wednesday 14:15-18:15 Cannici webex room Marco Cannici Python Laboratory Multivariate Linear Regression Laboratory
25/03/2021 Thursday 08:15-10:15 Matteucci webex room Matteo Matteucci Lecture Generalized Linear Regression (Ch. 2 ISL + Ch. 3 ISL)
31/03/2021 Wednesday 14:15-18:15 Matteucci webex room Matteo Matteucci Lecture Feature Selection and Model Assessment (Ch. 3 + Ch. 6 ISL)
01/04/2021 Thursday 08:15-10:15 Matteucci webex room Matteo Matteucci Lecture Ridge Regression and Lasso (Ch. 3 + Ch. 6 ISL)
07/04/2021 Wednesday 14:15-18:15 Cannici webex room Marco Cannici Python Laboratory Generalized Linear Regression and Feature Selection Laboratory
08/04/2021 Thursday 08:15-10:15 Matteucci webex room Matteo Matteucci Lecture Classification: KNN and Logistic Regression (Ch. 4 ISL + Ch. 4 ESL)
14/04/2021 Wednesday 15:15-18:15 B.6.1 Matteo Matteucci Lecture Classification: Logistic Regression (Ch. 4 ISL + Ch. 4 ESL)
15/04/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture Classification: Linear Discriminanr Analysis (Ch. 4 ISL)
22/04/2021 Wednesday --- --- --- --- --- No Lecture ---
23/04/2021 Thursday --- --- --- --- --- No Lecture ---
28/04/2021 Wednesday --- --- --- --- --- No Lecture ---
29/04/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture Evaluation methods for classification
05/05/2021 Wednesday 14:15-18:15 B.6.1 Marco Cannici Python Laboratory Logistic Regression and LDA Laboratory (Part 1)(Part 2)
06/05/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture The Perceptron (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL)
12/05/2021 Wednesday 14:15-18:15 B.6.1 Matteo Matteucci Lecture Support Vector Machines (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL)
13/05/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture Unsupervised Learning and Clustering (Ch. 10 ISL)
19/05/2021 Wednesday 14:15-18:15 B.6.1 Marco Cannici Python Laboratory SVM and Classifiers Evaluation Laboratory
20/05/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture Clustering (Ch. 10 ISL)
26/05/2021 Wednesday 14:15-18:15 B.6.1 Marco Cannici Python Laboratory Clustering Laboratory
27/05/2021 Thursday 08:15-10:15 B.6.1 Matteo Matteucci Lecture Clustering (Ch. 10 ISL)
02/06/2021 Wednesday --- --- --- --- --- No Lecture ---
03/06/2021 Thursday 08:15-11:15 B.6.1 Matteo Matteucci Lecture Clustering Evaluation (Ch. 10 ISL)
04/06/2021 Friday 14:15-17:15 B.6.1 Matteo Matteucci Lecture Principal Component Analysis (Ch. 10 ISL)

Chapters are intended as complete except for

  • Ch.4 ESL: Section 4.5
  • Ch.12 ESL: Sections 12.1, 12.2, 12.3
  • Ch.9 ISL: Sections 9.1, 9.2, 9.3

Course Evaluation

The course evaluation is composed by two parts:

  • HW: Homework with exercises covering the whole program (up to 6 points)
  • OR: An oral discussion covering the whole program (up to 26 points)

the final score will be the sum of HW (not compulsory) and OR scores. You will get the oral grade as a mark in the scale of 30 up to 32/30 which you have to multiply by 0.8125 and then you add to it the score of the project. For your convenience here it is a conversion table with the final mark in case you do not turn in the project or you get the whole 6 marks in the project.

Teaching Material (the textbook)

Lectures will be based on material taken from the book.

If you are interested in a more deep treatment of the topics you can refer to the following book from the same authors

Some additional material that could be used to prepare the oral examination will be provided together with the past homeworks.

Teacher Slides

In the following you can find the lecture slides used by the teacher and the teaching assistants during classes.

  • [2020/2021] Linear Algebra Basics: Basic elements of linear algebra, e.g., vectors, matrices, basis, span, etc.
  • [2020/2021] Course introduction: introductory slides of the course with useful information about the grading, and the course logistics. Some examples from supervised and unsupervised learning. Regression, classification, clustering terminology and examples.
  • [2020/2021] Statistical Learning Introduction: Statistical Learning definition, rationale, and trade-offs (e.g., prediction vs. inference, parametric vs non parametric models, flexibility vs. interpretability, etc.)
  • [2020/2021] Linear Regression: Simple Linear Regression and Multiple Linear Regression. Generalized Linear models. Cross-validation techniques. Feature selection. Ridge Regression and Lasso.
  • [2020/2021] Linear Classification: From Linear Regression to Logistic Regression. Linear Discriminant Analysis and Quadratic Discriminant Analysis. Comparison between linear classification methods. Discriminative vs. generative methods. Support Vector Machines.
  • [2020/2021] Clustering: Introduction to unsupervised learning and clustering, hierarchical clustering, k-means, DBSCNA, indexes for clustering evaluation.
  • [2020/2021] Principal Component Analysis: Principal Component Analysis, Geometric Interpretation, Singular Values Decomposition.

Laboratories

We will use Python (with Jupyter notebooks) throughout the course, thus we kindly ask you to install the "Anaconda" package to be ready for the labs. Here are the download links. You can find a simple Jupyter notebook HERE to test if the installation succeeded.

To open the notebook

  • launch the "Anaconda Navigator" app
  • launch the "jupyter Notebook" app within the navigator, it should automatically open a webpage (it may take a while)
  • on the webpage, navigate on the folder where you downloaded the "lab01.00-TestEnvironment.ipynb" file, and press on the file to open it
  • then follow the instruction within the notebook

If you didn't install anaconda but just jupyter, or if you can't find Anaconda Navigator

  • open a shell ("Anaconda Prompt" if you are using Windows)
  • move on to the folder where you downloaded "lab01.00-TestEnvironment.ipynb"
  • run the "jupyter notebook" command, it should automatically open a webpage
  • then on the webpage press on the "lab01.00-TestEnvironment.ipynb" file and follow the instructions within the notebook

The following are the notebook used in the labs:

Additional Resources

Papers and links useful to integrate the textbook

  • Basic Linear Algebra: "Basic Linear Algebra" chapter from Wayne Winston book "Operations Research Applications and Algorithms (4th ed.)"
  • Bias vs. Variance: "Understanding the Bias-Variance Tradeoff" essay by Scott Fortmann-Roe
  • Karush Kuhn Tucker Conditions: a short note on their meaning with references to relevant wikipedia pages
  • Seeing Theory: a website where the basic concepts of probability and statistics are explained in a visual way.

Python examples to better practice with numpy library

Online Resources

The following are links to online sources which might be useful to complement the material above

  • An Introduction to Linear Algebra with numpy examples. It provides the very fundamental definitions, does not cover eigenvalues and eigenvectors.
  • Statistical Learning MOOC covering the entire ISL book offered by Trevor Hastie and Rob Tibshirani. Start anytime in self-paced mode.
  • MATH 574M University of Arizona Course on Statistical Machine Learning and Data Mining; here you can find slides covering part of the course topics (the reference book for this course is again The Elements of Statistical Learning)