# Difference between revisions of "Machine Learning Bio"

(→Detailed course schedule) |
(→Laboratories) |
||

(186 intermediate revisions by the same user not shown) | |||

Line 2: | Line 2: | ||

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

+ | * 31/05/2023: Check the change of classroom for the last two lectures of the course!! | ||

+ | * 03/05/2023: Homework project published | ||

+ | * 15/03/2023: Material for first lab published | ||

+ | * 03/03/2023: Lecture schedule updated ... also with recordings | ||

+ | * 22/02/2023: Added link to the lecture recording | ||

+ | * 22/02/2023: Lectures start today! | ||

+ | <!-- * 20/07/2022: Grades for the three homeworks are [[Media:ML2122-Grades_HWs.pdf|HERE!]] | ||

+ | * 28/06/2022: Grades for the second homework are [[Media:ML2122-Grades_HW1+2.pdf|HERE!]] | ||

+ | * 14/06/2022: The third homework is out!!! | ||

+ | * 03/06/2022: Updates slides, and added a note about the oral exam including a detailed syllabus for it | ||

+ | * 02/06/2022: Last lecture of the course will be online on Friday 03/06/2022 from 14:00 to 16:00 | ||

+ | * 31/05/2022: Poll for the last lecture is [https://forms.gle/u1STPsJgekMKx99K6 here!] | ||

+ | * 29/05/2022: Grades for the first homework are [[Media:ML2122-Grades_HW1_v2.pdf|HERE!]] | ||

+ | * 21/05/2022: The dataset for the second homework is changed!!! | ||

+ | * 19/05/2022: The second homework is out!!! | ||

+ | * 04/05/2022: Changed lecture schedule | ||

+ | * 02/05/2022: Changed deadline first homework -> 11/05/2022 at noon | ||

+ | * 22/04/2022: The first homework is out!!! | ||

+ | * 08/03/2022: Added material for the first lab | ||

+ | * 06/03/2022: Slides from first lectures and last year's recordings updated | ||

+ | * 23/02/2022: Lectures start today! | ||

+ | --> | ||

+ | <!-- | ||

+ | * 11/09/2021: Grade of the [[Media:ML2021-Grades_210911.pdf|Summer session + homeworks]] | ||

+ | * 09/07/2021: Grade of the [[Media:ML2021-Grades_210624.pdf|24/06/2021 oral exams]] | ||

+ | * 09/07/2021: Updated Homework + Oral [[Media:ML2021-Conversion.pdf|conversion table]] | ||

+ | * 03/07/2021: Updated Homework available [[Media:ML2021-homework-new.zip|here!!!]] | ||

+ | * 08/06/2021: Updated all videos and all slides from the course. | ||

+ | * 02/06/2021: You can fin the 2020/2021 homework [[Media:ML2021-homework.zip|here!!!]] | ||

+ | * 26/05/2021: The link to the form to request an instance of remote examination for June and July is [https://forms.office.com/r/FUrVt8eZNx here]! | ||

+ | * 09/04/2021: From next week lectures will be back to presence (plus webex streaming) | ||

+ | * 22/03/2021: Added completed material from the last lab plus some exercises ... | ||

+ | * 17/03/2021: Added the material for the lab of today ... | ||

+ | * 10/03/2021: 11/03/2021 lecture has been canceled | ||

+ | * 06/03/2021: website update with linear algebra slides and (working) links to all lectures | ||

+ | * 05/03/2021: Since today we are moved fully online so lectures will happen in my webex room (same holds for labs) | ||

+ | * 24/02/2021: Lectures start today | ||

+ | --> | ||

+ | <!-- | ||

+ | * 08/08/2020: Grading for all projects and first two calls [[Media:Grades_20200723.pdf|are here!!]] | ||

+ | * 22/06/2020: Grading mechanism explained, check [[Media:ML2020_grading_system.pdf|here a handy recap]] | ||

+ | * 14/06/2020: [[Media:ML2020_homework.zip |Here it come the 2020 homework!!!]] | ||

+ | * 03/06/2020: All slides updated | ||

* 02/05/2020: Updated course schedule and added videos to the previous lectures | * 02/05/2020: Updated course schedule and added videos to the previous lectures | ||

* 04/04/2020: Updated schedule and added videos of previous lectures | * 04/04/2020: Updated schedule and added videos of previous lectures | ||

Line 9: | Line 52: | ||

* 11/03/2020: The course starts today! | * 11/03/2020: The course starts today! | ||

* 03/03/2020: The course is going to start soon ... | * 03/03/2020: The course is going to start soon ... | ||

+ | --> | ||

==Course Aim & Organization== | ==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. | + | 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 | + | 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=== | ===Teachers=== | ||

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

− | * [http://www.deib.polimi.it/ita/personale/dettagli/267262 Matteo Matteucci]: the course teacher | + | * [http://www.deib.polimi.it/ita/personale/dettagli/267262 Matteo Matteucci]: the course teacher |

− | * [ | + | * [https://www.deib.polimi.it/ita/personale/dettagli/1638984 Stefano Samele]: the teaching assistant |

===Course Program=== | ===Course Program=== | ||

Line 27: | Line 71: | ||

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

− | * [http://www-bcf.usc.edu/~gareth/ISL/ An Introduction to Statistical Learning with Applications in R] by Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani | + | * [http://www-bcf.usc.edu/~gareth/ISL/ An Introduction to Statistical Learning with Applications in R] by Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani |

The course lectures will present the theory and practice of the following: | 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; | + | * 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.). | + | * 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). | + | * 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 | * 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 | ||

Line 39: | Line 83: | ||

===Detailed course schedule=== | ===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!! | + | 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 .. | + | * On Wednesday, in room 25.1.3, starts at 15:15 (cum tempore), ends at 18:15 |

− | * On Thursday, in room . | + | * On Thursday, in room B6.4, 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 | ||

+ | |- | ||

+ | |22/02/2022 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ab39b9e567cba8b2df48e73f66a20589 Machine Learning Intro] | ||

+ | |- | ||

+ | |23/02/2023 || Thursday || 12:15-14:15 || B6.4 || Stefano Samele || Lecture || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/318f1c56959b103bbfcd00505681f80d Introduction to Linear Algebra] | ||

+ | |- | ||

+ | |01/03/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=9f65056c8361664020eebbaa1c02b8d3 Statistical Learning Theory (Ch. 1 ISL)] | ||

+ | |- | ||

+ | |02/03/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f5d7a196c1be8571c153c5c1b570cd05 Statistical Learning Theory - Bias/Variance Trade-off (Ch. 2 ISL)] | ||

