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.

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

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:

Per il linguaggio Python si può far riferimento al tutorial ufficiale di Python:

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione al data miningLeskovec Capitolo 1
2Linguaggio PythonMateriale fornito dal docente
3Preprocessing dei datiAggarwal Capitolo 2 + Materiale fornito dal docente
4Mining di insiemi frequenti (apriori, insiemi frequenti, regole di associazione)Leskovec Capitolo 6
5Classificazione (alberi decisionali ed estrazione di regole, Naive Bayes, Perceptron, SVM, kNN, Random Forest)Leskovec Capitolo 12 + Materiale fornito dal docente
6Clustering (gerarchico, k-means, BFR, CURE, DBSCAN, OPTICS)Leskovec Capitolo 7
7Introduzione alle reti (Misure di centralità, Coefficiente di Clustering)Barabasi Capitoli 1 e 2
8Modelli random di retiBarabasi Capitoli 3, 4 e 5
9Graph matchingMateriale fornito dal docente
10Graph miningMateriale fornito dal docente
11Reti neurali (Feed-Forward, Convolutional, Recurrent, Long-Short Term Memory)Leskovec Capitolo 13
12Mining di stream di datiLeskovec 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:

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:

Esempi di domande e/o esercizi frequenti

Esempi di domande per l'esame scritto, progetti o seminari saranno illustrati a lezione.

English version