145005 — Algoritmi Avanzati
145609 — Machine Learning for Data Science

Laurea Triennale in Informatica
Anno Accademico 2017-2018, primo semestre

Avvisi


Obiettivi del corso

La figura del “Data Scientist”, sempre più richiesta dalle aziende e dai centri di ricerca, si occupa di dare un senso alla mole crescente di dati disponibili in ogni contesto, ne costruisce modelli informatici che aiutano a comprendere meglio un fenomeno noto o a scoprirne di nuovi; individua inoltre le modalità di presentazione più efficaci e guida il miglioramento dei processi che analizza.

Il corso costituisce un'introduzione teorico-pratica alle tecniche di apprendimento automatico (machine learning) che, a partire da esempi, generano modelli matematici che possono essere generalizzati a nuovi casi per operare previsioni.

Il corso può essere seguito come modulo a sé, ma può essere utilmente completato da "Intelligent Optimization for Data Science".

Programma

  • Machine Learning: costruzione di modelli a partire dai dati
  • Apprendimento supervisionato
  • Apprendimento non supervisionato
  • Selezione delle feature
  • Tecniche di visualizzazione dei dati
Le lezioni di laboratorio prevedono la verifica e la sperimentazione degli argomenti trattati a teoria tramite la scrittura di brevi programmi di prova sotto la guida del docente.

Prerequisiti

Il corso richiede nozioni di base di Programmazione, Analisi Matematica, Algebra Lineare, Statistica.

Esami

L'esame consiste in una prova scritta.

La prova scritta, con carta e penna, non richiederà la scrittura di codice. Conterrà alcuni esercizi affini agli esempi contenuti nella traccia degli argomenti del corso, e alcune domande di teoria.

I prossimi appelli d'esame avranno luogo durante la sessione invernale (gennaio-febbraio 2018). Le date provvisorie sono le seguenti:

Data Ore Aule
Primo appello Martedì 9 gennaio 9—12
Secondo appello Martedì 6 febbraio 9—12

Prove parziali

La prima prova parziale è accessibile a tutti gli studenti del corso. Consisterà in alcune domande teoriche ed alcuni esercizi sugli argomenti svolti fino alla lezione precedente.
È necessario iscriversi in Esse3 (se impossibile, comunicare l'intenzione di partecipare a mauro.brunato+ProvetteAA@unitn.it la settimana precedente la prova).
L'esito della prova è in trentesimi.

La seconda prova sarà accessibile ai soli studenti che avranno ottenuto almento 18/30 nella prima prova. Avrà una struttura simile alla prima prova e riguarderà gli argomenti svolti nei mesi di novembre e dicembre.

Il voto finale sarà la media aritmetica dei due esiti.

Data Ore Aule
Prima prova parziale Lunedì 30 ottobre 9—12 A103, A104
Seconda prova parziale(*) Mercoledì 20 dicembre 13—16 A206, A207
[Calendario ICAL]
(*) Per chi non può partecipare alla seconda prova parziale del 20 dicembre, è possibile un recupero della stessa al posto del primo appello.

Docenti

Orario

Da mercoledì 13 settembre a mercoledì 20 dicembre 2017 [Calendario ICAL].

  • Teoria: lunedì dalle 14 alle 16 in aula A106.
    Sospensioni:
    • lunedì 30 ottobre (settimana provette).
  • Laboratorio: mercoledì dalle 9 alle 11 in aula B106.
    Sospensioni:
    • mercoledì 1 novembre (Ognissanti).

Altre eventuali variazioni saranno comunicate nel riquadro “Avvisi” in testa alla pagina.

Bibliografia

Per approfondimenti si consigliano le seguenti risorse.

Libri

  • Roberto Battiti and Mauro Brunato
    The LION Way — Machine Learning plus Intelligent Optimization
    LIONlab, 2014.
    ISBN: 978-1-49603-402-1

Pagine e siti web

Materiale del corso

Dispense del corso ed esercizi

  • Annotazioni sugli argomenti svolti a teoria, sulle esercitazioni di laboratorio, domande di autovalutazione ed esercizi
    [versione 2017-11-20]

Esercitazioni di laboratorio

Prove d'esame


Programma svolto

Teoria

  • Presentazione del corso (mercoledì 13 settembre)
    • Descrizione dei contenuti del corso.
    • Modalità d'esame.
  • Introduzione alla Data Science (mercoledì 13 settembre)
    • Discipline che ne fanno parte
    • Frequenti cause di errori metodologici nella statistica classica.
  • Introduzione al Machine Learning (lunedì 18 settembre)
    • Esempi di problemi
    • Classificazione e formalizzazione dei problemi di machine learning: apprendimento supervisionato, classificazione e regressione, apprendimento non supervisionato, clustering.
  • Regressione lineare (lunedì 25 settembre, lunedì 2 ottobre)
    • Valutazione di un modello di regressione: il root mean square error (RMSE)
    • Minimizzazione del RMSE per un modello lineare: il metodo dei minimi quadrati a una e ad n dimensioni.
    • Generalizzazione della regressione lineare per funzioni di base arbitrarie.
    • Utilizzo delle potenze come funzioni di base: la regressione polinomiale (a una dimensione).
  • Validazione di un modello (lunedì 2 ottobre, lunedì 9 ottobre)
    • Valutazione di un modello di classificazione: l'accuratezza.
    • Matrice di confusione per due o più classi.
    • Definizione di “caso positivo”; gli indici di precisione e sensibilità; la F1 score.
    • La cross-validation, K-fold cross-validation, leave-one-out: cross-validation stratificata.
  • Regressione logistica (lunedì 9 ottobre, lunedì 16 ottobre)
    • Utilizzo di un modello lineare con una funzione di soglia per problemi di classificazione.
    • La funzione sigmoide.
    • Ottimizzazione iterativa: la discesa lungo il gradiente
  • Preprocessing dei dati (lunedì 16 ottobre)
    • Normalizzazione e standardizzazione dei dati numerici
    • Trasformazione di attributi categorici in numerici tramite rappresentazione unaria
  • Alberi di decisione (lunedì 6 novembre, lunedì 13 novembre)
    • Criteri di purezza di una distribuzione: entropia, indice di impurità di Gini
    • Alberi di decisione: algoritmo ID3 (standard) nel caso di attributi categorici o numerici discreti e finiti
    • Estensione al caso di feature continue con utilizzo di soglie.
 

Laboratorio

  • Caricamento e analisi di un file (mercoledì 20 settembre)
    • Utilizzo dell'interprete Python
    • Caricamento di un file CSV con il modulo pandas
    • Utilizzo “a scatola chiusa” di un algoritmo di machine learning
    • Rappresentazione grafica dei dati
    • Realizzazione di un semplice algoritmo di machine learning
    Riferimento: dispensa, prima esercitazione.
  • Implementazione di algoritmi di machine learning (mercoledì 27 settembre)
    • Algoritmo K-Nearest Neighbors (KNN)
    • Minimi quadrati a una dimensione.
    Riferimento: dispensa, seconda esercitazione.
  • Regressione polinomiale e validazione di modelli (mercoledì 4 ottobre)
    • Minimi quadrati a più dimensioni: calcolo della pseudo-inversa di una matrice rettangolare
    • Calcolo della regressione polinomiale a una dimensione utilizzando le potenze come funzioni di base
    • Analisi dell'errore di validazione al crescere del grado del polinomio
    Riferimento: dispensa, terza esercitazione.
  • Regressione logistica e discesa lungo il gradiente (mercoledì 18 ottobre, mercoledì 25 ottobre)
    • Implementazione della funzione sigmoide, calcolo del gradiente del modello logit
    • Discesa lungo il gradiente: learning rate adattiva
    Riferimento: dispensa, quarta esercitazione.
  • Alberi di decisione (mercoledì 8 novembre)
    • Addestramento di un albero di decisione Scikit-learn con diversi valori di profondità massima
    Riferimento: dispensa, quinta esercitazione.
  • Alberi di decisione (mercoledì 15 novembre)
    • Realizzazione di un albero di decisione in Python
    Riferimento: dispensa, sesta esercitazione.

Pagina mantenuta da Mauro Brunato