+ | |- | ||

+ | |08/03/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e74ee12c8e6f10252a3b156033cc66b4 Simple Linear Regression (Ch. 2 ISL + Ch. 3 ISL)] | ||

+ | |- | ||

+ | |09/03/2023 || Thursday || 12:15-14:15 || B6.4 || -- || -- || -- No Lecture -- | ||

+ | |- | ||

+ | |15/03/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Stefano Samele || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ce1eda4307c95bf945041b4da24b04d5 Python + Numpy + Bias/Variance] | ||

+ | |- | ||

+ | |16/03/2023 || Thursday || 12:15-14:15 || B6.4 || -- || -- || -- No Lecture -- | ||

+ | |- | ||

+ | |22/03/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=2c55d441fa6fc2ab0c26626e7ee08d72 Multi Variate Linear Regression (Ch. 2 ISL + Ch. 3 ISL)] | ||

+ | |- | ||

+ | |23/03/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=31ba623fa82e8d6319ffdcafc090bb42 Multi Variate Linear Regression (Ch. 2 ISL + Ch. 3 ISL)] | ||

+ | |- | ||

+ | |29/03/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e5abfa03a9075702eb31946163117bf3 Generalized Linear Regression (Ch. 2 ISL + Ch. 3 ISL)] | ||

+ | |- | ||

+ | |30/03/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=7626ae793d5ee72ff83cff93f448ff89 Feature Selection, Ridge Regression and Lasso (Ch. 3 + Ch. 6 ISL)] | ||

+ | |- | ||

+ | |05/04/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Stefano Samele || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=9590e7a825a10a2acbc3bcab8823147e Multivariate Linear Regression Laboratory] | ||

+ | |- | ||

+ | |06/04/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=500b262bde8449ea20fa773e77599045 Classification: KNN and Logistic Regression (Ch. 4 ISL + Ch. 4 ESL)] | ||

+ | |- | ||

+ | |12/04/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Stefano Samele || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e5f11a68949fcfef7436fd2f92be1b8d Generalized Linear Regression and Feature Selection Laboratory (Part 1)] [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a3a13d25920209bcd19105b5da467c04 (Part 2)] | ||

+ | |- | ||

+ | |13/04/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4ed6b806fed8f42bb6e1b1e39d99803b Classification: Logistic Regression (Ch. 4 ISL + Ch. 4 ESL)] | ||

+ | |- | ||

+ | |19/04/2023 || Wednesday || 15:15-18:15 || 25.1.3 ||-- || -- || -- Prove Itinere -- | ||

+ | |- | ||

+ | |20/04/2023 || Thursday || 12:15 - 14:15 || B6.4 || -- || -- || -- Prove Itinere -- | ||

+ | |- | ||

+ | |26/04/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=30455e554c7945917ccdaf9e97fa02bd Classification: Linear Discriminanr Analysis (Ch. 4 ISL)] | ||

+ | |- | ||

+ | |27/04/2023 || Thursday || 12:15 - 14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=1c999fbf226a7c834db815ac3db16663 Evaluation methods for classification] | ||

+ | |- | ||

+ | |03/05/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Stefano Samele || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d289b3bd788dc2e51511426826370f96 Logistic Regression and LDA Laboratory] | ||

+ | |- | ||

+ | |04/05/2023 || Thursday || 12:15-14:15 || B6.4 || -- || -- || -- Graduation -- | ||

+ | |- | ||

+ | |10/05/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=b72183c179103507ba83026ef78e4fdb The Perceptron (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL)] | ||

+ | |- | ||

+ | |11/05/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=e5fe09884a24cd79e3a82949b6622623 Support Vector Machines (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL)] | ||

+ | |- | ||

+ | |17/05/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=9aeb20c029ec62d95ee3606fec228b2e Unsupervised Learning and Clustering (Ch. 10 ISL)] | ||

+ | |- | ||

+ | |18/05/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=f0e15b55876fd5294c60f4120717f844 Clustering (Ch. 10 ISL)] | ||

+ | |- | ||

+ | |24/05/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Stefano Samele || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=77f47e3fa63844aab79155bc67c8307c SVM and Classifiers Evaluation Laboratory Clustering Laboratory] | ||

+ | |- | ||

+ | |25/05/2023 || Thursday || 12:15-14:15 || B6.4 || -- || -- || -- No Lecture -- | ||

+ | |- | ||

+ | |31/05/2023 || Wednesday || 15:15-18:15 || 25.1.3 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=2861ce3254fb3fa0c1572f5cb2f1a3dd Clustering (Ch. 10 ISL) + Clustering Evaluation] | ||

+ | |- | ||

+ | |01/06/2023 || Thursday || 12:15-14:15 || B6.4 || Matteo Matteucci || Lecture || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4b2c7298878aaf7ffc2f767c5c588a66 Principal Component Analysis] | ||

+ | |- | ||

+ | |07/06/2023 || Wednesday || 15:15-18:15 || 25.0.1 || Stefano Samele || Python Laboratory || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=8353e217225b156a1d60e7cf517ee6b1 Clustering Laboratory] | ||

+ | |- | ||

+ | |08/06/2023 || Thursday || 12:15-14:15 || 25.0.1 || Matteo Matteucci || Lecture || Question and Answers | ||

+ | |} | ||

+ | <!-- | ||

+ | {| border="1" align="center" style="text-align:center;" | ||

+ | |- | ||

+ | |Date || Day || Time || Room || Teacher || Type || Topic | ||

+ | |- | ||

+ | |23/02/2022 || Wednesday || 15:15-18:15 || 26.02 || Matteo Matteucci || Lecture || Machine Learning Intro | ||

+ | |- | ||

+ | |24/02/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Statistical Learning Theory (Ch. 1 ISL) | ||

+ | |- | ||

+ | |02/03/2022 || Wednesday || 15:15-18:15 || 26.02 || Matteo Matteucci || Lecture || Statistical Learning Theory - Bias/Variance Trade-off (Ch. 2 ISL) | ||

+ | |- | ||

+ | |03/03/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Introduction to Linear Algebra | ||

+ | |- | ||

+ | |09/03/2022 || Wednesday || 15:15-18:15 || 26.02 || Stefano Samele || Python Laboratory || Python + Numpy + Bias/Variance | ||

+ | |- | ||

+ | |10/03/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Simple Linear Regression (Ch. 2 ISL + Ch. 3 ISL) | ||

+ | |- | ||

+ | |16/03/2022 || Wednesday || 15:15-18:15 || 26.02 || Matteo Matteucci || Lecture || Multi Variate Linear Regression (Ch. 2 ISL + Ch. 3 ISL) | ||

+ | |- | ||

+ | |17/03/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Multi Variate Linear Regression] (Ch. 2 ISL + Ch. 3 ISL) | ||

+ | |- | ||

+ | |23/03/2022 || Wednesday || 15:15-18:15 || 26.02 || Stefano Samele || Python Laboratory || Multivariate Linear Regression Laboratory | ||

+ | |- | ||

+ | |24/03/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Generalized Linear Regression (Ch. 2 ISL + Ch. 3 ISL) | ||

+ | |- | ||

+ | |30/03/2022 || Wednesday || 15:15-18:15 || 26.02 || Matteo Matteucci || Lecture || Feature Selection and Model Assessment (Ch. 3 + Ch. 6 ISL) | ||

+ | |- | ||

+ | |31/03/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Ridge Regression and Lasso (Ch. 3 + Ch. 6 ISL) | ||

+ | |- | ||

+ | |06/04/2022 || Wednesday || 15:15-18:15 || 26.02 || Stefano Samele || Python Laboratory || Generalized Linear Regression and Feature Selection Laboratory | ||

+ | |- | ||

+ | |07/04/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Classification: KNN and Logistic Regression (Ch. 4 ISL + Ch. 4 ESL) | ||

+ | |- | ||

+ | |13/04/2022 || Wednesday || --- || --- || --- || --- || --- No Lecture --- | ||

+ | |- | ||

+ | |14/04/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Classification: Logistic Regression (Ch. 4 ISL + Ch. 4 ESL) | ||

+ | |- | ||

+ | |20/04/2022 || Wednesday || 15:15-18:15 || 26.02 ||Matteo Matteucci || Lecture || Classification: Linear Discriminanr Analysis (Ch. 4 ISL) | ||

+ | |- | ||

+ | |21/04/2022 || Thursday || 12:15 - 14:15 || 26.01 || Matteo Matteucci || Lecture || Evaluation methods for classification | ||

+ | |- | ||

+ | |27/04/2022 || Wednesday || 15:15-18:15 || 26.02 || Stefano Samele || Python Laboratory || Logistic Regression and LDA Laboratory | ||

+ | |- | ||

+ | |28/04/2022 || Thursday || --- || --- || --- || --- || --- No Lecture --- | ||

+ | |- | ||

+ | |04/05/2022 || Wednesday || 15:15-18:15 || 26.02 || Matteo Matteucci || Lecture || The Perceptron (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL) | ||

+ | |- | ||

+ | |06/05/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Support Vector Machines (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL) | ||

+ | |- | ||

+ | |11/05/2022 || Wednesday || 15:15-18:15 || 26.02 || Matteo Matteucci || Lecture || Unsupervised Learning and Clustering (Ch. 10 ISL) | ||

+ | |- | ||

+ | |12/05/2022 || Thursday || 12:15-14:15 || 26.01 || Matteo Matteucci || Lecture || Clustering (Ch. 10 ISL) | ||

+ | |- | ||

+ | |18/05/2022 || Wednesday || 15:15-18:15 || 26.02 || Stefano Samele || Python Laboratory || SVM and Classifiers Evaluation Laboratory | ||

+ | |- | ||

+ | |19/05/2022 || Thursday || --- || --- || --- || --- || --- No Lecture --- | ||

+ | |- | ||

+ | |25/05/2022 || Wednesday || 15:15-18:15 || 26.02 || Stefano Samele || Python Laboratory || Clustering Laboratory | ||

+ | |- | ||

+ | |26/05/2022 || Thursday || --- || --- || --- || --- || --- No Lecture --- | ||

+ | |- | ||

+ | |01/06/2022 || Wednesday || 15:15-18:15 || 26.02 || Matteo Matteucci || Lecture || Clustering Evaluation | ||

+ | |- | ||

+ | |02/06/2022 || Thursday || --- || --- || --- || --- || --- No Lecture --- | ||

+ | |- | ||

+ | |03/06/2022 || Friday || 14:00-16:00 || Online || Matteo Matteucci || Lecture || Principal Component Analysis (Ch. 10 ISL) | ||

+ | |} | ||

+ | --> | ||

+ | <!-- | ||

+ | {| 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;" | ||

|- | |- | ||

Line 81: | Line 330: | ||

|30/04/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/a171bc2a-35e7-42c7-bdd0-d295ecfd7e26 Classification by Linear Discriminant Analysis] (Ch. 4 ISL) | |30/04/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/a171bc2a-35e7-42c7-bdd0-d295ecfd7e26 Classification by Linear Discriminant Analysis] (Ch. 4 ISL) | ||

