Nuova ricerca

Francesco GUERRA

Professore Ordinario
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Big Data Analysis

Ingegneria informatica (Offerta formativa 2021)

Obiettivi formativi

Il quantitativo di dati che è possibile analizzare adesso è enorme. Si parla di “data science” per indicare il campo di ricerca nel quale sono studiate e applicate tecniche per estrarre informazioni, analizzare i contenuti e scoprire nuova conoscenza da sorgenti dati di grandi dimensioni (big data) al fine di ottenere un vantaggio competitivo. La “data science” ha quindi una importanza cruciale sia per il mondo del lavoro sia per quello della ricerca.
Il corso intende avere un orientamento prettamente pratico e prevede una serie di attività attraverso le quali verranno introdotte e analizzate le tecniche fondamentali di analisi di big data che includono algoritmi per la gestione di dati (e.g., MapReduce), applicazione algoritmi di data mining e di modellazione statistica, applicazioni di analisi lessicale del testo (NLP). Il corso prevede lo sviluppo di semplici programmi con il linguaggio Python (in particolare e librerie pandas e scikit-learn).
Attraverso questo corso gli studenti saranno in grado di:
- Conoscere i maggiori trend tecnologici, scientifici e applicativi connessi con i big data e la data science.
- Modellare un problema relativo all’analisi di dati e proporre approcci per la sua risoluzione.
- Utilizzare alcune importanti tecniche di analisi di dati, text analysis e data mining.
- Utilizzare le librerie pandas, sklearn per applicare tecniche di data mining finalizzate all’analisi dei dati.
- Applicare tecniche di data mining e machine learning a sistemi in produzione (MLops)

Prerequisiti

Conoscenze in gestione di basi di date (come quelle fornite dagli insegnamenti di Basi di Dati e Lab del Dipartimento di Ingegneria “Enzo Ferrari”). Verranno inoltre applicati algoritmi descritti in corsi di Machine Learning. Per studenti provenienti da altre sedi universitarie e/o altri corsi di studio l'acquisizione di contenuti analoghi ai corsi soprannominati.

Programma del corso

1. Elementi di Map Reduce per l’analisi dei dati [1 CFU]
2. Analisi di dati mediante l’applicazione di tecniche di Data Mining. Valutazione di Modelli. Machine Learning in produzione (MLops) [2 CFU]
3. Ricerca di elementi simili (Locality-Sensitive Hashing for Documents) [0.5 CFU]
4. Ricerca di Frequent Itemsets (Market Basket Analysis) [0.5 CFU]
5. Link analysis e Page Rank [0.5 CFU]
6. Text analysis, mining e retrieval (text retrieval, language models, NLP for text classification con word embeddings, Sentiment Analysis) [2 CFU]
7. Nozioni base sui Recommendation Systems (Content-Based Recommendations / Collaborative Filtering) [0.4 CFU]
8. Elementi di Analisi di Time Series e anomaly detection [0.1 CFU]

Laboratorio [2 CFU]
1. Pandas: rappresentazione e gestione di dati tabellari. Preprocessing e feature engineering.
2. Scikit-learn: applicazione di tecniche di classificazione e regressione, valutazione di modelli, feature engineering, realizzazione e valutazione di pipeline.

Metodi didattici

La materia viene insegnata attraverso lezioni frontali che si avvalgono dell’uso di slide rese disponibili agli studenti mediante la piattaforma dolly e di lezioni pratiche in laboratorio. Le lezioni frontali hanno l’obiettivo di fornire una conoscenza “teorica” di base della materia. Per ogni argomento trattato vengono inoltre resi disponibili attraverso la piattaforma dolly alcuni elementi di dettaglio (articoli scientifici, siti web specializzati) per chi approfondire ulteriormente gli argomenti trattati. Le lezioni pratiche hanno l’obiettivo di introdurre alcuni strumenti software di analisi di dati. Il sistema WEKA, la libreria pandas e scikit-learn di python e il sistema Tableau verranno introdotti durante le lezioni e lo studente potrà applicare in maniera autonoma a dataset resi disponibili le tecniche introdotte.

Testi di riferimento

Gli argomenti delle lezioni sono tratte dai seguenti testi:

A. Anand Rajaraman, Jure Leskovec, Jeffrey D. Ullman: Mining of Massive Datasets, Cambridge University Press
B. Ian H. Witten, Eibe Frank, Mark A. Hall: Data Mining, Morgan Kauffman 2012
C. David M. Diez, Cristopher D Barr, Mine Centinkaya-Rundel: OpenIntro Statistics, 2012
D. Bing Liu, Sentiment Analysis and Opinion Mining, Morgan & Claypool Publishers, 2011
E. AnHai Doan,Alon Halevy,Zachary Ives: Principles of Data Integration, Morgan Kaufmann 2012
F. W. Bruce Croft, Donald Metzler, Trevor Strohman: Search Engines – Information Retrieval in Practice, Addison Wesley 2010
G. ChengXiang Zhai, Sean Massung: Text Data Management and Analysis, -- A Practical Introduction to Information Retrieval and Text Mining Acm Books 2016
H. Daniel Jurafsky & James Martin: Speech and Language Processing.

Verifica dell'apprendimento

L’apprendimento viene verificato attraverso una prova pratica di laboratorio e una prova orale.
La prova di laboratorio ha la durata di 2 ore e propone l’applicazione di tecniche di data mining e machine learning a un dataset. La prova intende valutare l’abilità dello studente nell’individuare le tecniche corrette da applicare per la risoluzione di un problema e la capacità di costruire semplici script di analisi. La prova si intende superata se lo studente acquisisce un punteggio >= di 18/30. Il voto acquisito incide al massimo nella misura del 25% nella determinazione del voto finale.
La prova orale ha la durata di 30 minuti e ha l’obiettivo di verificare la conoscenza teorica delle tematiche dell’insegnamento. Gli indicatori di valutazione della prova sono:
- Capacità di applicare/analizzare/valutare le conoscenze acquisite (50%)
- Capacità di collegare le conoscenze (15%)
- Padronanza del linguaggio tecnico (20%);
- Capacità di approfondire gli argomenti (15 %)

Risultati attesi

1. Conoscenza e comprensione:
Le lezioni frontali forniranno allo studente la capacità di conoscere e comprendere i maggiori trend tecnologici, scientifici e applicativi connessi con i big data e gli aspetti significativi di alcune piattaforme per l'analisi di dati.
Lo studente sarà in grado di analizzare dati strutturati utilizzando strumenti software quali WEKA e le librerie python pandas, scikit-learn.

2. Capacità di applicare conoscenza e comprensione
Tramite le lezioni pratiche in laboratorio lo studente saprà modellare problemi relativi all'analisi di dati e proporre approcci per la loro risoluzione e sapere utilizzare alcune importanti tecniche di analisi di dati e data mining.

3. Autonomia di giudizio
Lo studente sarà in grado di scoprire analizzare e valutare la conoscenza emergente da dati strutturati, utilizzando delle soluzioni informatiche avanzate.

4. Abilità comunicative
Lo studente saprà produrre report completi che descrivano la conoscenza emergente da dati strutturati, redigendo delle ipotesi e verificandole attraverso l’analisi dei dati.

5. Capacità di apprendimento
Lo studente disporrà di una conoscenza di base tale da permettergli approfondimenti successivi sui temi della business intelligence, analisi di dati, process mining e gestione di grandi quantitativi di dati