Obiettivi formativi
Il corso intende fornire una conoscenza generale sulle principali metodologie e tecniche di Data Science e Data Engineering per lo sviluppo di applicativi atti all’elaborazione, storage ed analisi dei Big Data. In particolare, il corso ha l’obiettivo di fornire agli studenti abilità di problem-solving nell’ambito dell’analisi descrittiva e predittiva dei dati mediante lo sviluppo di sistemi intelligenti, la progettazione di modelli base di Machine Learning e di sistemi per l’elaborazione e storage di grandi quantità di dati.
Prerequisiti
Nessuna propedeucità.
Tuttavia, si consiglia l’apprendimento pregresso delle conoscenze base della programmazione procedurale e ad oggetti (in particolare Python) e matematiche per la comprensione del funzionamento delle tecniche tipiche dell’analisi inferenziale e descrittiva.
Contenuti dell'insegnamento
-Data Science e Business Intelligence
-Intelligenza artificiale
-Machine Learning
-Data Engineering
-Network Science
Programma esteso
Introduzione ai Big Data e ripasso di Python (3 ore)
1.1 Definizione di Big Data
1.2 Le ragioni di questo fenomeno
1.3 Datewarehouse vs ERP
1.4 Dati strutturati/Non strutturati
1.5 Cos’è la Data Science?
1.6 Programmazione procedurale e ad oggetti in Python
Business intelligence e data science (7 ore)
2.1 Definizioni
2.2 Il valore della conoscenza
2.3 Le sfide della Business Intelligence
2.4 I dati: la materia prima della BI
2.5 Business Intelligence vs Data Science
2.6 Data visualization
2.7 Analisi descrittiva e relative metriche
2.8 Analisi inferenziale
2.9 Python per la data analysis (Pandas, Numpy, Matplotlib, Scipy)
2.10 Esercitazione pratica sulla data analysis
Introduzione all’Intelligenza artificiale (6 ore)
3.1 AI debole vs AI forte : Test di Turing
3.2 Storia dell' AI
3.3 Tecniche di Intelligenza Artificiale: AI simbolica vs AI sub-simbolica
3.4 Costruzione di un IA: conoscenza e logica
3.5 Tecnologie semantiche
3.6 Ragionamento (induttivo) e apprendimento
3.7 Inferenza in IA: Dai sistemi esperti al machine learning simbolico
3.8 XAI: Black Box AI & Explainable A
Machine Learning e analisi inferenziale dei dati (18 ore)
4.1 Definizioni, dataset e tipologie di ML
4.2 Overfitting e underfitting
4.3 Regressione: metriche e regressione lineare
4.4 Esercitazione con Scikit-learn sulla regressione
4.5 Classificazione: metriche, regressione logistica e alberi decisionali
4.6 Esercitazione con Scikit-learn sui problemi di classificazione
4.7 Ensemble learning: Bagging e boosting (Adaboost, Gradient Boosting)
4.8 Gestione di un progetto di Machine Learning: tuning dei parametri. model comparison, tecniche di regularization
4.9 Esercitazione con Scikit-learn sull’ ensemble learning
4.10 Introduzione al Natural Language Processing: Bag of words, tokenization e tf-idf
4.11 Introduzione alle reti neurali: Multilayer Perceptron, Backpropagation e relativi iper-parametri
4.12 Esercitazione con Keras sulle reti neurali ed NLP
Data Engineering (6 ore)
5.1 Gestione dei Big Data
5.2 Database relazionali
5.3 Introduzione ai database NoSQL
5.4 Introduzione ad Hadoop e PySpark
Network Science per l’analisi dei dati (8 ore)
6.1 Definizioni
6.2 Modellare i dati con i grafi
6.3 Misure di centralità e di community detection
6.4 Feature per l’analisi dei grafi
6.5 NetworkX e Gephi per l’analisi dei grafi
6.6 Esercitazione pratica in laboratorio
Bibliografia
- A. Rezzani (2017). Big Data Analytics. Il manuale del data scientist. Maggioli Editore (Aopogeo Education).
- A. Geron. Hands-On Machine Learning With Scikit-Learn and Tensorflow: Concepts, Tools, and Techniques to Build Intelligent Systems
- A.Barabasi. Network Science
Metodi didattici
Lezioni frontali ed esercitazioni in laboratorio.
Le lezioni frontali copriranno gli aspetti teorici delle materie del corso.
Le esercitazioni pratiche legate a problemi reali saranno svolte in laboratorio
Modalità verifica apprendimento
Non ci sono prove intermedie.
L'esame si compone di due parti:
i) una prova scritta sugli argomenti teorici del corso trattati in classe con l'obiettivo di valutare la conoscenza acquisita su questi argomenti.
ii) una relazione scritta (e la sua presentazione orale) su un lavoro di progetto in modo da valutare la capacità di applicare le conoscenze acquisite durante il corso. In ogni caso, il valore della sua valutazione dipenderà anche dalla qualità dello sviluppo
sistema e la documentazione allegata.
L'esame è superato se, in ciascuna delle due parti, lo studente raggiunge almeno la sufficienza.
Il voto finale è una media ponderata delle due parti: prova scritta (60%) e progetto (40%).
La lode viene data in caso di raggiungimento del punteggio più alto su ambo due le parti.
Altre informazioni
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -