Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
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.
Programmazione e strutture dati.
La frequenza a lezione è obbligatoria da regolamento.
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.
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:
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 "pyTorch" per la costruzione di reti neurali.
Per la parte teorica sull'analisi dei dati, si farà principalmente riferimento a diversi capitoli del libro:
Per il linguaggio Python si può far riferimento al tutorial ufficiale di Python:
| 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 |
L'esame finale è composta da due parti obbligatorie:
1. prova scritta: due domande di teoria a risposta aperta su argomenti presentati a lezione.
La votazione è compresa tra 0 e 20.
2. progetto: inerente ad algoritmi e metodologie trattate a lezione. La votazione è compresa tra 0 e 10
La somma della prova scritta + progetto danno una votazione da 0 a 30.
Oltre alla parte obbligatoria, vi sono tre parti opzionali:
1. classwork: esercizi da svolgere in classe inerente algoritmi e metodologie spiegate. Valutazione da 0 a 2 punti.
2. homework: esercizi da svolgere a casa inerente algoritmi e metodologie spiegate a lezione (affiancamento ad aziende). Valutazione da 0 a 2 punti.
3. seminario: Presentazione su un paper fornito dal docente. Valutazione da 0 a 1 un punto.
Dalla somma delle valutazioni obbligatorie più quelle opzionali si ottiene una votazione massima di 35. Tutte le votazioni superiori a 30 implicano 30L.
Il voto è stabilito secondo il seguente schema:
- Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere ad almeno il 60% delle domande né di svolgere gli esercizi.
- 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.
- 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di collegamento dei contenuti sono buone, risolve gli esercizi con pochi errori.
- 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di padroneggiarli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori.
Salvo diversa comunicazione, la prova scritta si svolgerà alle ore 11:00 e avrà durata di 1 ora.
Note: