Seguici su
Cerca

INTRODUZIONE AL DATA MINING

Anno accademico 2024/2025 - 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 è 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.

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/Regresisione (alberi decisionali ed estrazione di regole, Naive Bayes, Perceptron, SVM, kNN, random forest, AdaBoost, Regressione Lineare, Regressione Logistica)
  • Clustering (gerarchico, k-means, DBSCAN, HDBSCAN, 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, Transformer, LLM)

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. 

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

    Verifica dell'apprendimento

    Modalità di verifica dell'apprendimento

    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:

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