FONDAMENTI DI ANALISI DATI E LABORATORIOModulo LABORATORIO
Anno accademico 2026/2027 - Docente: ANTONINO FURNARIRisultati di apprendimento attesi
- Conoscenza e capacità di comprensione: Lo studente acquisirà la conoscenza dell'ecosistema di strumenti software per l'analisi dei dati in linguaggio Python e comprenderà come le tecniche presentate nel modulo teorico si traducono in operazioni concrete su dataset reali, quali parametri richiedono e quale forma assume il loro output.
- Capacità di applicare conoscenza e comprensione: Lo studente acquisirà competenze tecniche per la costruzione, la gestione e l'analisi di set di dati reali. Sarà in grado di caricare e ripulire un dataset, esplorarlo, produrre visualizzazioni appropriate, applicare le tecniche statistiche e i modelli predittivi studiati mediante le librerie di riferimento e valutare i risultati ottenuti, con l'obiettivo di costruire modelli e sistemi di supporto alle decisioni.
- Autonomia di giudizio: Lo studente sarà in grado di organizzare autonomamente un flusso di analisi su un dataset che non ha mai visto, scegliendo gli strumenti adeguati a ciascuna fase, interpretando criticamente l'output prodotto dalle librerie e riconoscendo risultati anomali o non attendibili.
- Abilità comunicative: Lo studente sarà in grado di redigere report completi e visivamente adeguati in grado di comunicare in modo corretto ed efficace i risultati dell'analisi e dell'esplorazione dei dati, e di presentare oralmente il lavoro svolto motivando le scelte compiute.
- Capacità di apprendimento: Lo studente svilupperà le competenze necessarie per aggiornarsi autonomamente sull'uso di tecniche, software e linguaggi di programmazione utili per l'analisi dei dati, imparando a consultare la documentazione delle librerie e a valutare nuovi strumenti, garantendo un apprendimento continuo anche al termine del corso.
Modalità di svolgimento dell'insegnamento
Prerequisiti richiesti
Frequenza lezioni
La frequenza non è obbligatoria, ma fortemente consigliata.
Contenuti del corso
- Ambiente di lavoro: notebook, gestione di un progetto di analisi, riproducibilità dell'analisi.
Elementi di calcolo numerico con numi: array, operazioni vettorializzate, indicizzazione. - Manipolazione di dati tabellari con pandas: caricamento da file e da rete, selezione e filtraggio, raggruppamento e aggregazione, unione di tabelle.
- Panoramica delle librerie utilizzate nel corso e criteri per orientarsi nella loro documentazione.
- Costruzione di un dataset a partire da fonti reali; ispezione iniziale e controlli di qualità.
- Pulizia dei dati: gestione dei dati mancanti, individuazione e trattamento dei valori anomali, correzione di tipi e formati.
- Trasformazione dei dati: standardizzazione e normalizzazione, codifica delle variabili categoriche.
- Calcolo di statistiche descrittive e di misure di correlazione su dataset reali.
- Visualizzazione dei dati con matplotlib e seaborn: istogrammi, boxplot, scatterplot, hexbin, mappe di densità, curve di livello, scattermatrix, plot di regressione; personalizzazione dei grafici e scelta della rappresentazione in funzione del messaggio.
- Distribuzioni di probabilità con scipy.stats: campionamento, densità, funzioni cumulative; simulazione per illustrare variabilità campionaria e teorema del limite centrale.
- Calcolo di intervalli di confidenza ed esecuzione di test statistici; lettura e interpretazione dell'output prodotto dalle librerie; calcolo di misure di dimensione dell'effetto.
- Implementazione di bootstrap e test di permutazione.
- Stima di modelli di regressione con statsmodels: lettura della tabella dei risultati, coefficienti, errori standard e significatività, bontà di adattamento, diagnostica dei residui.
- Regressione multipla in pratica: effetto dell'inclusione di variabili di controllo sui coefficienti stimati, termini di interazione e termini polinomiali, codifica delle variabili categoriche nella formula del modello.
- Regressione logistica: stima e interpretazione dei coefficienti in termini di odds.
- Struttura della libreria scikit-learn: stimatori, trasformatori, pipeline; differenza di impostazione rispetto a statsmodels.
- Suddivisione dei dati in training, validation e test; cross validation; ricerca degli iper-parametri.
- Diagnosi dell'overfitting: confronto tra prestazioni su training e test al variare della complessità del modello; uso della regolarizzazione per controllarla.
- Modelli predittivi: regressione lineare e logistica valutate su dati non osservati, K-NN, classificatori generativi (QDA, LDA, Naive Bayes); visualizzazione delle superfici di decisione.
- Calcolo e interpretazione delle misure di valutazione per regressione e classificazione; confronto tra modelli.
- Punteggi, soglie e curve: costruzione delle curve ROC e precision-recall a partire dai punteggi prodotti da un modello, effetto dello spostamento della soglia sui due tipi di errore, scelta della soglia in funzione dei costi, confronto delle due curve su un dataset con classi sbilanciate.
- Clustering con K-Means, criteri di scelta del numero di cluster e visualizzazione dei risultati.
- Stima della densità e misture di gaussiane.
- PCA: calcolo, interpretazione delle componenti, uso per la visualizzazione e come passo di una pipeline.
- Organizzazione di un flusso di analisi completo su un dataset di dimensioni medio-grandi: dalla domanda iniziale alla conclusione.
- Struttura di un report di analisi dei dati; scelta e cura delle visualizzazioni destinate alla comunicazione.
- Preparazione e svolgimento della presentazione dei risultati.
Testi di riferimento
- 1. James, G., Witten, D., Hastie, T., Tibshirani, R. An Introduction to Statistical Learning, with Applications in Python, 2023. https://www.statlearning.com
- 2. Knaflic, C. N. Storytelling with Data, John Wiley & Sons, 2025.
- 3. Documentazione ufficiale delle librerie utilizzate: `numpy`, `pandas`, `matplotlib`, `seaborn`, `scipy`, `statsmodels`, `scikit-learn`.
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Ambiente di lavoro, notebook e introduzione a numpy | Materiale didattico messo a disposizione dal docente; [3] |
| 2 | Manipolazione di dati tabellari con pandas | Materiale didattico messo a disposizione dal docente; [3] |
| 3 | Pulizia e preparazione dei dati | Materiale didattico messo a disposizione dal docente; [3] |
| 4 | Statistiche descrittive e misure di correlazione su dataset reali | Materiale didattico messo a disposizione dal docente |
| 5 | Visualizzazione dei dati con matplotlib e seaborn | Materiale didattico messo a disposizione dal docente; [2] |
| 6 | Distribuzioni di probabilità e simulazione con scipy.stats | Materiale didattico messo a disposizione dal docente; [3] |
| 7 | Intervalli di confidenza, test statistici, bootstrap e test di permutazione | Materiale didattico messo a disposizione dal docente; [1] |
| 8 | Regressione con statsmodels: stima, lettura dell'output, significatività, diagnostica | Materiale didattico messo a disposizione dal docente; [1] |
| 9 | Regressione multipla in pratica: variabili di controllo, interazioni, termini polinomiali. Regressione logistica e odds | Materiale didattico messo a disposizione dal docente; [1] |
| 10 | Introduzione a scikit-learn: pipeline, cross validation, diagnosi dell'overfitting e regolarizzazione | Materiale didattico messo a disposizione dal docente; [1] |
| 11 | Modelli predittivi: regressione e logistica in chiave predittiva, K-NN, QDA, LDA, Naive Bayes; misure di valutazione | Materiale didattico messo a disposizione dal docente; [1] |
| 12 | Clustering, stima della densità e PCA | Materiale didattico messo a disposizione dal docente; [1] |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
- Uno scritto, volto a verificare le competenze teoriche dello studente in merito agli argomenti trattati nel corso, da un punto di vista teorico e metodologico. La prova è valutata con un voto in trentesimi.
- Un progetto, assegnato dal docente e svolto in autonomia dallo studente, volto a verificare le competenze pratiche di analisi dei dati e comunicazione dei risultati. Il progetto viene presentato al docente mediante una presentazione e valutato con un voto in trentesimi.
Esempi di domande e/o esercizi frequenti
Il progetto di analisi dei dati è generalmente basato su dataset di dimensioni medio-grandi ottenibili in rete. Il progetto richiede tipicamente di:
- caricare un dataset da una fonte reale, valutarne la qualità e predisporlo per l'analisi, motivando le scelte compiute sui dati mancanti e sui valori anomali;
- condurre un'analisi esplorativa e produrre un insieme di visualizzazioni che descrivano la struttura dei dati e le relazioni tra le variabili;
- formulare una o più domande sui dati e rispondervi con gli strumenti inferenziali appropriati, riportando le incertezze associate;
- costruire un modello predittivo adeguato al problema, valutarne le prestazioni con misure appropriate e confrontarlo con almeno un'alternativa;
- redigere un report e presentare oralmente il lavoro, giustificando le scelte metodologiche e discutendo i limiti dell'analisi.