Machine Learning (3 CFU module)
Module Description and Motivation
The objective of this 3 CFU module is to provide a general overview of the modern software libraries and programming techniques for Machine Learning and their applicability in ICT scenarios. In addition to the description of the foundations of Machine Learning, the module provides the necessary background in order to understand and apply Machine Learning approaches to classification, regression and clustering techniques to solve practical problems in different applicative scenarios by mean of neural networks and other learning techniques. At the end of the module students will be able to handle different Machine Learning models, to tune them to specific applications, and to design approaches that may scale with large amount of data.
Knowledge and understanding: to know the problems, methodologies and applications of Machine Learning techniques.
Applying knowledge and understanding: to implement different classification, regression and clustering algorithms to solve problems in different applicative scenarios.
Making judgements: to develop adequate critical skills through practical activities in implementing peculiar simulative algorithms and interpreting the obtained results.
Communication skills: to improve ability to critically expose the matters learned during the course.
Learning skills: to improve autonomous and independent study capacity.
Module Description and Motivation
The objective of this 3 CFU module is to provide a general overview of the modern software libraries and programming techniques for Machine Learning and their applicability in ICT scenarios. In addition to the description of the foundations of Machine Learning, the module provides the necessary background in order to understand and apply Machine Learning approaches to classification, regression and clustering techniques to solve practical problems in different applicative scenarios by mean of neural networks and other learning techniques. At the end of the module students will be able to handle different Machine Learning models, to tune them to specific applications, and to design approaches that may scale with large amount of data.
Knowledge and understanding: to know the problems, methodologies and applications of Machine Learning techniques.
Applying knowledge and understanding: to implement different classification, regression and clustering algorithms to solve problems in different applicative scenarios.
Making judgements: to develop adequate critical skills through practical activities in implementing peculiar simulative algorithms and interpreting the obtained results.
Communication skills: to improve ability to critically expose the matters learned during the course.
Learning skills: to improve autonomous and independent study capacity.
Scientific Sector (SSD)
ING-IND/31 (Electrical Engineering)
Overview and Credits
MCOR; First year; Second semester. 3 CFUs.
Prerequisites
Students are expected to have the following background:
Basic linear algebra
Basic optimization theory
Basic probability theory
Basic computer programming
Grading
Project.
Syllabus
Module overview
Introduction to Python.
Basics of Python programming.
Main Python libraries: NumPy, Matplotlib, and SciPy.
Data manipulation in Python: Pandas library.
Machine Learning in Python: scikit learn library.
Using scikit learn: data preparation.
Using scikit learn: model implementation, evaluation, and validation.
Understanding underfitting and overfitting.
Reproducible machine learning.
Complete project implementation.
Introduction to TensorFlow.
Suggested Books
Sebastian Raschka, Vahid Mirjalili, Python Machine Learning - Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow 2, Third Edition, Packt Publishing, 2019.
Sebastian Raschka, Vahid Mirjalili, Machine Learning con Python - Costruire algoritmi per generare conoscenza, Seconda edizione, Apogeo, 2020. (in Italian)
Naomi Ceder, The Quick Python Book, 3rd Edition, Manning, 2018.
Naomi Ceder, Python - Guida alla sintassi, alle funzionalità avanzate e all'analisi dei dati, Apogeo, 2019. (in Italian)
Matt Harrison, Machine Learning Pocket Reference: Working with Structured Data in Python, O'Reilly Media, 2019.
Jake VanderPlas, A Whirlwind Tour of Python, O'Reilly Media, 2016.
Jake VanderPlas, Python Data Science Handbook: Essential Tools for Working with Data, O'Reilly Media, 2016.
Aurélien Géron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, O'Reilly Media, 2nd edition, 2019.
Andreas C. Müller, Sarah Guido, Introduction to Machine Learning with Python, O'Reilly Media, 2016.
Joel Grus, Data Science from Scratch, O'Reilly Media, 2nd Edition, 2019.
François Chollet, Deep Learning with Python, 2nd Edition, Manning, 2021.
François Chollet, Deep Learning con Python - Imparare a implementare algoritmi di apprendimento profondo, Apogeo, 2020. (in Italian)
Lecture notes.
Time and Location
The module will start on February 28 2024, with the following schedule:
Wednesday, 09:15 - 12:00, Room 20
Office Hours
Every day by appointment.
Classroom
News, updates, and communications about the course will be available on Google Classroom, with the code: elwqdfg.
Course Materials
Lecture Slides:
Python Source Codes:
Lecture Notes:
Note
Exams Session
The project can be presented as soon as completed. For the formal exam registration on INFOSTUD platform, please contact Prof. Uncini.