B0413 - DEEP LEARNING APPLICATIONS IN BUSINESS ANALYTICS

Anno Accademico 2022/2023

  • Docente: Stefano Lodi
  • Crediti formativi: 6
  • SSD: SECS-S/03
  • Lingua di insegnamento: Inglese

Conoscenze e abilità da conseguire

Al termine del corso, lo studente ha un'ampia conoscenza dei fondamenti degli algoritmi di machine learning e advanced analytics, con particolare riferimento agli algoritmi di deep learning, da una prospettiva aziendale e con esempi tecnici. Queste applicazioni includono la supervised classification e le deep neural networks. Lo studente è in grado di applicare gli algoritmi di deep learning utilizzando le librerie Python per il calcolo numerico. Allo studente vengono fornite linee guida e risvolti pratici, che gli consentono di scegliere e applicare algoritmi di deep learning e di utilizzare in modo appropriato le informazioni risultanti al fine di migliorare il processo decisionale in azienda e definire strategie di business.

Contenuti

Modulo 1

Il linguaggio Python
═══════════════════

Espressioni, tuple, liste, comprehension, set, dizionari. Istruzioni di ripetizione e scelta. Package NumPy e Panda.


Machine learning e analitica avanzata
════════════════════

Scoperta di regole associative
──────────────────────
Algoritmo Apriori


Analisi dei gruppi
──────────────────────
Algoritmi: leader-follower, BIRCH, k-means, EM


Classificazione supervisionata
──────────────────────────────────
Alberi di classificazione C4.5, CART
Modelli a vettori di supporto (SVM)
AdaBoost

 

Reti neurali deep
──────────────────────────────────
Reti dense, reti neurali convoluzionali, LSTM, autoencoder.


Esercitazioni di laboratorio
══════════════════════════════

Integrated development environment per Python
Analitica avanzata

Modulo 2

Il corso si focalizza sul paradigma e sulle caratteristiche fondamentali di Python, come linguaggio di programmazione adatto alla manipolazione dei dati nell'ambito della data science. L'enfasi è posta sull'esplorazione delle sue librerie, che aiutano nella lettura/scrittura dei dati, nel raggruppamento, nell'aggregazione, nella fusione e nel join di data frame, e quindi consentono la visualizzazione dei dati e la loro analisi. La parte pratica del corso prevede l'utilizzo di strumenti e piattaforme di sviluppo, come Jupyter Notebook e Gitlab, per la condivisione e il supporto dell'analisi dei dati. Il corso include anche l'accesso a diversi set di dati al fine di illustrare l'applicabilità del materiale in esempi reali.

Parte 1 - Gestione e rappresentazione dei dati in Python

Tecniche e metodi di strutturazione e visualizzazione dei dati.

Utilizzo di Dataframe e Series, ed esecuzione di analisi statistiche di base.

Applicabilità e funzionalità di librerie come matplotlib, seaborn e plotly.

Preparazione dei dati per l'analisi statistica.

Parte 2 - Tecniche di Machine Learning (ML) in Python

Dimostrazione di approcci ML supervisionati e non supervisionati.

Introduzione alle librerie, come scikit-learn, Tensorflow e nltk.

Testi/Bibliografia

Modulo 1

Le presentazioni del corso e gli esercizi sono disponibili su Virtuale.

Per argomento:

Python

Testo consigliato:

Parker, J. R. (2016). Python: An Introduction to Programming. Mercury Learning & Information. E-book liberamente scaricabile con le credenziali istituzionali studentesche, e ricercabile in

http://sba.unibo.it | Risorse online| E-book | Ricerca un e-book nel Catalogo A-Link

Scoperta di regole associative, analisi dei gruppi, classificazione supervisionata

Testo opzionale:

Tan, P.-N., Steinbach, M., & Kumar, V. (2006). Introduction to Data Mining. Boston: Pearson.

Machine learning e reti neurali

Testo consigliato:

Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT press. Liberamente consultabile a https://www.deeplearningbook.org/

Modulo 2

Durante il corso saranno indicati materiali online e altre letture consigliate.


Metodi didattici

NOTA: In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, in modalità e-learning.

Modulo 1

Le lezioni del corso sono suddivise in
• lezioni frontali tenute in aula
• lezioni tenute in laboratorio, ciascuna comprendente sia esposizioni frontali che esercitazioni sulle tecniche di soluzione dei problemi di analisi dei dati presentate.

Gli argomenti del corso sono suddivisi per tipo di lezione:
• durante le lezioni frontali si espongono le nozioni teoriche e
pratiche per l'analisi avanzata in basi di dati e il machine learning
• in laboratorio, lo studente realizza script di analisi avanzata e machine learning utilizzando il linguaggio di programmazione Python.

Modulo 2

• Lezioni teoriche in aula didattica
• Esercitazioni in laboratorio
Durante le lezioni gli studenti saranno guidati nella realizzazione e nella pratica dei concetti presentati.

Se possibile, sarà organizzato un seminario su temi specifici di interesse.

 

Modalità di verifica e valutazione dell'apprendimento

La frequenza non contribuisce alla valutazione in alcun modo.

Modulo 1

L'esame si articola in tre prove.

Prova di programmazione in Python

Lo studente riceve un documento digitale su Esami OnLine, contenente la descrizione di un semplice problema di analisi, deve produrre sullo stesso sito un programma Python che risolve il problema di analisi descritto nel documento.

  • È consentita la consultazione di testi e appunti rilegati.

Prova a risposta multipla

Lo studente riceve una collezione di 15 frasi, ciascuna delle quali ha 3 possibili completamenti, dei quali solamente uno è corretto. La prova è svolta interamente su Esami OnLine

  • Non è consentita la consultazione di alcun materiale.

 

Prova orale

Il candidato deve rispondere a tre domande che possono riguardare qualunque parte del programma del corso. In particolare, lo studente deve dimostrare: padronanza delle nozioni teoriche della disciplina, della terminologia e del formalismo logico, insiemistico e matematico in essa impiegato; conoscenza delle tecniche di analisi avanzata e machine learning presentate durante le lezioni e implementate negli strumenti utilizzati durante le lezioni e capacità di utilizzare tali strumenti; conoscenza del linguaggio Python.

Modalità di calcolo del voto d'esame del modulo e validità delle prove

  • I voti di tutte le prove sono compresi nell'intervallo tra 0 e 30, estremi inclusi.
  • I voti conseguiti nella prova di programmazione e nella prova a risposta multipla sono validi fino al termine della sessione (gennaio-febbraio, giugno-luglio o settembre) nella quale la prova è stata sostenuta.
  • La valutazione dell'esito del modulo e l'assegnazione del voto finale del modulo si effettuano al termine della prova orale.
  • Il voto finale del modulo è calcolato come media del voto della piú recente prova di programmazione in Python, del voto della più recente prova a risposta multipla e del voto dell'orale.

Modulo 2

Gli studenti saranno valutati attraverso due diversi tipi di valutazioni.

Assegnazione 1 (lavoro di gruppo)

Nel loro lavoro di gruppo, che si concentra su un progetto di programmazione, gli studenti dimostreranno la loro capacità di analizzare un dato insieme di dati, utilizzando librerie Python, rispondere a domande da determinati compiti e condividere i risultati del gruppo di progetto su repository online pubblico, come Gitlab.

Assegnazione 2 (valutazione individuale come prova orale)

Nella valutazione individuale, gli studenti presenteranno i risultati del loro lavoro sull'Assegnazione 1 (Progetto di Programmazione), sotto forma di presentazione, in cui ogni studente discuterà questioni relative al Progetto e risponderà a domande pertinenti.

Voto finale

Il voto finale è la media dei voti dei moduli.

 

Strumenti a supporto della didattica

Modulo 1

Presentazioni degli argomenti del corso con videoproiettore
Laboratorio di PC con Anaconda; PC del docente con videoproiettore per la guida alle esercitazioni
Materiale usato nelle presentazioni distribuito tramite il sito http://virtuale.unibo.it. Il materiale è accessibile solo agli studenti iscritti al corso.
Modulo 2

Note sul corso. Progetti open source utilizzati come esempi didattici.

Orario di ricevimento

Consulta il sito web di Stefano Lodi

SDGs

Imprese innovazione e infrastrutture

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.