Classificazione Validazione Decision Tree &...

27
Classificazione Validazione Decision Tree & kMeans Renato Mainetti

Transcript of Classificazione Validazione Decision Tree &...

Page 1: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Classificazione Validazione

Decision Tree & kMeans

Renato Mainetti

Page 2: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

2

Supervisionato: forniamo input e output

Non supervisionato: forniamo solo input

Apprendimento Supervisionato e Non

Page 3: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

3

Apprendimento Supervisionato e Non

http://quantdare.com/2016/03/machine-learning-a-brief-breakdown/

Page 4: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Pipeline: cosa fare per classificare

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

4

Dati Noti (Predittori)

Risposte Note (Etichette)

Modello

Nuovi dati (non etichettati)

Modello

Predizione Risposte

1)

2)

Page 5: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Proviamo a creare deidecision-tree:(usando come dati di addestramento le funzioni logiche booleane AND e XOR)

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

5

AND XOR

…ma prima rapido ripasso della logica booleana…

Page 6: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Algebra di Boole (wiki)In matematica l'algebra di Boole è il ramo dell'algebra in cui le variabili possono assumere solamente i valori vero e falso (valori di verità), denotati come 1 e 0;

Le operazioni fondamentali non sono addizione e sottrazione ma gli operatori logici:

• la congiunzione o prodotto logico indicata con ∧oppure AND;

• la disgiunzione o somma logica indicata con ∨ oppure OR;

• la negazione o complementazione indicata con ¬ oppure NOT.

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

6

Page 7: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

AND e XOR(presentati a lezione dal prof. Borghese)

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

7

U1 U2 Y

0 0 0

0 1 0

1 0 0

1 1 1

U1 U2 Y

0 0 0

0 1 1

1 0 1

1 1 0

U1 and U2 U1 xor U2

Y sempre falso (0) a meno che U1 e U2 siano entrambe vere(1)

Y sempre falso (0) quando U1 = U2Y sempre vero (1) quando U1 ≠ U2

Page 8: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Classificazione AND

• Costruiamo un albero di classificazione della funzione booleana AND:

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

8

U1 U2 Y

0 0 0

0 1 0

1 0 0

1 1 1

Page 9: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Classificazione AND• Costruiamo un albero di classificazione della

funzione booleana AND:

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

9

U1 U2 Y

0 0 0

0 1 0

1 0 0

1 1 1

>> U = [0 0; 0 1; 1 0; 1 1];>> Y = [0; 0; 0; 1];>> treeAnd = fitctree(U,Y,'PredictorNames', {'u1' 'u2'}, 'ResponseName', 'y', 'ClassNames', [0 1], 'minparent',1);

>> view(treeAnd,'Mode','graph');

Trovate questo esercizio nel file TreeAnd.m, commentato riga per riga.

Page 10: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Classificazione XOR

• Costruiamo un albero di classificazione della funzione booleana XOR:

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

10

U1 U2 Y

0 0 0

0 1 1

1 0 1

1 1 0

Page 11: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Classificazione XOR• Costruiamo un albero di classificazione della

funzione booleana XOR:

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

11

U1 U2 Y

0 0 0

0 1 1

1 0 1

1 1 0

>> U = [0 0; 0 1; 1 0; 1 1];>> Y = [0; 1; 1; 0];>> treeXor = fitctree(U,Y,'PredictorNames', {'u1' 'u2'}, 'ResponseName', 'y', 'ClassNames', [0 1], 'minparent',1);

>> view(treeXor,'Mode','graph');

Page 12: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Predizione classedi nuove misurazioni

>> predict(treeAnd, [0 0])

ans =

0

Come parametri di input la funzione predict richiede il nome del decision-tree e un array con i nuovi valori su cui eseguire la predizione.

Provate a sperimentare con gli altri valori…

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

12

Page 13: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Decision-Making Fasi e Passi

• Intelligenza• Raccolta informazioni e dati• Riconoscimento del problema

• Design• Formulazione del modello• Analisi del modello

• Scelte• Generazione e Valutazione• Selezione

