SlideShare uma empresa Scribd logo
1 de 89
Baixar para ler offline
Machine Learning
Luca Naso
European Physical Society
8-15 maggio 2021
1
Luca Naso
8 Maggio 2021
Workshop introduttivo
General Plan
✧ 2 sessioni di 4 ore: sabato 8 maggio + 15 maggio 2021
✧ Slides + codice
✧ Contenuti:
✧ Machine Learning: definizioni e tassonomie
✧ Problemi di Regressione
✧ Valutazione dei modelli
✧ Cenni di problemi di Classificazione e Non-supervisionati
2
Luca Naso
8 Maggio 2021
Definizione
3
8 Maggio 2021 Luca Naso
Wikipedia 1
Il Machine Learning (apprendimento automatico) è quella branca
dell'intelligenza artificiale che raccoglie metodi sviluppati negli ultimi
decenni del XX secolo in varie comunità scientifiche [...]; che utilizza
metodi statistici per migliorare la performance di un algoritmo
nell'identificare pattern nei dati.
Ref: https://it.wikipedia.org/wiki/Apprendimento_automatico
4
8 Maggio 2021 Luca Naso
Definizione operativa di apprendimento
Si dice che un programma apprende dall'esperienza E con riferimento
a alcune classi di compiti T e con misurazione della performance P,
se le sue performance nel compito T, come misurato da P, migliorano
con l'esperienza E.
Da "Machine Learning" di Tom M. Mitchell (1990)
5
8 Maggio 2021 Luca Naso
Wikipedia 2
Nell'ambito dell'informatica, il machine learning è una variante alla
programmazione tradizionale, nella quale in una macchina si
predispone l'abilità di apprendere qualcosa dai dati in maniera
autonoma, senza istruzioni esplicite.
Ref: https://it.wikipedia.org/wiki/Apprendimento_automatico
6
8 Maggio 2021 Luca Naso
Wikipedia 1+2
Il Machine Learning è quella branca dell’informatica che dà ai
computer la possibilità di imparare qualcosa senza che questo gli
venga esplicitamente insegnato, tramite l'applicazione di algoritmi su
dati.
Dati = contengono implicitamente la capacità (e. g. una statua di
Canova contiene implicitamente lo stile Neoclassico)
Algoritmi = servono per imparare (estrarre la capacità dai dati)
7
8 Maggio 2021 Luca Naso
Risolvere senza sapere la soluzione
Il Machine Learning esplora lo studio e la costruzione di algoritmi che
permettono ai computer di imparare una capacità dai dati.
La macchina impara dai dati, non dall'uomo.
Il ruolo dell'uomo non è spigare la soluzione, ma il metodo.
Possiamo risolvere problemi per i quali non sappiamo la soluzione.
Il ML ci consente di barattare dei dati in cambio di una macchina che
possiede una capacità che noi non abbiamo.
Ref: Luca Naso :)
8
8 Maggio 2021 Luca Naso
Esempi
✧ Identificazione dello spam, acquisti online fraudolenti
✧ Ottimizzazione dei prezzi
✧ Stima del rischio (di insolvenza, di incendio, ...)
✧ Face recognition
✧ Sistemi di raccomandazione
✧ Assistenti Vocali
✧ Deep Fake
✧ Auto a guida autonoma
9
8 Maggio 2021 Luca Naso
Evoluzione dell'interesse, fino ad oggi
Google Trend per "Machine Learning"
Feb 2020: max assoluto, poi scende
2004 - 2015: tra il 5% ed il 25% del massimo
10
8 Maggio 2021 Luca Naso
Il futuro?
Technology Hype Cycle
by Gartner
11
8 Maggio 2021 Luca Naso
Tassonomia
12
8 Maggio 2021 Luca Naso
2 vie
Classifichiamo i tipi di Machine Learning seguendo due strade:
✧ 1. In base al modo di apprendere
✧ 2. In base agli output prodotti dal modello
13
8 Maggio 2021 Luca Naso
Tassonomia 1
Per tipo di Apprendimento
14
8 Maggio 2021 Luca Naso
3 tipi di Apprendimento
✧ 1. Apprendimento supervisionato
✧ 2. Apprendimento non supervisionato
✧ 3. Apprendimento rinforzato
15
8 Maggio 2021 Luca Naso
Apprendimento Supervisionato e Non
16
8 Maggio 2021 Luca Naso
Informazioni note per ciascuna osservazione del dataset
Non Supervisionato
1. i valori di input
(caratteristiche, features, X)
2. il valore di output desiderato
(target, y)
Supervisionato
1. i valori di input
(caratteristiche, features, X)
2. il valore di output desiderato
(target, y)
Apprendimento Supervisionato
✧ Per ciascuna osservazione/dato sono noti:
✧ i valori di input (caratteristiche, features, X)
✧ il valore di output desiderato (target, y)
✧ e.g.
✧ Dato l'investimento in pubblicità (osservazione) sappiamo quante
vendite sono state generate (target)
✧ Data temperatura e vento (osservazione) sappiamo se ha piovuto
(target)
17
8 Maggio 2021 Luca Naso
Esempio: Impariamo il cinese
Impariamo i numeri cinesi con l'approccio supervisionato
1. Osservazione = carattere cinese
2. Features = immagine del carattere cinese
3. Target = significato del carattere cinese
18
Luca Naso
8 Maggio 2021
Impariamo il cinese: apprendiamo
19
8 Maggio 2021 Luca Naso
Impariamo il cinese: apprendiamo
20
8 Maggio 2021 Luca Naso
Impariamo il cinese: apprendiamo
21
8 Maggio 2021 Luca Naso
Impariamo il cinese: apprendiamo
22
8 Maggio 2021 Luca Naso
Impariamo il cinese: previsioni
✧ Il nostro cervello ha "automaticamente" trovato un modo di
associare ciascun carattere cinese ad un numero
✧ Che numero è questo?
23
8 Maggio 2021 Luca Naso
= ?
Apprendimento Non Supervisionato
✧ Per ciascuna osservazione/dato sono noti:
✧ i valori di input (caratteristiche, features, X)
✧ il valore di output desiderato (target, y)
✧ e.g.
✧ Dato un insieme di utenti che visita un sito web, trovare dei gruppi con
comportamenti simili
✧ Date le analisi di pazienti con una certa malattia, trovare l'origine della
malattia
24
8 Maggio 2021 Luca Naso
Esempio: Impariamo il cinese
Impariamo i numeri cinesi con l'approccio non supervisionato
1. Osservazione = carattere cinese
2. Features = immagine del carattere cinese
3. Target = non c'è
25
Luca Naso
8 Maggio 2021
Impariamo il cinese 2: apprendiamo
26
8 Maggio 2021 Luca Naso
Impariamo il cinese 2: apprendiamo
27
8 Maggio 2021 Luca Naso
Impariamo il cinese 2: previsioni
六
七 九
28
8 Maggio 2021 Luca Naso
✧ Il nostro cervello ha "automaticamente" raggruppato i caratteri simili insieme
✧ Cosa possiamo dire dei seguenti caratteri?
Note sull'apprendimento Non Supervisionato
✧ Quanti gruppi avrai creato?
✧ Come li avrai chiamati?
✧ Che significato avrai dato a ciascun gruppo?
✧ Che elementi avrai usato per caratterizzarli?
La qualità dell'apprendimento dipende moltissimo dal dataset
✧ Potrebbero mancare dei numeri (classi)
✧ Si potrebbero usare feature errate (e.g. lo spessore)
29
8 Maggio 2021 Luca Naso
Apprendimento Rinforzato
✧ Molto diverso dai precedenti: c'è un'interazione dinamica tra il
soggetto che impara (macchina) e l'ambiente
✧ La macchina interagisce per raggiungere un certo obiettivo
✧ Ad ogni interazione si dice alla macchina se ha fatto bene o male
✧ La macchina impara quali sono le interazioni che deve fare per
raggiungere l'obiettivo
✧ e.g.
✧ Vincere una partita a scacchi
✧ Guidare una macchina rispettando il codice della strada
30
8 Maggio 2021 Luca Naso
Tabella Riepilogativa: Apprendimento
Apprendimento Caratteristica
Supervisionato I dati sono etichettati
Non supervisionato I dati non sono etichettati
Semi-supervisionato Alcuni dati sono etichettati
Rinforzato Ogni status ha un bonus/malus
31
8 Maggio 2021 Luca Naso
Tassonomia 2
Per tipo di Output
32
8 Maggio 2021 Luca Naso
3 tipi di Output
In base a ciò che desideriamo sapere dal sistema di ML
✧ 1. Regressione
✧ 2. Classificazione
✧ 3. Clustering
33
8 Maggio 2021 Luca Naso
Regressione
✧ Per ogni osservazione vogliamo restituire un valore continuo
✧ Solitamente affrontato in maniera supervisionata
✧ Esempi:
✧ Stipendio (in base ad età e titolo di studio)
✧ Peso (in base ad età, sesso ed altezza)
✧ Valore di mercato delle azioni (in base al rendimento precedente)
✧ Vendite in negozio (in base al prezzo, periodo dell'anno e pubblicità)
34
8 Maggio 2021 Luca Naso
Classificazione
✧ Per ogni osservazione vogliamo restituire una classe di
appartenenza
✧ La classe viene scelta tra un insieme di classi note a priori
✧ Solitamente affrontato in maniera supervisionata
✧ Esempi:
✧ Filtri anti-spam
✧ Acquisti fraudolenti
✧ Argomento di un testo
35
8 Maggio 2021 Luca Naso
Clustering
✧ Per ogni osservazione vogliamo restituire una classe di
appartenenza (come la classificazione)
✧ La classe di output viene scelta tra un insieme di classi non note a
priori (diverso dalla classificazione)
✧ Questo è un tipico problema non supervisionato
✧ Esempi:
✧ Comportamento degli utenti di un sito web, dei pazienti di un ospedale,
degli automobilisti di una città, ...
✧ Relazioni tra i geni di pazienti con o senza una certa patologia
36
8 Maggio 2021 Luca Naso
Tabella Riepilogativa: Output
Nome Output Esempio
Regressione Continuo Peso
Classificazione Discreto - noto a priori = si Spam
Clustering Discreto - noto a priori = no Comportamento
37
8 Maggio 2021 Luca Naso
Scelta algoritmo
Conoscere le tassonomie dei problemi di machine learning
rappresenta il primo passo nella scelta del giusto algoritmo
38
8 Maggio 2021 Luca Naso
Albero decisionale per l'algoritmo
39
Luca Naso
8 Maggio 2021
Modelli di
Machine Learning
40
8 Maggio 2021 Luca Naso
Percorso
1. Abbiamo capito cosa è il Machine Learning (definizione)
2. Abbiamo capito quali sono i vari tipi di Machine Learning
(tassonomia)
3. Vediamo adesso di entrare ancora più a fondo su cosa sia un
modello di Machine Learning
41
Luca Naso
8 Maggio 2021
Costruire un modello di ML
✧ Consideriamo il caso di problemi supervisionati e di regressione
✧ Costruire un modello di ML significa trovare una funzione che
associa ad ogni osservazione un valore di output
✧ Le osservazioni sono vettori dello spazio N-dimensionale delle feature
(o predittori), di solito indicate con X
✧ L'output (o target) è uno scalare, di solito indicato con y
✧ Noi vogliamo trovare quella funzione per cui y = f(X)
✧ Vediamolo meglio...
42
8 Maggio 2021 Luca Naso
Costruire un modello di ML
✧ Ci sono N osservazioni e P features (per ogni osservazione)
✧ L'osservazione i-esima si scrive come
✧ L'insieme di tutto il dataset si scrive come
✧ Noi cerchiamo quella funzione f per cui
43
8 Maggio 2021 Luca Naso
Costruire un modello di ML: esempio
✧ Stimare il peso di una persona in base ad altezza, sesso ed età
✧ feature = altezza, sesso, età
✧ X = vettore a 3 dimensioni
✧ y = peso
✧ L'osservazione i-esima si scrive come
✧ Ed il modello è:
44
8 Maggio 2021 Luca Naso
Costruire un modello di ML: esempio
Alcune osservazioni del dataset:
✧ X1 = (181 cm, uomo, 28) -----> y1 = 82 kg
✧ X2 = (164 cm, donna, 25) -----> y2 = 61 kg
✧ X3 = (172 cm, donna, 27) -----> y3 = 63 kg
45
8 Maggio 2021 Luca Naso
Componenti aleatorie ed errori
✧ E' accettabile avere osservazioni uguali con target diversi?
✧ X4 = (171 cm, uomo, 31) -----> y4 = 71 kg
✧ X5 = (171 cm, uomo, 31) -----> y5 = 83 kg
✧ Sì, Machine Learning ≠ Interpolazione, per questo in realtà cerchiamo:
✧ Il termine aggiunto non dipende da X ed è scomposto in:
✧ 1. Variabilità intrinseca del fenomeno
✧ 2. Errore del modello di machine learning
46
8 Maggio 2021 Luca Naso
Esempio grafico
Si capisce tutto meglio con un grafico
47
8 Maggio 2021 Luca Naso
Passiamo a Python
Simuliamo un dataset di osservazioni
- con 1 feature
- ed etichettate
Feature: numeri casuali
Etichette: relazione lineare con fluttuazioni
48
Luca Naso
8 Maggio 2021
Codice Python
import numpy as np
import matplotlib.pyplot as plt
obs_number = 200
# features
X = 1 + 2 * np.random.random(obs_number)
# targets
a = 3.5
b = 8
fluctuations = 0.2
y = b + a * X + fluctuations * np.random.randn(obs_number)
# plot
plt.plot(X, y, '+')
plt.show()
49
Luca Naso
8 Maggio 2021
SLR
Simple Linear Regression
50
15 Maggio 2021 Luca Naso
Simple Linear Regression
✧ La Simple Linear Regression è un algoritmo di machine learning
che si usa quando si verificano 4 condizioni:
✧ 1. La grandezza da prevedere y è quantitativa (regressione)
✧ 2. Il valore di y è noto per tutte le osservazioni (supervisionato)
✧ 3. y dipende principalmente da un solo predittore X (simple)
✧ 4. La dipendenza tra y ed X è di tipo lineare (linear)
✧ In notazione matematica si scrive (equazione retta)
✧ Dove i 2 coefficienti sono delle costanti da determinare
51
15 Maggio 2021 Luca Naso
Nuvola di punti --> retta
✧ Interpretazione grafica: la SLR approssima una nuvola di punti
(osservazioni, coppie X, y) in una retta (modello)
✧ Quale retta scegliere?
✧ Quella che rende minimo l'errore
✧ Come misuriamo l'errore?
✧ Con il residuo (Residual Sum of Squares)
✧ Come rendiamo minimo l'RSS?
✧ Con la procedura dei minimi quadrati (vedi Lab 1)
52
15 Maggio 2021 Luca Naso
Nuvola di punti
53
15 Maggio 2021 Luca Naso
Nuvola di punti + retta 1
54
8 Maggio 2021 Luca Naso
Nuvola di punti + retta 2
55
15 Maggio 2021 Luca Naso
Residuo
56
15 Maggio 2021 Luca Naso
Tanti Residui
57
15 Maggio 2021 Luca Naso
RSS - Residual Sum of Squares
1. Differenza tra valore target osservato e valore target previsto dal
modello per quell'osservazione
2. Elevato al quadrato
3. Sommato su tutte le osservazioni
• MSE (Mean Squared Error) = RSS / N
58
15 Maggio 2021 Luca Naso
Minimi Quadrati -> Modello -> Previsioni
✧ Minimi quadrati
✧ Imponendo RSS = minimo si ottengono (analiticamente) i valori dei
coefficienti della combinazione lineare
✧ Modello
✧ Il modello diventa dunque qualcosa tipo:
✧ Previsioni
✧ Per stimare il target y di una nuova osservazione, ci basta sapere il
valore del suo predittore (o feature) X.
59
15 Maggio 2021 Luca Naso
Attenzione
Applicare le dovute cautele
1. se X della nuova osservazione è molto diversa dai valori utilizzati
durante l'addestramento (estrapolazione)
2. se le ipotesi iniziali potrebbero non valere, e.g. relazione lineare,
assenza di altri predittori
60
15 Maggio 2021 Luca Naso
Nuvola di punti + modello SLR
61
15 Maggio 2021 Luca Naso
Passiamo a Python
Creiamo un modello di SLR
- Usiamo LinearRegression da sklearn
- .fit per fare il train
- .predict per le previsioni
- .coef_ e .intercept_ per il modello
62
Luca Naso
15 Maggio 2021
MLR
Multiple Linear Regression
63
15 Maggio 2021 Luca Naso
Multiple Linear Regression
✧ La Simple Linear Regression è la generalizzazione della SLR a più
predittori:
✧ 1. La grandezza da prevedire y è quantitativa (regressione)
✧ 2. Il valore di y è noto per tutte le osservazioni (supervisionato)
✧ 3. y dipende da 2 o più predittori X_i (multiple)
✧ 4. La dipendenza tra y e gli X_i è di tipo lineare (linear)
✧ In notazione matematica si scrive (iperpiano)
64
15 Maggio 2021 Luca Naso
Calcolo del Modello di MLR
Il calcolo del modello segue la stessa logica della SLR:
✧ Si cerca l'iperpiano che rappresenta meglio la nuvola di punti
✧ Si definisce l'errore come RSS
✧ Si minimizza l'RSS
✧ Si determinano i coefficienti del modello (c'è sempre una soluzione
fintanto che N > P, normalmente N >> P)
65
15 Maggio 2021 Luca Naso
Modello e previsioni
✧ Esempio di modello finale
✧ Possiamo fare una previsione sul valore del target y nel momento
in cui abbiamo i valori delle feature X_1 e X_2.
✧ Il coefficiente di un predittore misura l'effetto di quel predittore sul
target a parità di tutti gli altri (tenendo gli altri costanti).
66
15 Maggio 2021 Luca Naso
Passiamo a Python
Creiamo un modello di MLR
- Aggiorniamo il dataset
- Usiamo ancora LinearRegression da
sklearn
67
Luca Naso
15 Maggio 2021
Generalizzazione a modelli non lineari
E’ possibile estendere i modelli di regressione multipla anche a
combinazioni non lineari. Si parla di:
✧ Combinazioni non lineari dallo stesso predittore, e.g. X_4^2
✧ Interazione di più predittori insieme o Sinergia, e.g. X_2 * X_3
68
15 Maggio 2021 Luca Naso
Riepilogo
✧ Cosa è il Machine Learning
✧ Come si suddividono i problemi di Machine Learning
✧ Problemi di Regressione
✧ Simple Linear Regression
✧ Multiple Linear Regression
69
15 Maggio 2021 Luca Naso
Valutazione
70
15 Maggio 2021 Luca Naso
Valutare un modello
Come facciamo a quantificare la bontà di un modello? Ad esempio per
confrontare due modelli tra loro?
✧ Normalmente non sappiamo i "veri" valori dei coefficienti (a dire il
vero non sappiamo neanche la vera forma della funzione f!)
✧ Abbiamo già incontrato il tema dell’errore durante la fase di
training del modello à Least Squares e RSS
✧ Non va bene per diversi motivi, in particolare perché noi siamo
interessati all’errore che commettiamo sulle previsioni (futuro), non
sui dati che già abbiamo (passato).
71
15 Maggio 2021 Luca Naso
Errore sulle previsioni
Voi come fareste
a calcolare l’errore che si può fare su nuovi dati
mai usati nell’addestramento dell’algoritmo
?
72
Luca Naso
15 Maggio 2021
Test-set error
✧ Si evita di usare tutti i dati quando si fa l’addestramento
✧ è si mettono da parte alcuni dati
✧ è si crea un test-set
✧ Si misura l’errore usando i dati nel test-set
1. Validation
2. LOO Cross Validation
3. K-fold CV
73
15 Maggio 2021 Luca Naso
Validation Set
✧ Dividi il dataset in 2 parti uguali: una per il train, una per il test
✧ Pro: Riesce a misurare il test error
✧ Contro:
1. L’errore viene sovrastimato (modello fatto con pochi dati)
2. Stima dell’errore molto variabile (in base a come dividiamo i dati)
74
15 Maggio 2021 Luca Naso
Leave-One-Out Cross-Validation
Nasce per risolvere i problemi del Validation set
1. Sovrastima dell’errore
✧ Dividi ancora in 2 parti ma non uguali:
✧ la prima parte contiene tutti i dati tranne 1 e si usa per il train,
✧ la seconda parte contiene 1 solo dato e si usa come per il test
75
15 Maggio 2021 Luca Naso
Leave-One-Out Cross-Validation
2. Variabilità dell’errore
✧ Ripeti la procedura N volte (ciascuna osservazione è usata come
test una volta) e fai la media dei risultati
76
15 Maggio 2021 Luca Naso
Schema LOO CV
77
Luca Naso
8 Maggio 2021
Schema LOO CV
78
Luca Naso
8 Maggio 2021
Leave-One-Out Cross-Validation
✧ Pro:
✧ Buona stima dell’errore
✧ Nessuna variabilità
✧ Contro:
✧ computazionalmente costoso (soluzione analitica per minimi quadrati
con modelli lineari o polinomiali)
79
15 Maggio 2021 Luca Naso
K-fold Cross-Validation
Come la LOOCV, ma invece di mettere da parte 1 sola osservazione se
ne mettono di più
1. Il dataset si divide in k parti
2. k-1 vengono usate per il train
3. quella da parte per il test.
4. Ripeti k volte, in modo che tutte le parti sono usate per il test, e fai
la media dell’errore.
Questo è lo stato dell’arte per la valutazione di un modello.
80
15 Maggio 2021 Luca Naso
Schema K-fold Cross-Validation
81
15 Maggio 2021 Luca Naso
Classificazione e Non
Supervisionati
82
15 Maggio 2021 Luca Naso
Classificazione
Simile alla regressione, ma il target è una categoria, non un numero, e.g.
✧ Etichettare un e-mail come spam o no
✧ Trovare il genere di una persona
✧ Capire un l'argomento di un testo
✧ Segnalare se una transazione e' fraudolenta o no
✧ Associare un segno scritto a mano ad un numero
✧ Identificare la famiglia di una pianta
✧ Si assume che le osservazioni appartengano a due o più classi e si
cerca di identificare a quale classe in base ai valori delle feature
✧ A volte si trasforma il problema in uno di regressione cercando la
probabilità che un'osservazione appartenga alla classe
83
15 Maggio 2021 Luca Naso
Classificazione: esempio in Python
✧ Iris dataset
✧ 150 osservazioni
✧ 4 feature
✧ 3 possibili classi: setosa, versicolor, virginica
✧ Algoritmo di classificazione: SVC, C-Support Vector Classification,
un tipo di SVM (Support Vector Machine)
84
15 Maggio 2021 Luca Naso
Clustering
Simile alla Classificazione, ma il target non è noto a priori
✧ Non si conoscono le classi, né le appartenenze delle osservazioni
✧ Problemi di "segmentazione"
✧ Capire quanti gruppi di clienti ci sono tra i miei clienti attuali
✧ Si cercano clienti "simili" tra di loro, ma "diversi" dagli altri
✧ La segmentazione può essere applicata a diverse entità:
✧ Clienti di un negozio
✧ Utenti di un sito web
✧ Pagine di un'applicazione
✧ DNA dei grani antichi
85
15 Maggio 2021 Luca Naso
Clsutering: esempio in Python
✧ Dataset sintetico (realizzato con make_blobs)
✧ Scegliamo noi quanti gruppi creare
✧ e quante osservazioni usare
✧ Algoritmo: K-Means
✧ Usiamo K-Means sui dati
✧ Riportiamo i risultati in un plot
✧ Confrontiamo con la distribuzione iniziale
✧ Per andare oltre:
✧ Usare K-Means con un diverso numero di gruppi
✧ Modificare la variabilità dei gruppi iniziali
✧ Come scegliere il numero di gruppi (per K-Means)?
86
15 Maggio 2021 Luca Naso
Conclusioni
87
15 Maggio 2021 Luca Naso
Riepilogo
1. Cosa è il Machine Learning
2. Come si suddividono i problemi di Machine Learning
3. Problemi di Regressione
✧ Simple Linear Regression
✧ Multiple Linear Regression
4. Model Selection
✧ Validation Set
✧ LOOCV
✧ K-fold Cross Validation
5. Problemi di Classificazione (cenni)
6. Problemi di Clustering (cenni)
88
15 Maggio 2021 Luca Naso
Risorse
89
Luca Naso
8 Maggio 2021
Queste slides: slideshare
www.slideshare.net/LucaNaso/
Il codice: github github.com/lucanaso/mlworkshop-
eps
Luca Naso: Linkedin www.linkedin.com/in/lucanaso/

Mais conteúdo relacionado

Mais procurados

Diseño de pantallas en as400
Diseño de pantallas en as400Diseño de pantallas en as400
Diseño de pantallas en as400Carlos
 
Deep Learning - Overview of my work II
Deep Learning - Overview of my work IIDeep Learning - Overview of my work II
Deep Learning - Overview of my work IIMohamed Loey
 
PROJECT REPORT ON CRYPTOGRAPHIC ALGORITHM
PROJECT REPORT ON CRYPTOGRAPHIC ALGORITHMPROJECT REPORT ON CRYPTOGRAPHIC ALGORITHM
PROJECT REPORT ON CRYPTOGRAPHIC ALGORITHMsaniacorreya
 
Recurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRURecurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRUananth
 
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language Understandinggohyunwoong
 
Natural language processing PPT presentation
Natural language processing PPT presentationNatural language processing PPT presentation
Natural language processing PPT presentationSai Mohith
 
1 - Introduction to Compilers.ppt
1 - Introduction to Compilers.ppt1 - Introduction to Compilers.ppt
1 - Introduction to Compilers.pptRakesh Kumar
 
Reporte Incidencia delictiva regional Guanajuato
Reporte Incidencia delictiva regional GuanajuatoReporte Incidencia delictiva regional Guanajuato
Reporte Incidencia delictiva regional GuanajuatoIrapuatoCmovamos
 

Mais procurados (14)

Diseño de pantallas en as400
Diseño de pantallas en as400Diseño de pantallas en as400
Diseño de pantallas en as400
 
Deep Learning - Overview of my work II
Deep Learning - Overview of my work IIDeep Learning - Overview of my work II
Deep Learning - Overview of my work II
 
PROJECT REPORT ON CRYPTOGRAPHIC ALGORITHM
PROJECT REPORT ON CRYPTOGRAPHIC ALGORITHMPROJECT REPORT ON CRYPTOGRAPHIC ALGORITHM
PROJECT REPORT ON CRYPTOGRAPHIC ALGORITHM
 
Recurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRURecurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRU
 
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
 
Dynamic Semantics
Dynamic SemanticsDynamic Semantics
Dynamic Semantics
 
Natural language processing PPT presentation
Natural language processing PPT presentationNatural language processing PPT presentation
Natural language processing PPT presentation
 
Pattern recognition
Pattern recognitionPattern recognition
Pattern recognition
 
C++ io manipulation
C++ io manipulationC++ io manipulation
C++ io manipulation
 
1 - Introduction to Compilers.ppt
1 - Introduction to Compilers.ppt1 - Introduction to Compilers.ppt
1 - Introduction to Compilers.ppt
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural Networks
 
LSTM Basics
LSTM BasicsLSTM Basics
LSTM Basics
 
Polymorphism.pptx
Polymorphism.pptxPolymorphism.pptx
Polymorphism.pptx
 
Reporte Incidencia delictiva regional Guanajuato
Reporte Incidencia delictiva regional GuanajuatoReporte Incidencia delictiva regional Guanajuato
Reporte Incidencia delictiva regional Guanajuato
 

Semelhante a Workshop introduttivo al Machine Learning in Python

Introduzione al coding
Introduzione al codingIntroduzione al coding
Introduzione al codingPaolo Righetto
 
Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...
Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...
Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...Natura Matematica
 
Didattica E Nuove Tecnologie
Didattica E Nuove TecnologieDidattica E Nuove Tecnologie
Didattica E Nuove TecnologieIvan
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Commit University
 
Digital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETDigital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETMarco Zamana
 

Semelhante a Workshop introduttivo al Machine Learning in Python (7)

Introduzione al coding
Introduzione al codingIntroduzione al coding
Introduzione al coding
 
Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...
Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...
Matemedialità (primo seminario): insegnare ed apprendere principi aritmetici,...
 
Didattica E Nuove Tecnologie
Didattica E Nuove TecnologieDidattica E Nuove Tecnologie
Didattica E Nuove Tecnologie
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
 
Digital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETDigital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NET
 
Corso Java - Introduzione
Corso Java - IntroduzioneCorso Java - Introduzione
Corso Java - Introduzione
 
Manuale python
Manuale pythonManuale python
Manuale python
 

Mais de Luca Naso

Machine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit Details
Machine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit DetailsMachine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit Details
Machine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit DetailsLuca Naso
 
Machine learning: Definizione e Tipologie
Machine learning: Definizione e TipologieMachine learning: Definizione e Tipologie
Machine learning: Definizione e TipologieLuca Naso
 
Big Data - Breve panoramica
Big Data - Breve panoramicaBig Data - Breve panoramica
Big Data - Breve panoramicaLuca Naso
 
Machine Learning - Breve panoramica
Machine Learning - Breve panoramicaMachine Learning - Breve panoramica
Machine Learning - Breve panoramicaLuca Naso
 
Cos'è il Machine Learning?
Cos'è il Machine Learning?Cos'è il Machine Learning?
Cos'è il Machine Learning?Luca Naso
 
Problem Solving
Problem SolvingProblem Solving
Problem SolvingLuca Naso
 
The What, Why and How of Big Data
The What, Why and How of Big DataThe What, Why and How of Big Data
The What, Why and How of Big DataLuca Naso
 
How to plan a successful Digital Signage Campaign in 5 steps
How to plan a successful Digital Signage Campaign in 5 stepsHow to plan a successful Digital Signage Campaign in 5 steps
How to plan a successful Digital Signage Campaign in 5 stepsLuca Naso
 

Mais de Luca Naso (8)

Machine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit Details
Machine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit DetailsMachine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit Details
Machine Learning Workshop - EPS YM CT - parte 1 (8 Maggio 2021) Edit Details
 
Machine learning: Definizione e Tipologie
Machine learning: Definizione e TipologieMachine learning: Definizione e Tipologie
Machine learning: Definizione e Tipologie
 
Big Data - Breve panoramica
Big Data - Breve panoramicaBig Data - Breve panoramica
Big Data - Breve panoramica
 
Machine Learning - Breve panoramica
Machine Learning - Breve panoramicaMachine Learning - Breve panoramica
Machine Learning - Breve panoramica
 
Cos'è il Machine Learning?
Cos'è il Machine Learning?Cos'è il Machine Learning?
Cos'è il Machine Learning?
 
Problem Solving
Problem SolvingProblem Solving
Problem Solving
 
The What, Why and How of Big Data
The What, Why and How of Big DataThe What, Why and How of Big Data
The What, Why and How of Big Data
 
How to plan a successful Digital Signage Campaign in 5 steps
How to plan a successful Digital Signage Campaign in 5 stepsHow to plan a successful Digital Signage Campaign in 5 steps
How to plan a successful Digital Signage Campaign in 5 steps
 

Workshop introduttivo al Machine Learning in Python

  • 1. Machine Learning Luca Naso European Physical Society 8-15 maggio 2021 1 Luca Naso 8 Maggio 2021 Workshop introduttivo
  • 2. General Plan ✧ 2 sessioni di 4 ore: sabato 8 maggio + 15 maggio 2021 ✧ Slides + codice ✧ Contenuti: ✧ Machine Learning: definizioni e tassonomie ✧ Problemi di Regressione ✧ Valutazione dei modelli ✧ Cenni di problemi di Classificazione e Non-supervisionati 2 Luca Naso 8 Maggio 2021
  • 4. Wikipedia 1 Il Machine Learning (apprendimento automatico) è quella branca dell'intelligenza artificiale che raccoglie metodi sviluppati negli ultimi decenni del XX secolo in varie comunità scientifiche [...]; che utilizza metodi statistici per migliorare la performance di un algoritmo nell'identificare pattern nei dati. Ref: https://it.wikipedia.org/wiki/Apprendimento_automatico 4 8 Maggio 2021 Luca Naso
  • 5. Definizione operativa di apprendimento Si dice che un programma apprende dall'esperienza E con riferimento a alcune classi di compiti T e con misurazione della performance P, se le sue performance nel compito T, come misurato da P, migliorano con l'esperienza E. Da "Machine Learning" di Tom M. Mitchell (1990) 5 8 Maggio 2021 Luca Naso
  • 6. Wikipedia 2 Nell'ambito dell'informatica, il machine learning è una variante alla programmazione tradizionale, nella quale in una macchina si predispone l'abilità di apprendere qualcosa dai dati in maniera autonoma, senza istruzioni esplicite. Ref: https://it.wikipedia.org/wiki/Apprendimento_automatico 6 8 Maggio 2021 Luca Naso
  • 7. Wikipedia 1+2 Il Machine Learning è quella branca dell’informatica che dà ai computer la possibilità di imparare qualcosa senza che questo gli venga esplicitamente insegnato, tramite l'applicazione di algoritmi su dati. Dati = contengono implicitamente la capacità (e. g. una statua di Canova contiene implicitamente lo stile Neoclassico) Algoritmi = servono per imparare (estrarre la capacità dai dati) 7 8 Maggio 2021 Luca Naso
  • 8. Risolvere senza sapere la soluzione Il Machine Learning esplora lo studio e la costruzione di algoritmi che permettono ai computer di imparare una capacità dai dati. La macchina impara dai dati, non dall'uomo. Il ruolo dell'uomo non è spigare la soluzione, ma il metodo. Possiamo risolvere problemi per i quali non sappiamo la soluzione. Il ML ci consente di barattare dei dati in cambio di una macchina che possiede una capacità che noi non abbiamo. Ref: Luca Naso :) 8 8 Maggio 2021 Luca Naso
  • 9. Esempi ✧ Identificazione dello spam, acquisti online fraudolenti ✧ Ottimizzazione dei prezzi ✧ Stima del rischio (di insolvenza, di incendio, ...) ✧ Face recognition ✧ Sistemi di raccomandazione ✧ Assistenti Vocali ✧ Deep Fake ✧ Auto a guida autonoma 9 8 Maggio 2021 Luca Naso
  • 10. Evoluzione dell'interesse, fino ad oggi Google Trend per "Machine Learning" Feb 2020: max assoluto, poi scende 2004 - 2015: tra il 5% ed il 25% del massimo 10 8 Maggio 2021 Luca Naso
  • 11. Il futuro? Technology Hype Cycle by Gartner 11 8 Maggio 2021 Luca Naso
  • 13. 2 vie Classifichiamo i tipi di Machine Learning seguendo due strade: ✧ 1. In base al modo di apprendere ✧ 2. In base agli output prodotti dal modello 13 8 Maggio 2021 Luca Naso
  • 14. Tassonomia 1 Per tipo di Apprendimento 14 8 Maggio 2021 Luca Naso
  • 15. 3 tipi di Apprendimento ✧ 1. Apprendimento supervisionato ✧ 2. Apprendimento non supervisionato ✧ 3. Apprendimento rinforzato 15 8 Maggio 2021 Luca Naso
  • 16. Apprendimento Supervisionato e Non 16 8 Maggio 2021 Luca Naso Informazioni note per ciascuna osservazione del dataset Non Supervisionato 1. i valori di input (caratteristiche, features, X) 2. il valore di output desiderato (target, y) Supervisionato 1. i valori di input (caratteristiche, features, X) 2. il valore di output desiderato (target, y)
  • 17. Apprendimento Supervisionato ✧ Per ciascuna osservazione/dato sono noti: ✧ i valori di input (caratteristiche, features, X) ✧ il valore di output desiderato (target, y) ✧ e.g. ✧ Dato l'investimento in pubblicità (osservazione) sappiamo quante vendite sono state generate (target) ✧ Data temperatura e vento (osservazione) sappiamo se ha piovuto (target) 17 8 Maggio 2021 Luca Naso
  • 18. Esempio: Impariamo il cinese Impariamo i numeri cinesi con l'approccio supervisionato 1. Osservazione = carattere cinese 2. Features = immagine del carattere cinese 3. Target = significato del carattere cinese 18 Luca Naso 8 Maggio 2021
  • 19. Impariamo il cinese: apprendiamo 19 8 Maggio 2021 Luca Naso
  • 20. Impariamo il cinese: apprendiamo 20 8 Maggio 2021 Luca Naso
  • 21. Impariamo il cinese: apprendiamo 21 8 Maggio 2021 Luca Naso
  • 22. Impariamo il cinese: apprendiamo 22 8 Maggio 2021 Luca Naso
  • 23. Impariamo il cinese: previsioni ✧ Il nostro cervello ha "automaticamente" trovato un modo di associare ciascun carattere cinese ad un numero ✧ Che numero è questo? 23 8 Maggio 2021 Luca Naso = ?
  • 24. Apprendimento Non Supervisionato ✧ Per ciascuna osservazione/dato sono noti: ✧ i valori di input (caratteristiche, features, X) ✧ il valore di output desiderato (target, y) ✧ e.g. ✧ Dato un insieme di utenti che visita un sito web, trovare dei gruppi con comportamenti simili ✧ Date le analisi di pazienti con una certa malattia, trovare l'origine della malattia 24 8 Maggio 2021 Luca Naso
  • 25. Esempio: Impariamo il cinese Impariamo i numeri cinesi con l'approccio non supervisionato 1. Osservazione = carattere cinese 2. Features = immagine del carattere cinese 3. Target = non c'è 25 Luca Naso 8 Maggio 2021
  • 26. Impariamo il cinese 2: apprendiamo 26 8 Maggio 2021 Luca Naso
  • 27. Impariamo il cinese 2: apprendiamo 27 8 Maggio 2021 Luca Naso
  • 28. Impariamo il cinese 2: previsioni 六 七 九 28 8 Maggio 2021 Luca Naso ✧ Il nostro cervello ha "automaticamente" raggruppato i caratteri simili insieme ✧ Cosa possiamo dire dei seguenti caratteri?
  • 29. Note sull'apprendimento Non Supervisionato ✧ Quanti gruppi avrai creato? ✧ Come li avrai chiamati? ✧ Che significato avrai dato a ciascun gruppo? ✧ Che elementi avrai usato per caratterizzarli? La qualità dell'apprendimento dipende moltissimo dal dataset ✧ Potrebbero mancare dei numeri (classi) ✧ Si potrebbero usare feature errate (e.g. lo spessore) 29 8 Maggio 2021 Luca Naso
  • 30. Apprendimento Rinforzato ✧ Molto diverso dai precedenti: c'è un'interazione dinamica tra il soggetto che impara (macchina) e l'ambiente ✧ La macchina interagisce per raggiungere un certo obiettivo ✧ Ad ogni interazione si dice alla macchina se ha fatto bene o male ✧ La macchina impara quali sono le interazioni che deve fare per raggiungere l'obiettivo ✧ e.g. ✧ Vincere una partita a scacchi ✧ Guidare una macchina rispettando il codice della strada 30 8 Maggio 2021 Luca Naso
  • 31. Tabella Riepilogativa: Apprendimento Apprendimento Caratteristica Supervisionato I dati sono etichettati Non supervisionato I dati non sono etichettati Semi-supervisionato Alcuni dati sono etichettati Rinforzato Ogni status ha un bonus/malus 31 8 Maggio 2021 Luca Naso
  • 32. Tassonomia 2 Per tipo di Output 32 8 Maggio 2021 Luca Naso
  • 33. 3 tipi di Output In base a ciò che desideriamo sapere dal sistema di ML ✧ 1. Regressione ✧ 2. Classificazione ✧ 3. Clustering 33 8 Maggio 2021 Luca Naso
  • 34. Regressione ✧ Per ogni osservazione vogliamo restituire un valore continuo ✧ Solitamente affrontato in maniera supervisionata ✧ Esempi: ✧ Stipendio (in base ad età e titolo di studio) ✧ Peso (in base ad età, sesso ed altezza) ✧ Valore di mercato delle azioni (in base al rendimento precedente) ✧ Vendite in negozio (in base al prezzo, periodo dell'anno e pubblicità) 34 8 Maggio 2021 Luca Naso
  • 35. Classificazione ✧ Per ogni osservazione vogliamo restituire una classe di appartenenza ✧ La classe viene scelta tra un insieme di classi note a priori ✧ Solitamente affrontato in maniera supervisionata ✧ Esempi: ✧ Filtri anti-spam ✧ Acquisti fraudolenti ✧ Argomento di un testo 35 8 Maggio 2021 Luca Naso
  • 36. Clustering ✧ Per ogni osservazione vogliamo restituire una classe di appartenenza (come la classificazione) ✧ La classe di output viene scelta tra un insieme di classi non note a priori (diverso dalla classificazione) ✧ Questo è un tipico problema non supervisionato ✧ Esempi: ✧ Comportamento degli utenti di un sito web, dei pazienti di un ospedale, degli automobilisti di una città, ... ✧ Relazioni tra i geni di pazienti con o senza una certa patologia 36 8 Maggio 2021 Luca Naso
  • 37. Tabella Riepilogativa: Output Nome Output Esempio Regressione Continuo Peso Classificazione Discreto - noto a priori = si Spam Clustering Discreto - noto a priori = no Comportamento 37 8 Maggio 2021 Luca Naso
  • 38. Scelta algoritmo Conoscere le tassonomie dei problemi di machine learning rappresenta il primo passo nella scelta del giusto algoritmo 38 8 Maggio 2021 Luca Naso
  • 39. Albero decisionale per l'algoritmo 39 Luca Naso 8 Maggio 2021
  • 40. Modelli di Machine Learning 40 8 Maggio 2021 Luca Naso
  • 41. Percorso 1. Abbiamo capito cosa è il Machine Learning (definizione) 2. Abbiamo capito quali sono i vari tipi di Machine Learning (tassonomia) 3. Vediamo adesso di entrare ancora più a fondo su cosa sia un modello di Machine Learning 41 Luca Naso 8 Maggio 2021
  • 42. Costruire un modello di ML ✧ Consideriamo il caso di problemi supervisionati e di regressione ✧ Costruire un modello di ML significa trovare una funzione che associa ad ogni osservazione un valore di output ✧ Le osservazioni sono vettori dello spazio N-dimensionale delle feature (o predittori), di solito indicate con X ✧ L'output (o target) è uno scalare, di solito indicato con y ✧ Noi vogliamo trovare quella funzione per cui y = f(X) ✧ Vediamolo meglio... 42 8 Maggio 2021 Luca Naso
  • 43. Costruire un modello di ML ✧ Ci sono N osservazioni e P features (per ogni osservazione) ✧ L'osservazione i-esima si scrive come ✧ L'insieme di tutto il dataset si scrive come ✧ Noi cerchiamo quella funzione f per cui 43 8 Maggio 2021 Luca Naso
  • 44. Costruire un modello di ML: esempio ✧ Stimare il peso di una persona in base ad altezza, sesso ed età ✧ feature = altezza, sesso, età ✧ X = vettore a 3 dimensioni ✧ y = peso ✧ L'osservazione i-esima si scrive come ✧ Ed il modello è: 44 8 Maggio 2021 Luca Naso
  • 45. Costruire un modello di ML: esempio Alcune osservazioni del dataset: ✧ X1 = (181 cm, uomo, 28) -----> y1 = 82 kg ✧ X2 = (164 cm, donna, 25) -----> y2 = 61 kg ✧ X3 = (172 cm, donna, 27) -----> y3 = 63 kg 45 8 Maggio 2021 Luca Naso
  • 46. Componenti aleatorie ed errori ✧ E' accettabile avere osservazioni uguali con target diversi? ✧ X4 = (171 cm, uomo, 31) -----> y4 = 71 kg ✧ X5 = (171 cm, uomo, 31) -----> y5 = 83 kg ✧ Sì, Machine Learning ≠ Interpolazione, per questo in realtà cerchiamo: ✧ Il termine aggiunto non dipende da X ed è scomposto in: ✧ 1. Variabilità intrinseca del fenomeno ✧ 2. Errore del modello di machine learning 46 8 Maggio 2021 Luca Naso
  • 47. Esempio grafico Si capisce tutto meglio con un grafico 47 8 Maggio 2021 Luca Naso
  • 48. Passiamo a Python Simuliamo un dataset di osservazioni - con 1 feature - ed etichettate Feature: numeri casuali Etichette: relazione lineare con fluttuazioni 48 Luca Naso 8 Maggio 2021
  • 49. Codice Python import numpy as np import matplotlib.pyplot as plt obs_number = 200 # features X = 1 + 2 * np.random.random(obs_number) # targets a = 3.5 b = 8 fluctuations = 0.2 y = b + a * X + fluctuations * np.random.randn(obs_number) # plot plt.plot(X, y, '+') plt.show() 49 Luca Naso 8 Maggio 2021
  • 50. SLR Simple Linear Regression 50 15 Maggio 2021 Luca Naso
  • 51. Simple Linear Regression ✧ La Simple Linear Regression è un algoritmo di machine learning che si usa quando si verificano 4 condizioni: ✧ 1. La grandezza da prevedere y è quantitativa (regressione) ✧ 2. Il valore di y è noto per tutte le osservazioni (supervisionato) ✧ 3. y dipende principalmente da un solo predittore X (simple) ✧ 4. La dipendenza tra y ed X è di tipo lineare (linear) ✧ In notazione matematica si scrive (equazione retta) ✧ Dove i 2 coefficienti sono delle costanti da determinare 51 15 Maggio 2021 Luca Naso
  • 52. Nuvola di punti --> retta ✧ Interpretazione grafica: la SLR approssima una nuvola di punti (osservazioni, coppie X, y) in una retta (modello) ✧ Quale retta scegliere? ✧ Quella che rende minimo l'errore ✧ Come misuriamo l'errore? ✧ Con il residuo (Residual Sum of Squares) ✧ Come rendiamo minimo l'RSS? ✧ Con la procedura dei minimi quadrati (vedi Lab 1) 52 15 Maggio 2021 Luca Naso
  • 53. Nuvola di punti 53 15 Maggio 2021 Luca Naso
  • 54. Nuvola di punti + retta 1 54 8 Maggio 2021 Luca Naso
  • 55. Nuvola di punti + retta 2 55 15 Maggio 2021 Luca Naso
  • 57. Tanti Residui 57 15 Maggio 2021 Luca Naso
  • 58. RSS - Residual Sum of Squares 1. Differenza tra valore target osservato e valore target previsto dal modello per quell'osservazione 2. Elevato al quadrato 3. Sommato su tutte le osservazioni • MSE (Mean Squared Error) = RSS / N 58 15 Maggio 2021 Luca Naso
  • 59. Minimi Quadrati -> Modello -> Previsioni ✧ Minimi quadrati ✧ Imponendo RSS = minimo si ottengono (analiticamente) i valori dei coefficienti della combinazione lineare ✧ Modello ✧ Il modello diventa dunque qualcosa tipo: ✧ Previsioni ✧ Per stimare il target y di una nuova osservazione, ci basta sapere il valore del suo predittore (o feature) X. 59 15 Maggio 2021 Luca Naso
  • 60. Attenzione Applicare le dovute cautele 1. se X della nuova osservazione è molto diversa dai valori utilizzati durante l'addestramento (estrapolazione) 2. se le ipotesi iniziali potrebbero non valere, e.g. relazione lineare, assenza di altri predittori 60 15 Maggio 2021 Luca Naso
  • 61. Nuvola di punti + modello SLR 61 15 Maggio 2021 Luca Naso
  • 62. Passiamo a Python Creiamo un modello di SLR - Usiamo LinearRegression da sklearn - .fit per fare il train - .predict per le previsioni - .coef_ e .intercept_ per il modello 62 Luca Naso 15 Maggio 2021
  • 63. MLR Multiple Linear Regression 63 15 Maggio 2021 Luca Naso
  • 64. Multiple Linear Regression ✧ La Simple Linear Regression è la generalizzazione della SLR a più predittori: ✧ 1. La grandezza da prevedire y è quantitativa (regressione) ✧ 2. Il valore di y è noto per tutte le osservazioni (supervisionato) ✧ 3. y dipende da 2 o più predittori X_i (multiple) ✧ 4. La dipendenza tra y e gli X_i è di tipo lineare (linear) ✧ In notazione matematica si scrive (iperpiano) 64 15 Maggio 2021 Luca Naso
  • 65. Calcolo del Modello di MLR Il calcolo del modello segue la stessa logica della SLR: ✧ Si cerca l'iperpiano che rappresenta meglio la nuvola di punti ✧ Si definisce l'errore come RSS ✧ Si minimizza l'RSS ✧ Si determinano i coefficienti del modello (c'è sempre una soluzione fintanto che N > P, normalmente N >> P) 65 15 Maggio 2021 Luca Naso
  • 66. Modello e previsioni ✧ Esempio di modello finale ✧ Possiamo fare una previsione sul valore del target y nel momento in cui abbiamo i valori delle feature X_1 e X_2. ✧ Il coefficiente di un predittore misura l'effetto di quel predittore sul target a parità di tutti gli altri (tenendo gli altri costanti). 66 15 Maggio 2021 Luca Naso
  • 67. Passiamo a Python Creiamo un modello di MLR - Aggiorniamo il dataset - Usiamo ancora LinearRegression da sklearn 67 Luca Naso 15 Maggio 2021
  • 68. Generalizzazione a modelli non lineari E’ possibile estendere i modelli di regressione multipla anche a combinazioni non lineari. Si parla di: ✧ Combinazioni non lineari dallo stesso predittore, e.g. X_4^2 ✧ Interazione di più predittori insieme o Sinergia, e.g. X_2 * X_3 68 15 Maggio 2021 Luca Naso
  • 69. Riepilogo ✧ Cosa è il Machine Learning ✧ Come si suddividono i problemi di Machine Learning ✧ Problemi di Regressione ✧ Simple Linear Regression ✧ Multiple Linear Regression 69 15 Maggio 2021 Luca Naso
  • 71. Valutare un modello Come facciamo a quantificare la bontà di un modello? Ad esempio per confrontare due modelli tra loro? ✧ Normalmente non sappiamo i "veri" valori dei coefficienti (a dire il vero non sappiamo neanche la vera forma della funzione f!) ✧ Abbiamo già incontrato il tema dell’errore durante la fase di training del modello à Least Squares e RSS ✧ Non va bene per diversi motivi, in particolare perché noi siamo interessati all’errore che commettiamo sulle previsioni (futuro), non sui dati che già abbiamo (passato). 71 15 Maggio 2021 Luca Naso
  • 72. Errore sulle previsioni Voi come fareste a calcolare l’errore che si può fare su nuovi dati mai usati nell’addestramento dell’algoritmo ? 72 Luca Naso 15 Maggio 2021
  • 73. Test-set error ✧ Si evita di usare tutti i dati quando si fa l’addestramento ✧ è si mettono da parte alcuni dati ✧ è si crea un test-set ✧ Si misura l’errore usando i dati nel test-set 1. Validation 2. LOO Cross Validation 3. K-fold CV 73 15 Maggio 2021 Luca Naso
  • 74. Validation Set ✧ Dividi il dataset in 2 parti uguali: una per il train, una per il test ✧ Pro: Riesce a misurare il test error ✧ Contro: 1. L’errore viene sovrastimato (modello fatto con pochi dati) 2. Stima dell’errore molto variabile (in base a come dividiamo i dati) 74 15 Maggio 2021 Luca Naso
  • 75. Leave-One-Out Cross-Validation Nasce per risolvere i problemi del Validation set 1. Sovrastima dell’errore ✧ Dividi ancora in 2 parti ma non uguali: ✧ la prima parte contiene tutti i dati tranne 1 e si usa per il train, ✧ la seconda parte contiene 1 solo dato e si usa come per il test 75 15 Maggio 2021 Luca Naso
  • 76. Leave-One-Out Cross-Validation 2. Variabilità dell’errore ✧ Ripeti la procedura N volte (ciascuna osservazione è usata come test una volta) e fai la media dei risultati 76 15 Maggio 2021 Luca Naso
  • 77. Schema LOO CV 77 Luca Naso 8 Maggio 2021
  • 78. Schema LOO CV 78 Luca Naso 8 Maggio 2021
  • 79. Leave-One-Out Cross-Validation ✧ Pro: ✧ Buona stima dell’errore ✧ Nessuna variabilità ✧ Contro: ✧ computazionalmente costoso (soluzione analitica per minimi quadrati con modelli lineari o polinomiali) 79 15 Maggio 2021 Luca Naso
  • 80. K-fold Cross-Validation Come la LOOCV, ma invece di mettere da parte 1 sola osservazione se ne mettono di più 1. Il dataset si divide in k parti 2. k-1 vengono usate per il train 3. quella da parte per il test. 4. Ripeti k volte, in modo che tutte le parti sono usate per il test, e fai la media dell’errore. Questo è lo stato dell’arte per la valutazione di un modello. 80 15 Maggio 2021 Luca Naso
  • 81. Schema K-fold Cross-Validation 81 15 Maggio 2021 Luca Naso
  • 83. Classificazione Simile alla regressione, ma il target è una categoria, non un numero, e.g. ✧ Etichettare un e-mail come spam o no ✧ Trovare il genere di una persona ✧ Capire un l'argomento di un testo ✧ Segnalare se una transazione e' fraudolenta o no ✧ Associare un segno scritto a mano ad un numero ✧ Identificare la famiglia di una pianta ✧ Si assume che le osservazioni appartengano a due o più classi e si cerca di identificare a quale classe in base ai valori delle feature ✧ A volte si trasforma il problema in uno di regressione cercando la probabilità che un'osservazione appartenga alla classe 83 15 Maggio 2021 Luca Naso
  • 84. Classificazione: esempio in Python ✧ Iris dataset ✧ 150 osservazioni ✧ 4 feature ✧ 3 possibili classi: setosa, versicolor, virginica ✧ Algoritmo di classificazione: SVC, C-Support Vector Classification, un tipo di SVM (Support Vector Machine) 84 15 Maggio 2021 Luca Naso
  • 85. Clustering Simile alla Classificazione, ma il target non è noto a priori ✧ Non si conoscono le classi, né le appartenenze delle osservazioni ✧ Problemi di "segmentazione" ✧ Capire quanti gruppi di clienti ci sono tra i miei clienti attuali ✧ Si cercano clienti "simili" tra di loro, ma "diversi" dagli altri ✧ La segmentazione può essere applicata a diverse entità: ✧ Clienti di un negozio ✧ Utenti di un sito web ✧ Pagine di un'applicazione ✧ DNA dei grani antichi 85 15 Maggio 2021 Luca Naso
  • 86. Clsutering: esempio in Python ✧ Dataset sintetico (realizzato con make_blobs) ✧ Scegliamo noi quanti gruppi creare ✧ e quante osservazioni usare ✧ Algoritmo: K-Means ✧ Usiamo K-Means sui dati ✧ Riportiamo i risultati in un plot ✧ Confrontiamo con la distribuzione iniziale ✧ Per andare oltre: ✧ Usare K-Means con un diverso numero di gruppi ✧ Modificare la variabilità dei gruppi iniziali ✧ Come scegliere il numero di gruppi (per K-Means)? 86 15 Maggio 2021 Luca Naso
  • 88. Riepilogo 1. Cosa è il Machine Learning 2. Come si suddividono i problemi di Machine Learning 3. Problemi di Regressione ✧ Simple Linear Regression ✧ Multiple Linear Regression 4. Model Selection ✧ Validation Set ✧ LOOCV ✧ K-fold Cross Validation 5. Problemi di Classificazione (cenni) 6. Problemi di Clustering (cenni) 88 15 Maggio 2021 Luca Naso
  • 89. Risorse 89 Luca Naso 8 Maggio 2021 Queste slides: slideshare www.slideshare.net/LucaNaso/ Il codice: github github.com/lucanaso/mlworkshop- eps Luca Naso: Linkedin www.linkedin.com/in/lucanaso/