|- | |- | ||

− | |06/05/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Practice || Marco Cannici || [https://web.microsoftstream.com/video/cef18863-e3fd-481e-bcad-a18455796fd7 Classification via Logistic Regression, and LDA (Part 1)] [https://web.microsoftstream.com/video/670b7f72-5b6b-4168-9f1c-211a9ad25f48 (Part 2)] | + | |06/05/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Practice || Marco Cannici || [https://web.microsoftstream.com/video/cef18863-e3fd-481e-bcad-a18455796fd7 Classification via Logistic Regression, and LDA Laboratory (Part 1)] and [https://web.microsoftstream.com/video/670b7f72-5b6b-4168-9f1c-211a9ad25f48 (Part 2)] |

|- | |- | ||

|07/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/b2ed8ca0-c0c0-4c1a-836d-b2ffee20d85e Evaluation Methods for Classification] | |07/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/b2ed8ca0-c0c0-4c1a-836d-b2ffee20d85e Evaluation Methods for Classification] | ||

Line 89: | Line 338: | ||

|14/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/b72fa8de-f98d-43cf-9609-5833625a4b5c Support Vector Machines and Kernel Trick] (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL) | |14/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/b72fa8de-f98d-43cf-9609-5833625a4b5c Support Vector Machines and Kernel Trick] (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL) | ||

|- | |- | ||

− | |20/05/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Practice || Marco Cannici || Classification (SVM and classifiers evaluation) Laboratory | + | |20/05/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Practice || Marco Cannici || [https://web.microsoftstream.com/video/fab1f62e-cea0-4cc9-9366-0ccd6bcd161b Classification (SVM and classifiers evaluation) Laboratory (Part 1)] and [https://web.microsoftstream.com/video/130b806d-5390-4321-9d05-f63e079f30a1 (Part 2)] |

|- | |- | ||

− | |21/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || Introduction to Unsupervised Learning | + | |21/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/1125b85e-f4a1-49d1-991f-333fff893a1e Introduction to Unsupervised Learning] (Ch. 10 ISL) |

|- | |- | ||

− | |27/05/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Theory || Matteo Matteucci || Clustering | + | |27/05/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/d8d0efb5-adfb-4376-afe3-26afb7ffd664 Clustering: Hierachical, k-means, and DBSCAN (Part 1)] and [https://web.microsoftstream.com/video/b7307896-bff7-4fd0-973f-d37fd7f91e13 (Part 2)] (Ch. 10 ISL) |

|- | |- | ||

− | |28/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || Clustering | + | |28/05/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/3f2975c2-1143-4870-8aed-a1a06382be14 Clustering Evaluation] (Ch. 10 ISL) |

|- | |- | ||

|03/06/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Practice || Marco Cannici || [https://web.microsoftstream.com/video/0fa04b48-f8c3-488b-bfab-92547d3a9c38 Clustering Laboratory (Part 1)] and [https://web.microsoftstream.com/video/24a40515-afdd-4cca-9b62-19e544c7e12e (Part 2)] | |03/06/2020 || Wednesday || 14:15 - 17:15 || Teams Virtual Class || Practice || Marco Cannici || [https://web.microsoftstream.com/video/0fa04b48-f8c3-488b-bfab-92547d3a9c38 Clustering Laboratory (Part 1)] and [https://web.microsoftstream.com/video/24a40515-afdd-4cca-9b62-19e544c7e12e (Part 2)] | ||

|- | |- | ||

− | |04/06/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || Principal Component Analysis | + | |04/06/2020 || Thursday || 08:15 - 10:15 || Teams Virtual Class || Theory || Matteo Matteucci || [https://web.microsoftstream.com/video/f58132ba-afd3-47ce-89c8-ba16782d8f37 Principal Component Analysis] (Ch. 10 ISL) |

|} | |} | ||

+ | --> | ||

<!-- | <!-- | ||

|- | |- | ||

Line 131: | Line 381: | ||

* HW: Homework with exercises covering the whole program (up to 6 points) | * 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 | + | 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 [[Media:ML2021-Conversion.pdf|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. |

+ | |||

+ | ====Notes about oral exams==== | ||

+ | |||

+ | Oral exams will happen either on the day of the exam indicated by the information system of the university or one of the followings. Once registrations are closed, I will send you an online document with the slots available for the oral exam and you will have to select your preferred slot. I usually interview two people at a time and the slot is 1 hour. | ||

+ | |||

+ | At [https://docs.google.com/document/d/14_K0CcyjRcZXJWBE5WwhsadL3cTUjc5__1x2nDL_G7E/edit?usp=sharing this link] you can find a detailed syllabus of the course you can use to double-check your preparation before the oral exam ;-) | ||

+ | |||

+ | ====Homework 2022/2023==== | ||

+ | |||

+ | This year [[Media:ML-2223-HW.zip | Homework]] is based on the Online Shoppers Purchasing Intention dataset and aims to build a classification model that can predict whether or not an online shopper has the intention to make a purchase. You will have to go through regression, classification and clustering tho ... | ||

+ | |||

+ | Deadline: 31/07/2023 | ||

+ | |||

+ | <!-- | ||

+ | ====Homework #1 2021/2022==== | ||

+ | |||

+ | The first project asks you to develop a regression model on the [[Media:ML-2122-HW1.zip | Forest Fires Data Set]]. The goal of the model is to predict, given a set of features the burned area of forest fires. The project should focus on investigating the part of features selection for the regression task to understand the relationships between the different variables involved fully. | ||

+ | An accurate and helpful description of the dataset is included in the forestfire.names file. | ||

+ | |||

+ | The project should consist of an executable python notebook, sufficiently commented. Most of the cells should be adequately followed or preceded by an explanation of what you are doing, why, what the output is, how you interpret it, and so on. | ||

+ | |||

+ | You can submit your notebook via email at stefano.samele@polimi.it. The deadline is 11/05/22 at midday CET. | ||

+ | The notebook should already display all the cells' outputs. A copy and a re-execution will be performed to evaluate your work: we need to be sure your code is actually executable and displays consistent results. | ||

+ | |||

+ | You can attend the project in a group of maximum two. Scores (0-1-2, with half points) will be assigned based on the ability to organize the investigation and the code, adopt relevant methodologies presented during laboratories, understand and interpret results, and comply with project requests. | ||

+ | |||

+ | ====Homework #2 2021/2022==== | ||

+ | |||

+ | The second project asks you to develop a classification model for the <s>Autism Screening Adult Data Set</s> [[Media:ML-2122-HW2.2.zip | Breast Cancer Wisconsin Dataset]]. The task consists in predicting whether the patient is affected by an Autistic Spectrum Disorder, based on a set of specific features. The goal of the project is to build, given the set of models explained during the laboratories, the best fit for the task. | ||

+ | |||

+ | You can submit your notebook via email at stefano.samele@polimi.it. The deadline is <s>01/06/22</s> 03/06/22 at midday CET. | ||

+ | Please rename your file as name_surname_stuedentidnumber. | ||

+ | |||

+ | For any other information please refer to the previous project announcement. | ||

+ | |||

+ | ====Homework #3 2021/2022==== | ||

+ | |||

+ | The third project asks you to investigate the [https://archive.ics.uci.edu/ml/datasets/Mice+Protein+Expression Mice Protein Expression Dataset]. This dataset consists of the expression levels of 77 proteins/protein modifications that produced detectable signals in the nuclear fraction of cortex in response to learning processes. These proteins expression levels are registered for eight classes of different mice (for a better explanation, you can check the official UCI page or the [https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0129126 following paper]). | ||

+ | |||

+ | The objectives are: | ||

+ | 1) Study with clustering techniques seen during laboratories if there are structures in the data that allow samples from different classes to be easily identified; | ||

+ | 2) Compare the performance of different clustering algorithms using the metrics presented during the course. | ||

+ | |||

+ | You can submit your notebook via email at stefano.samele@polimi.it. The deadline is 28/06/22 at midday CET. Please rename your file as name_surname_stuedentidnumber. | ||

+ | Please remember that the only submission format accepted is the jupyter notebook. | ||

+ | For any other information, please refer to the previous projects announcements. | ||

+ | --> | ||

==Teaching Material (the textbook)== | ==Teaching Material (the textbook)== | ||

Line 151: | Line 448: | ||

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

− | + | * [[Media:ML-2020-A0-LinearAlgebraBasics.pdf | [2020/2021] Linear Algebra Basics]]: Basic elements of linear algebra, e.g., vectors, matrices, basis, span, etc. | |

− | * [[Media:ML- | + | * [[Media:ML-2122-00-Intro.pdf | [2021/2022] 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. |

− | * [[Media:ML- | + | * [[Media:ML-2122-01-StatisticalLearning.pdf | [2021/2022] Statistical Learning Introduction]]: Statistical Learning definition, rationale, and trade-offs (e.g., prediction vs. inference, parametric vs non parametric models, flexibility vs. interpretability, etc.) |

− | * [[Media:ML- | + | * [[Media:ML-2122-02-LinearRegression.pdf | [2021/2022] Linear Regression]]: Simple Linear Regression and Multiple Linear Regression. Generalized Linear models. Cross-validation techniques. Feature selection. Ridge Regression and Lasso. |

− | * [[Media:ML- | + | * [[Media:ML-2122-03-LinearClassification.pdf | [2021/2022] 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. |

+ | * [[Media:ML-2122-04-Clustering.pdf | [2021/2022] Clustering]]: Introduction to unsupervised learning and clustering, hierarchical clustering, k-means, DBSCNA, indexes for clustering evaluation. | ||

+ | * [[Media:ML-2122-05-PrincipalComponentAnalysis.pdf | [2021/2022] Principal Component Analysis]]: Principal Component Analysis, Geometric Interpretation, Singular Values Decomposition ([https://politecnicomilano.webex.com/webappng/sites/politecnicomilano/recording/720e97cac563103abcff005056821bc9/playback Here you find the video of the lecture]]). | ||

− | Laboratories: | + | ===Laboratories=== |

− | *[[Media: | + | |

− | *[[Media: | + | 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 [https://www.anaconda.com/products/individual download links]. You can find a simple Jupyter notebook [[Media:ML2021-test.zip | HERE]] to test if the installation succeeded. |

− | *[[Media: | + | |

− | *[[Media: | + | To open the notebook |

− | *[[Media: | + | * launch the "Anaconda Navigator" app |

− | *[[Media: | + | * 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: | ||

+ | *[[Media:ML2223-lab01.zip | [2022/2023] Material for the first lab session]]: some useful jupiter notebooks which will be used during the first lab session including the testing environment ([[Media:ML2223-lab01_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2223-lab02.zip | [2022/2023] Material for the second lab session]]: some useful jupiter notebooks which will be used during the second lab session ([[Media:ML2223-lab02_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2223-lab03.zip | [2022/2023] Material for the third lab session]]: some useful jupiter notebooks which will be used during the third lab session ([[Media:ML2223-lab03_solutions_part1.zip |complete version]]) | ||

+ | *[[Media:ML2223-lab04.zip | [2022/2023] Material for the fourth lab session]]: some useful jupiter notebooks which will be used during the fourth lab session ([[Media:ML2223-lab04_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2223-lab05.zip | [2022/2023] Material for the fifth lab session]]: some useful jupiter notebooks which will be used during the fifth lab session ([[Media:ML2223-lab05_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2223-lab06.zip | [2022/2023] Material for the sixth lab session]]: some useful jupiter notebooks which will be used during the sixth lab session ([[Media:ML2223-lab06_solutions.zip |complete version]]) | ||

+ | |||

+ | <!-- | ||

+ | *[[Media:ML2021-lab01.zip | [2020/2021] Material for the first lab session]]: some useful jupiter notebooks which will be used during the first lab session ([[Media:ML2021-lab01_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2021-lab02.zip | [2020/2021] Material for the second lab session]]: some useful jupiter notebooks which will be used during the second lab session ([[Media:ML2021-lab02_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2021-lab03.zip | [2020/2021] Material for the third lab session]]: some useful jupiter notebooks which will be used during the third lab session ([[Media:ML2021-lab03_solutions_tmp.zip |complete version]]) | ||

+ | *[[Media:ML2021-lab04.zip | [2020/2021] Material for the fourth lab session]]: some useful jupiter notebooks which will be used during the fourth lab session ([[Media:ML2021-lab04_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2021-lab05.zip | [2020/2021] Material for the fifth lab session]]: some useful jupiter notebooks which will be used during the fourth lab session ([[Media:ML2021-lab05_solutions.zip |complete version]]) | ||

+ | *[[Media:ML2021-lab06.zip | [2020/2021] Material for the sixth lab session]]: some useful jupiter notebooks which will be used during the fourth lab session ([[Media:ML2021-lab06_solutions.zip |complete version]]) | ||

+ | --> | ||

<!-- | <!-- | ||

* [[Media:ML-2016-03-AssessingModelAccuracy.pdf | [2016] Statistical Learning and Model Assessment]]: Model Assessment for Regression and Classification, Bias-Variance trade-off, Model complexity and overfitting, K-Nearest Neighbors Classifier vs. Bayes Classifier. | * [[Media:ML-2016-03-AssessingModelAccuracy.pdf | [2016] Statistical Learning and Model Assessment]]: Model Assessment for Regression and Classification, Bias-Variance trade-off, Model complexity and overfitting, K-Nearest Neighbors Classifier vs. Bayes Classifier. | ||

Line 178: | Line 502: | ||

* [http://www.onmyphd.com/?p=kkt.karush.kuhn.tucker Karush Kuhn Tucker Conditions]: a short note on their meaning with references to relevant wikipedia pages | * [http://www.onmyphd.com/?p=kkt.karush.kuhn.tucker Karush Kuhn Tucker Conditions]: a short note on their meaning with references to relevant wikipedia pages | ||

* [http://students.brown.edu/seeing-theory/ Seeing Theory]: a website where the basic concepts of probability and statistics are explained in a visual way. | * [http://students.brown.edu/seeing-theory/ 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 | ||

+ | * [https://github.com/Kyubyong/numpy_exercises Some numpy exercises], we did roughly 1, 2, 4, 6, 9, 10, 13 | ||

+ | * [https://github.com/rougier/numpy-100 Othen numpy exercises] from simple to complex | ||

+ | * [https://www.w3resource.com/python-exercises/numpy/index-array.php More numpy exercises] from simple to complex | ||

+ | |||

+ | ===Year 2020/2021 Recordings (use at your own risk)=== | ||

+ | |||

+ | As I registered these due to pandemics, I am making them available. They DO NOT REPLACE THIS YEAR classroom lectures which are to be considered as the official material of this year, but they might be useful to double-check your notes. | ||

+ | |||

+ | * 24/02/2021 - Matteo Matteucci [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 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4c08d5e9abe442b9b872403b2ac43eaf Statistical Learning Theory] | ||

+ | * 03/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=7aa687ab4a874b86a3cda60a6f76e8fc Statistical Learning Theory - Bias/Variance Trade-off] | ||

+ | * 04/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=52a29db7ac824b27a78ee33c73b71f83 Introduction to Linear Algebra] | ||

+ | * 10/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=0f8a69033d324e1d8601e02f4e3e7df1 Simple Linear Regression] | ||

+ | * 18/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=653ddf65302e4312bc7c532bfae4f720 Multi Variate Linear Regression] | ||

+ | * 25/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=9788f3a243f8496fb30f8bac9abf7ef4 Generalized Linear Regression] | ||

+ | * 31/03/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=4d48804210294afabb1e1a3aa0f8913f Feature Selection and Model Assessment] | ||

+ | * 01/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=592c0fd5e42a4b039ff228561aacedd1 Ridge Regression and Lasso] | ||

+ | * 08/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=34633f7cadfb49c6ba8b4b1dc4467646 Classification: KNN and Logistic Regression] | ||

+ | * 14/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=872ac30ecccb40eb9f62ec52e181d027 Classification: Logistic Regression] | ||

+ | * 15/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d2ddca82f5ab4de98bda786e6eb2e9b9 Classification: Linear Discriminanr Analysis] | ||

+ | * 29/04/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=76439012d78a425eab1ab550601c4700 Evaluation methods for classification] | ||

+ | * 06/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ca8305b65ee247e28d8cae0dc6c8582f The Perceptron] | ||

+ | * 12/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=fec02aafdb55405ca03dc756e2b95a47 Support Vector Machines] | ||

+ | * 13/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=cf975d329332417582e0383d2f3bbc67 Unsupervised Learning and Clustering] | ||

+ | * 20/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d0a9deddbd2d4cf8a30c74159ba453cb Clustering] | ||

+ | * 27/05/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=dfbeb4acf10b418a8fdc18cbd79ac742 Clustering] | ||

+ | * 03/06/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=26d10f88d441aa3f499d99f0e9c1b82d Clustering Evaluation] | ||

+ | * 04/06/2021 - Matteo Matteucci [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=31466d593b12e2239a65f45841ab71d4 Principal Component Analysis] | ||

+ | |||

+ | Also, labs are available, however, the teaching assistant this year has changed. | ||

+ | |||

+ | * 17/03/2021 - Marco Cannici [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=83b0b99a801d2079368067d0af5fac6b Python + Numpy + Bias/Variance] | ||

+ | * 24/03/2021 - Marco Cannici [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=6a5da10f8b6fe5e8dab98d1f4726ced6 Multivariate Linear Regression Laboratory] | ||

+ | * 07/04/2021 - Marco Cannici [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=bd67b7220eb4bd6997ccd034b229b9a8 Generalized Linear Regression and Feature Selection Laboratory] | ||

+ | * 05/05/2021 - Marco Cannici [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)] | ||

+ | * 19/05/2021 - Marco Cannici [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ad0c6db58013cc99272e921facb51b57 SVM and Classifiers Evaluation Laboratory] | ||

+ | * 26/05/2021 - Marco Cannici [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=cd817e862eb56acf02c09be413f915a1 Clustering Laboratory] | ||

+ | |||

<!-- | <!-- | ||

===Past Exams and Sample Questions=== | ===Past Exams and Sample Questions=== | ||

Line 188: | Line 552: | ||

* [[Media:2016_09_28_PAMI.pdf |28/09/2016 PAMI Exam]] | * [[Media:2016_09_28_PAMI.pdf |28/09/2016 PAMI Exam]] | ||

--> | --> | ||

− | |||

===Online Resources=== | ===Online Resources=== | ||

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

+ | * [https://towardsdatascience.com/linear-algebra-survival-kit-for-machine-learning-94901a62465e An Introduction to Linear Algebra] with numpy examples. It provides the very fundamental definitions, does not cover eigenvalues and eigenvectors. | ||

* [https://www.r-bloggers.com/in-depth-introduction-to-machine-learning-in-15-hours-of-expert-videos/ Statistical Learning MOOC] covering the entire ISL book offered by Trevor Hastie and Rob Tibshirani. Start anytime in self-paced mode. | * [https://www.r-bloggers.com/in-depth-introduction-to-machine-learning-in-15-hours-of-expert-videos/ Statistical Learning MOOC] covering the entire ISL book offered by Trevor Hastie and Rob Tibshirani. Start anytime in self-paced mode. | ||

* [http://math.arizona.edu/~hzhang/math574m.html 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'') | * [http://math.arizona.edu/~hzhang/math574m.html 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'') | ||

Line 294: | Line 658: | ||

== 2012 Homework == | == 2012 Homework == | ||

− | |||

The Homework of 2012 organized like an octave/matlab series of tutorials. You are requested to go through the tutorials and practice with the algorithms that have been presented in class. To prove us you have done it and that you have understood the code you will be requested to solve few exercises and provide us a pdf report by email | The Homework of 2012 organized like an octave/matlab series of tutorials. You are requested to go through the tutorials and practice with the algorithms that have been presented in class. To prove us you have done it and that you have understood the code you will be requested to solve few exercises and provide us a pdf report by email |

## Latest revision as of 07:56, 8 June 2023

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

* 31/05/2023: Check the change of classroom for the last two lectures of the course!! * 03/05/2023: Homework project published * 15/03/2023: Material for first lab published * 03/03/2023: Lecture schedule updated ... also with recordings * 22/02/2023: Added link to the lecture recording * 22/02/2023: 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.

- Matteo Matteucci: the course teacher
- Stefano Samele: the teaching assistant

### Course Program

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

- An Introduction to Statistical Learning with Applications in R by Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani

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 25.1.3, starts at 15:15 (cum tempore), ends at 18:15 * On Thursday, in room B6.4, starts at 12:15 (cum tempore), ends at 14:15

Date | Day | Time | Room | Teacher | Type | Topic |

22/02/2022 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Machine Learning Intro |

23/02/2023 | Thursday | 12:15-14:15 | B6.4 | Stefano Samele | Lecture | Introduction to Linear Algebra |

01/03/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Statistical Learning Theory (Ch. 1 ISL) |

02/03/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Statistical Learning Theory - Bias/Variance Trade-off (Ch. 2 ISL) |

08/03/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Simple Linear Regression (Ch. 2 ISL + Ch. 3 ISL) |

09/03/2023 | Thursday | 12:15-14:15 | B6.4 | -- | -- | -- No Lecture -- |

15/03/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Stefano Samele | Python Laboratory | Python + Numpy + Bias/Variance |

16/03/2023 | Thursday | 12:15-14:15 | B6.4 | -- | -- | -- No Lecture -- |

22/03/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Multi Variate Linear Regression (Ch. 2 ISL + Ch. 3 ISL) |

23/03/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Multi Variate Linear Regression (Ch. 2 ISL + Ch. 3 ISL) |

29/03/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Generalized Linear Regression (Ch. 2 ISL + Ch. 3 ISL) |

30/03/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Feature Selection, Ridge Regression and Lasso (Ch. 3 + Ch. 6 ISL) |

05/04/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Stefano Samele | Python Laboratory | Multivariate Linear Regression Laboratory |

06/04/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Classification: KNN and Logistic Regression (Ch. 4 ISL + Ch. 4 ESL) |

12/04/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Stefano Samele | Python Laboratory | Generalized Linear Regression and Feature Selection Laboratory (Part 1) (Part 2) |

13/04/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Classification: Logistic Regression (Ch. 4 ISL + Ch. 4 ESL) |

19/04/2023 | Wednesday | 15:15-18:15 | 25.1.3 | -- | -- | -- Prove Itinere -- |

20/04/2023 | Thursday | 12:15 - 14:15 | B6.4 | -- | -- | -- Prove Itinere -- |

26/04/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Classification: Linear Discriminanr Analysis (Ch. 4 ISL) |

27/04/2023 | Thursday | 12:15 - 14:15 | B6.4 | Matteo Matteucci | Lecture | Evaluation methods for classification |

03/05/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Stefano Samele | Python Laboratory | Logistic Regression and LDA Laboratory |

04/05/2023 | Thursday | 12:15-14:15 | B6.4 | -- | -- | -- Graduation -- |

10/05/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | The Perceptron (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL) |

11/05/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Support Vector Machines (Ch. 4 ESL, Ch. 9 ISL, Ch. 12 ESL) |

17/05/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Unsupervised Learning and Clustering (Ch. 10 ISL) |

18/05/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Clustering (Ch. 10 ISL) |

24/05/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Stefano Samele | Python Laboratory | SVM and Classifiers Evaluation Laboratory Clustering Laboratory |

25/05/2023 | Thursday | 12:15-14:15 | B6.4 | -- | -- | -- No Lecture -- |

31/05/2023 | Wednesday | 15:15-18:15 | 25.1.3 | Matteo Matteucci | Lecture | Clustering (Ch. 10 ISL) + Clustering Evaluation |

01/06/2023 | Thursday | 12:15-14:15 | B6.4 | Matteo Matteucci | Lecture | Principal Component Analysis |

07/06/2023 | Wednesday | 15:15-18:15 | 25.0.1 | Stefano Samele | Python Laboratory | Clustering Laboratory |

08/06/2023 | Thursday | 12:15-14:15 | 25.0.1 | Matteo Matteucci | Lecture | Question and Answers |

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.

#### Notes about oral exams

Oral exams will happen either on the day of the exam indicated by the information system of the university or one of the followings. Once registrations are closed, I will send you an online document with the slots available for the oral exam and you will have to select your preferred slot. I usually interview two people at a time and the slot is 1 hour.

At this link you can find a detailed syllabus of the course you can use to double-check your preparation before the oral exam ;-)

#### Homework 2022/2023

This year Homework is based on the Online Shoppers Purchasing Intention dataset and aims to build a classification model that can predict whether or not an online shopper has the intention to make a purchase. You will have to go through regression, classification and clustering tho ...

Deadline: 31/07/2023

## Teaching Material (the textbook)

Lectures will be based on material taken from the book.

- An Introduction to Statistical Learning with Applications in R by Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani

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

- The Elements of Statistical Learning: Data Mining, Inference, and Prediction. by Trevor Hastie, Robert Tibshirani, and Jerome Friedman.

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.
- [2021/2022] 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.
- [2021/2022] Statistical Learning Introduction: Statistical Learning definition, rationale, and trade-offs (e.g., prediction vs. inference, parametric vs non parametric models, flexibility vs. interpretability, etc.)
- [2021/2022] Linear Regression: Simple Linear Regression and Multiple Linear Regression. Generalized Linear models. Cross-validation techniques. Feature selection. Ridge Regression and Lasso.
- [2021/2022] 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.
- [2021/2022] Clustering: Introduction to unsupervised learning and clustering, hierarchical clustering, k-means, DBSCNA, indexes for clustering evaluation.
- [2021/2022] Principal Component Analysis: Principal Component Analysis, Geometric Interpretation, Singular Values Decomposition (Here you find the video of the lecture]).

### 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:

- [2022/2023] Material for the first lab session: some useful jupiter notebooks which will be used during the first lab session including the testing environment (complete version)
- [2022/2023] Material for the second lab session: some useful jupiter notebooks which will be used during the second lab session (complete version)
- [2022/2023] Material for the third lab session: some useful jupiter notebooks which will be used during the third lab session (complete version)
- [2022/2023] Material for the fourth lab session: some useful jupiter notebooks which will be used during the fourth lab session (complete version)
- [2022/2023] Material for the fifth lab session: some useful jupiter notebooks which will be used during the fifth lab session (complete version)
- [2022/2023] Material for the sixth lab session: some useful jupiter notebooks which will be used during the sixth lab session (complete version)

### 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

- Some numpy exercises, we did roughly 1, 2, 4, 6, 9, 10, 13
- Othen numpy exercises from simple to complex
- More numpy exercises from simple to complex

### Year 2020/2021 Recordings (use at your own risk)

As I registered these due to pandemics, I am making them available. They DO NOT REPLACE THIS YEAR classroom lectures which are to be considered as the official material of this year, but they might be useful to double-check your notes.

- 24/02/2021 - Matteo Matteucci Course Intro + Machine Learning Intro
- 25/02/2021 - Matteo Matteucci Statistical Learning Theory
- 03/03/2021 - Matteo Matteucci Statistical Learning Theory - Bias/Variance Trade-off
- 04/03/2021 - Matteo Matteucci Introduction to Linear Algebra
- 10/03/2021 - Matteo Matteucci Simple Linear Regression
- 18/03/2021 - Matteo Matteucci Multi Variate Linear Regression
- 25/03/2021 - Matteo Matteucci Generalized Linear Regression
- 31/03/2021 - Matteo Matteucci Feature Selection and Model Assessment
- 01/04/2021 - Matteo Matteucci Ridge Regression and Lasso
- 08/04/2021 - Matteo Matteucci Classification: KNN and Logistic Regression
- 14/04/2021 - Matteo Matteucci Classification: Logistic Regression
- 15/04/2021 - Matteo Matteucci Classification: Linear Discriminanr Analysis
- 29/04/2021 - Matteo Matteucci Evaluation methods for classification
- 06/05/2021 - Matteo Matteucci The Perceptron
- 12/05/2021 - Matteo Matteucci Support Vector Machines
- 13/05/2021 - Matteo Matteucci Unsupervised Learning and Clustering
- 20/05/2021 - Matteo Matteucci Clustering
- 27/05/2021 - Matteo Matteucci Clustering
- 03/06/2021 - Matteo Matteucci Clustering Evaluation
- 04/06/2021 - Matteo Matteucci Principal Component Analysis

Also, labs are available, however, the teaching assistant this year has changed.

- 17/03/2021 - Marco Cannici Python + Numpy + Bias/Variance
- 24/03/2021 - Marco Cannici Multivariate Linear Regression Laboratory
- 07/04/2021 - Marco Cannici Generalized Linear Regression and Feature Selection Laboratory
- 05/05/2021 - Marco Cannici Logistic Regression and LDA Laboratory (Part 1)(Part 2)
- 19/05/2021 - Marco Cannici SVM and Classifiers Evaluation Laboratory
- 26/05/2021 - Marco Cannici Clustering Laboratory

### 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*)