95631 - MACHINE LEARNING AND DATA MINING

Anno Accademico 2024/2025

  • Docente: Matteo Golfarelli
  • Crediti formativi: 6
  • SSD: ING-INF/05
  • Lingua di insegnamento: Inglese

Conoscenze e abilità da conseguire

After the course the student: - kows the main machine learning techniques - knows the methodologies for handling a mining project - develops practical skills in the analysis and interpretation of results through practical exercises with commercial tools and / or open source ones.

Contenuti

Il corso è organizzato in due moduli di cui il primo è comune sia per gli studenti del CdS in Ingegneria e Scienze Informatiche (ISI), sia per gli studenti del CdD in Digital Transformation Management (DTM). Il secondo modulo è diverso per i due CdS.

 

------------ Modulo I: Data Mining (ISI + DTM)

1. Introduzione al Data Mining: i possibili ambiti applicativi

2. Il processo di scoperta della conoscenza

  • Progettare un processo di data mining
  • La metodologia CRISP-DM

3. Comprendere e preparare i dati

  • Caratteristiche dei diversi tipi di dato
  • Esplorazione statistica dei dati
  • Qualità dei dati
  • Preprocessing: selezione e creazione degli attributi
  • Misurare la Similarità e dissimilarità tra i dati

4. Le tecniche di data mining

  • Classificazione con alberi di decisione e reti bayesiane
  • Regole associative e sequeze
  • Clustering
  • Individuazione di anomalie (Outlier)

5. Interpretazione e validazione dei risultati

6. Il software Weka [http://www.cs.waikato.ac.nz/ml/weka/]

7. Analisi di casi di studio

------------ Modulo II ISI: Text Mining (Prof. Gianluca Moro)

1. Text Representation, Retrieval, Classificazione ed Opinion Mining

2. Language Models, Transformers, Meccanismi di Attention Efficienti, Retrieval-augmented Generation con VectorDB

3. Vision-Language Models, Graph Machine Learning e Metodi Neuro-simbolici per Trustworthy AI

4. Large Language Model Generativi, Prompt Engineering, Metodi di Valutazione, Compressione e Quantizzazione, Parameter-Efficient Fine-Tuning (e.g. QLoRA, Prompt Tuning) e Large Action Models

5. Laboratori su casi di studio reali - Text Summarization, Information Extraction, Chatbot e Function Call Generation etc. - con Python e strumenti open source: Hugging Face framework, LangChain, LlamaIndex, Milvus etc.

------------ Modulo II DTM: Machine Learning (Prof. Matteo Francia)

1. Introduzione a reti neurali e Deep Learning

2. Teoria e applicazione della metodologia CRISP-DM su casi reali
  • Acquisizione e comprensione dei dati
  • Preprocessing ed estrazione di feature
  • Modellazione
  • Valutazione e comprensione dei risultati

Testi/Bibliografia

------------ Modulo I: Data Mining (ISI + DTM)

Pang-Ning Tan, Michael Steinbach, Vipin Kumar Introduction to Data Mining. Pearson International, 2006.

------------ Modulo II ISI: Text Mining (Prof. Gianluca Moro)

Il materiale didattico è fornito dal docente nel portale “virtuale“ del corso essendo l’area del Natural Language Processing in forte evoluzione. I riferimenti bibliografici seguenti sono ad accesso libero/gratuito e valgono come materiale suggerito per alcuni capitoli trattati a lezione:

Gerhard Paaß , Sven Giesselbach. Foundation Models for Natural Language Processing Pre-trained Language Models Integrating Media Book Open Access © 2023 (disponibile gratuitamente)

Dan Jurafsky and James H. Martin. Speech and Language Processing (3rd ed. draft, 2024)

GitHub repository con codice, dataset modelli e riferimenti allo stato dell’arte

Christopher Manning, Hinrich Schutze, Prabhakar Raghavan. Introduction to Information Retrieval. Cambridge University Press, 2008

Metodi didattici

Lezioni in aula ed esercitazioni in laboratorio

Modalità di verifica e valutazione dell'apprendimento

Interrogazione orale e discussione di un elaborato. L'elaborato da concordarsi con uno dei due docenti, consiste nell'implementazione di un algoritmo di data mining tra quelli disponibili in letteratura oppure nell'analisi di una banca dati con le tecniche studiate a lezione.

L'obiettivo della verifica è quello di capire se le tecniche studiate sono state comprese e se lo studente ha sviluppato capacità pratiche di operare sui dati, di comprenderne il contenuto e di scoprire informazioni nascoste.

I voti vengono assegnati in base a una valutazione complessiva delle conoscenze, competenze, capacità di presentazione e discussione delle tematiche trattate. I range di voti corrispondono possono essere descritti come segue:

18-23: preparazione e capacità di analisi sufficienti ma relative ad un numero limitato di argomenti affrontati nel corso, utilizzo di un linguaggio complessivamente corretto;

24-27: preparazione tecnicamente adeguata ma con alcuni limiti rispetto agli argomenti trattati, capacità di analisi buone, anche se non particolarmente articolate, espresse in un linguaggio corretto;

28-30: ottima conoscenza di un ampio numero di temi affrontati nel corso, buone capacità di analisi e di critica, padronanza della terminologia specifica;

30L: conoscenza eccellente e molto approfondita ed esaustiva dei temi affrontati nel corso, capacità di analisi critica e di collegamento, padronanza della terminologia specifica.

Strumenti a supporto della didattica

Le esercitazioni in laboratorio saranno svolte principalmente utilizzando i software R, Weka e Python (Colab)

Link ad altre eventuali informazioni

http://bias.csr.unibo.it/golfarelli/

Orario di ricevimento

Consulta il sito web di Matteo Golfarelli

Consulta il sito web di Matteo Francia