MATEMATICA E INFORMATICAInformaticaAnno accademico 2023/2024
1007998 - INTRODUZIONE AL DATA MINING
Docente: GIOVANNI MICALE
Risultati di apprendimento attesi
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
- Conoscenza e capacità di comprensione: Il corso mira a formare le conoscenze e le competenze di base per l’analisi, la rappresentazione, e l’organizzazione di dati.
- Capacità di applicare conoscenza e comprensione: lo studente acquisirà conoscenze riguardo ai modelli e gli algoritmi per l’analisi dei dati quali: mining ad alto supporto, sistemi di raccomandazione, ricerca di similarità, classificazione, clustering, reti neurali, analisi di reti.
- Autonomia di giudizio: Attraverso esempi concreti e casi di studio, lo studente sarà in grado di elaborare autonomamente soluzioni a determinati problemi legati all'analisi dei dati.
- Abilità comunicative: lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale dell'analisi dei dati.
- Capacità di apprendimento: il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche e pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale scopo diversi argomenti saranno trattati a lezione coinvolgendo lo studente nella ricerca di possibili soluzioni a problemi reali, utilizzando benchmark disponibili in letteratura.
Modalità di svolgimento dell'insegnamento
Lezioni frontali.
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
Programmazione e strutture dati.
Frequenza lezioni
La frequenza a lezione è fortemente consigliata.
Per seguire meglio le lezioni, delle slide sono messe a disposizione dal docente.
Le slide non costituiscono un mezzo di studio, ma favoriscono l'apprendimento degli argomenti presentati a lezione.
Per ulteriori approfondimenti sugli argomenti del corso, nel syllabus del corso sono indicati per ogni argomento trattato eventuali riferimenti a libri di testo e risorse online.
Contenuti del corso
Il corso è diviso in due parti, una teorica in cui verranno illustrati i principali problemi di Data Mining e una pratica in cui verrà introdotto il linguaggio Python e mostrato come tali problemi possono essere risolti in Python. Le due parti saranno portate avanti in parallelo.
Gli argomenti affrontati nel corso sono:
- Introduzione al Data Mining
- Linguaggio Python
- Preprocessing dei dati
- Mining di insiemi frequenti (apriori, insiemi frequenti, regole di associazione)
- Classificazione (alberi decisionali ed estrazione di regole, Naive Bayes, Perceptron, SVM, kNN, random forest)
- Clustering (gerarchico, k-means, BFR, CURE, DBSCAN, OPTICS)
- Introduzione alle reti (Misure di centralità, Coefficiente di Clustering)
- Modelli random di reti
- Graph matching
- Graph mining
- Reti neurali (Feed-Forward, Convolutional, Recurrent, Long-Short Term Memory)
- Mining su stream di dati
Nell'ambito del linguaggio Python, oltre alle funzioni di base, verranno introdotte diverse librerie per l'analisi dei dati, quali "igraph" per l'analisi e la visualizzazione di reti e "keras" e "pyTorch" per la costruzione di reti neurali.
Testi di riferimento
Per la parte teorica sull'analisi dei dati, si farà principalmente riferimento a diversi capitoli del libro:
- "Mining of Massive Datasets". Jure Leskovec, Anand Rajaraman, Jeff Ullman (http://www.mmds.org).
- "Data Mining: the Textbook". Charu C. Aggarwal, Springer, 2015.
- "Network Science". Albert-Laszlo Barabasi, Cambridge University Press, 2016.
Per il linguaggio Python si può far riferimento al tutorial ufficiale di Python:
- https://docs.python.org/3/tutorial/index.html
Programmazione del corso
| Argomenti | Riferimenti testi |
1 | Introduzione al data mining | Leskovec Capitolo 1 |
2 | Linguaggio Python | Materiale fornito dal docente |
3 | Preprocessing dei dati | Aggarwal Capitolo 2 + Materiale fornito dal docente |
4 | Mining di insiemi frequenti (apriori, insiemi frequenti, regole di associazione) | Leskovec Capitolo 6 |
5 | Classificazione (alberi decisionali ed estrazione di regole, Naive Bayes, Perceptron, SVM, kNN, Random Forest) | Leskovec Capitolo 12 + Materiale fornito dal docente |
6 | Clustering (gerarchico, k-means, BFR, CURE, DBSCAN, OPTICS) | Leskovec Capitolo 7 |
7 | Introduzione alle reti (Misure di centralità, Coefficiente di Clustering) | Barabasi Capitoli 1 e 2 |
8 | Modelli random di reti | Barabasi Capitoli 3, 4 e 5 |
9 | Graph matching | Materiale fornito dal docente |
10 | Graph mining | Materiale fornito dal docente |
11 | Reti neurali (Feed-Forward, Convolutional, Recurrent, Long-Short Term Memory) | Leskovec Capitolo 13 |
12 | Mining di stream di dati | Leskovec Capitoli 4, 6, 7 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame finale consiste in una prova scritta, seguita da una prova orale.
La prova scritta è costituita da tre domande di teoria a risposta aperta su argomenti presentati a lezione.
Il voto minimo per superare la prova scritta è 16.
Il voto ottenuto con la prova scritta è il voto di base dell'esame, che può essere incrementato fino ad un massimo di 2 o 4 punti con la prova orale, a seconda del tipo di esame orale scelto dallo studente.
Ai fini del superamento dell'esame, il voto finale riportato deve essere maggiore o uguale a 18.
La prova orale può essere, a scelta:
- Un progetto (proposto dallo studente o dal docente, e comunque sempre concordato tra le due parti) che consiste genericamente in un'implementazione pratica (preferibilmente in Python) di una soluzione ad un problema di data mining. Col progetto si può ottenere un incremento massimo di 4 punti sul voto base dello scritto.
- Un seminario (concordato tra studente e docente), che consiste in una breve presentazione (massimo 15 minuti) in power-point del contenuto di un articolo scientifico che approfondisce problemi visti durante il corso. Col seminario si può ottenere un incremento massimo di 2 punti sul voto base dello scritto.
Le due parti dell'esame (prova scritta e prova orale) possono essere sostenute in qualsiasi ordine e anche in sessioni d'esame diverse.
Il progetto, una volta assegnato, dovrà essere completato entro 3 mesi.
Salvo diversa comunicazione, la prova scritta si svolgerà alle ore 11:00 e avrà durata di 1 ora.
Note:
- È vietato l'uso di qualsiasi strumento hardware (calcolatrici, tablet, smartphone, cellulari, auricolari BT etc.), di libri o documenti personali durante la prova scritta.
- Per sostenere gli esami è obbligatorio prenotarsi utilizzando l'apposito modulo del portale CEA.
- Non sono ammesse prenotazioni tardive tramite email. In mancanza di prenotazione, l'esame non può essere verbalizzato.
- La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere, con la prova scritta rimpiazzata da una prova orale con 3 domande a risposta aperta sui contenuti del corso (Learning assessment may also be carried out on line, should the conditions require it.)
Esempi di domande e/o esercizi frequenti
Esempi di domande per l'esame scritto, progetti o seminari saranno illustrati a lezione.
English version