INTRODUZIONE AL DATA MINING

Anno accademico 2023/2024 - Docente: ANTONIO DI MARIA

Risultati di apprendimento attesi

Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.

  1. Conoscenza e capacità di comprensioneIl 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:

  • 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

     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:

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