Seguici su
Cerca

FONDAMENTI DI ANALISI DATI E LABORATORIO
Modulo LABORATORIO

Anno accademico 2026/2027 - Docente: ANTONINO FURNARI

Risultati di apprendimento attesi

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Sessioni pratiche di laboratorio svolte in aula, in cui le tecniche studiate vengono mostrate e applicate attraverso esempi di codice e analisi guidate su dataset reali. Le sessioni di questo modulo sono erogate in stretto intreccio con le lezioni teoriche del modulo di Fondamenti di Analisi Dati: ogni argomento viene ripreso, nella stessa giornata o nelle immediate vicinanze, dal punto di vista implementativo. Le due componenti costituiscono un percorso unitario e sono valutate con un unico esame.

Il lavoro si svolge in linguaggio Python con l'ausilio di notebook. Il codice mostrato a lezione è reso disponibile agli studenti, che sono invitati a rieseguirlo, modificarlo e applicarlo a dataset diversi.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza, potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Sono richieste competenze di base di programmazione, analisi matematica e algebra lineare. Non è richiesta una conoscenza pregressa del linguaggio Python né delle librerie utilizzate: gli strumenti sono introdotti nel corso.

Frequenza lezioni

La frequenza non è obbligatoria, ma fortemente consigliata.

Contenuti del corso

Il modulo segue il percorso del modulo teorico, articolato in due parti (Analisi dei dati; Tecniche predittive e rappresentazione dei dati), e ne sviluppa la controparte pratica.

Strumenti per l'analisi dei dati in Python

  • 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.

Preparazione ed esplorazione dei dati

  • 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.

Analisi dei dati: probabilità, inferenza e modelli di regressione

  • 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.

Tecniche predittive con scikit-learn

  • 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.

Rappresentazione dei dati

  • 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.

Progetto e comunicazione dei risultati

  • 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

Il riferimento principale per il modulo è costituito dai notebook e dal materiale di laboratorio predisposto dal docente, disponibile mediante Microsoft Teams (codice del Team: i87g4nb) e tramite il sito http://antoninofurnari.github.io/fadlecturenotes/.

Testi consigliati per approfondimento:

  • 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`.

Per i fondamenti teorici degli argomenti trattati si rimanda ai testi indicati nel syllabus del modulo di Fondamenti di Analisi Dati.

Programmazione del corso

 ArgomentiRiferimenti testi
1Ambiente di lavoro, notebook e introduzione a numpyMateriale didattico messo a disposizione dal docente; [3]
2Manipolazione di dati tabellari con pandasMateriale didattico messo a disposizione dal docente; [3]
3Pulizia e preparazione dei datiMateriale didattico messo a disposizione dal docente; [3]
4Statistiche descrittive e misure di correlazione su dataset realiMateriale didattico messo a disposizione dal docente
5Visualizzazione dei dati con matplotlib e seabornMateriale didattico messo a disposizione dal docente; [2]
6Distribuzioni di probabilità e simulazione con scipy.statsMateriale didattico messo a disposizione dal docente; [3]
7Intervalli di confidenza, test statistici, bootstrap e test di permutazioneMateriale didattico messo a disposizione dal docente; [1]
8Regressione con statsmodels: stima, lettura dell'output, significatività, diagnosticaMateriale didattico messo a disposizione dal docente; [1]
9Regressione multipla in pratica: variabili di controllo, interazioni, termini polinomiali. Regressione logistica e oddsMateriale didattico messo a disposizione dal docente; [1]
10Introduzione a scikit-learn: pipeline, cross validation, diagnosi dell'overfitting e regolarizzazioneMateriale didattico messo a disposizione dal docente; [1]
11Modelli predittivi: regressione e logistica in chiave predittiva, K-NN, QDA, LDA, Naive Bayes; misure di valutazioneMateriale didattico messo a disposizione dal docente; [1]
12Clustering, stima della densità e PCAMateriale didattico messo a disposizione dal docente; [1]

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L’esame si articola nelle seguenti prove:

  1. 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.
  2. 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.

Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.

Sono previste due prove in itinere in forma scritta durante il corso. Il superamento delle due prove dà diritto all'esonero dalla prova scritta.

Il voto finale è ottenuto mediante una media pesata tra i voti ottenuti nelle due prove con pesi pari a 40% per la prova scritta e 60% per il progetto.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.

La votazione di ciascuna prova è espressa in trentesimi secondo il seguente schema: 

Voto 29-30 e lode 

Lo studente ha una conoscenza approfondita dei concetti e delle tecniche di analisi dei dati. Riesce prontamente ad analizzare i problemi di analisi dei dati, individuando le tecniche di analisi dei dati più idonee alla risoluzione del problema considerato in maniera autonoma e con spirito critico e indicando le pratiche metodologiche più idonee per la loro applicazione. Ha ottime capacità comunicative e proprietà di linguaggio. 

Voto 26-28 

Lo studente ha una buona conoscenza dei concetti e delle tecniche di analisi dei dati. Riesce ad analizzare i problemi di analisi dei dati, individuando tecniche di analisi dei dati idonee alla risoluzione del problema considerato e indicando le pratiche metodologiche più idonee per la loro applicazione. Ha buone capacità comunicative e proprietà di linguaggio. 

Voto 22-25 

Lo studente ha una discreta conoscenza dei concetti e delle tecniche di analisi dei dati, anche se si limita agli argomenti principali. Riesce ad analizzare i problemi di analisi dei dati, seppure non sempre in maniera lineare, individuando tecniche di analisi dei dati idonee alla risoluzione del problema considerato. Ha discrete capacità comunicative e una discreta proprietà di linguaggio. 

Voto 18-21 

Lo studente ha la minima conoscenza dei concetti e delle tecniche di analisi dei dati. Ha una modesta capacità di analizzare i problemi di analisi dei dati. Ha sufficienti capacità comunicative, seppure non sempre una appropriata proprietà di linguaggio. 

Esame non superato 

Lo studente non possiede la conoscenza minima richiesta dei contenuti principali dell’insegnamento. La capacità di utilizzare il linguaggio specifico è scarsissima o nulla e non è in grado di applicare autonomamente le conoscenze acquisite.

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.