FSM e Alberi di Decisione - Lezione 3 13

Page 14: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Albero di decisione(Machine learning)

FSM e Alberi di Decisione - Lezione 3 14

Apprendimento supervisionato

Il Dataset contiene i parametri e le etichette (ricavato da mesi e mesi di osservazioni)

Proviamo ad eseguire l’addestramento di un albero di decisione:Problema predire se il giocatore di golf andrà a giocare oggi, conoscendo umidità e temperatura:

Inseriamo:>>Meteo = [80 30; 70 15; 70 20; 50 20]>>Gioca = [0 1 0 1]>>t = fitctree(Meteo,Gioca,'PredictorNames', {'umidità' 'temperatura'}, 'ResponseName', 'y', 'ClassNames', [0 1], 'minparent',1);>>view(playTree,'mode','graph')

Page 15: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Albero di decisione(Machine learning)

FSM e Alberi di Decisione - Lezione 3 15

Page 16: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Qualche link di riferimento:

• Dataset già presenti in Matlab

• UCI Machine Learning Repository – Molto usati per pubblicazioni scientifiche

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

16

Page 17: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Facciamo esperimenti con il dataset Fisher’s Iris Data

Iris Setosa

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

17

Iris Virginica

Iris Versicolor

Page 18: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Addestramento• Classificare i fiori in funzione della dimensioni di

petali e sepali:

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

18

Page 19: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Validazione

Tecniche di validazione del modello addestrato:

• Nessuna (rischio overfitting)

• Holdout (consigliato per dataset grandi)

• Si divide il dataset in due insiemi, uno dedicato al training e l’altro dedicato al test.

• Cross Validation (funziona bene anche con dataset piccoli)• Si suddivide il dataset in K sottoinsiemi, K-1 insiemi vengono usati per l’addestramento e il

rimanente per il testing. Questa operazione si ripete K volte (K addestramenti diversi), usando di volta in volta un diverso insieme per il test.

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

19

Page 20: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Parliamo di overfittingUn algoritmo di apprendimento viene allenato usando un certo insieme di esempi (il training set). Si assume che l'algoritmo di apprendimento raggiungerà uno stato in cui sarà in grado di predire gli output per tutti gli altri esempi che ancora non ha visionato, cioè si assume che il modello di apprendimento sarà in grado di generalizzare. Tuttavia, soprattutto nei casi in cui l'apprendimento è stato effettuato troppo a lungo o dove c'era uno scarso numero di esempi di allenamento, il modello potrebbe adattarsi a caratteristiche che sono specifiche solo del training set, ma che non hanno riscontro nel resto dei casi; perciò, in presenza di overfitting, le prestazioni (cioè la capacità di adattarsi/prevedere) sui dati di allenamento aumenteranno, mentre le prestazioni sui dati non visionati saranno peggiori. (wiki)

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

20

Page 21: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Esempio manuale matlab sulla classificazione(decision tree):

• http://it.mathworks.com/help/stats/examples/classification.html

• Analizzare visivamente i dati attraverso il plot

• Per limitare l’overfitting su decision tree: PRUNING• possiamo regolare la profondità dell’albero

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

21

Page 22: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Usiamo il tool di matlab: classification learner

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

22

Per maggiori informazioni guardare il manuale di matlab

Importiamo il dataset IRIS leggendo la tabella dal file csv:>> fishertable = readtable(‘Fisher.csv');

Page 23: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Validation

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

23

Page 24: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Esportazione del classificatore

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

24

Page 25: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

kMeans

• Come funziona:

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

25

Page 26: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

Esempio passi kMean

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

26

Page 27: Classificazione Validazione Decision Tree & kMeansmainetti.di.unimi.it/teaching/ailab/lessons/L9/L9.pdf · Classificazione, Validazione, Decision Tree e K Means - Lezione 9 19. Parliamo

kMeans

• Generiamo un dataset e proviamo ad applicare questo metodo.

• Il file: kmean.m

Classificazione, Validazione, Decision Tree e K Means - Lezione 9

27