Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf ·...

21
Classificazione e Validazione Renato Mainetti

Transcript of Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf ·...

Page 1: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Classificazione e Validazione

Renato Mainetti

Page 2: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

19/05/2016 Classificazione e Validazione - Lezione 10 2

Supervisionato: forniamo input e output

Non supervisionato: forniamo solo input

Apprendimento Supervisionato e Non

Page 3: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

19/05/2016 Classificazione e Validazione - Lezione 10 3

Apprendimento Supervisionato e Non

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

Page 4: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Pipeline: cosa fare per classificare

19/05/2016 Classificazione e Validazione - Lezione 10 4

Dati Noti (Predittori)

Risposte Note (Etichette)

Modello

Nuovi dati (non etichettati)

Modello

Predizione Risposte

1)

2)

Page 5: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

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

19/05/2016 Classificazione e Validazione - Lezione 10 5

AND XOR

…ma prima rapido ripasso della logica booleana…

Page 6: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

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.

19/05/2016 Classificazione e Validazione - Lezione 10 6

Page 7: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

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

19/05/2016 Classificazione e Validazione - Lezione 10 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 e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Classificazione AND

• Costruiamo un albero di classificazione della funzione booleana AND:

19/05/2016 Classificazione e Validazione - Lezione 10 8

U1 U2 Y

0 0 0

0 1 0

1 0 0

1 1 1

Page 9: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Classificazione AND• Costruiamo un albero di classificazione della

funzione booleana AND:

19/05/2016 Classificazione e Validazione - Lezione 10 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 e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Classificazione XOR

• Costruiamo un albero di classificazione della funzione booleana XOR:

19/05/2016 Classificazione e Validazione - Lezione 10 10

U1 U2 Y

0 0 0

0 1 1

1 0 1

1 1 0

Page 11: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Classificazione XOR• Costruiamo un albero di classificazione della

funzione booleana XOR:

19/05/2016 Classificazione e Validazione - Lezione 10 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 e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

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…

19/05/2016 Classificazione e Validazione - Lezione 10 12

Page 13: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Qualche link di riferimento:

• Dataset già presenti in Matlab

• UCI Machine Learning Repository – Molto usati per pubblicazioni scientifiche

19/05/2016 Classificazione e Validazione - Lezione 10 13

Page 14: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Facciamo esperimenti con il dataset Fisher’s Iris Data

Iris Setosa

19/05/2016 Classificazione e Validazione - Lezione 10 14

Iris Virginica

Iris Versicolor

Page 15: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Addestramento• Classificare i fiori in funzione della dimensioni di

petali e sepali:

19/05/2016 Classificazione e Validazione - Lezione 10 15

Page 16: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

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.

19/05/2016 Classificazione e Validazione - Lezione 10 16

Page 17: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

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)

19/05/2016 Classificazione e Validazione - Lezione 10 17

Page 18: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Per limitare l’overfitting:

• PRUNING• possiamo regolare la profondità dell’albero

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

19/05/2016 Classificazione e Validazione - Lezione 10 18

Page 19: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Usiamo il tool di matlab: classification learner

19/05/2016 Classificazione e Validazione - Lezione 10 19

Per maggiori informazioni guardare il manuale di matlab

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

Page 20: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Validation

19/05/2016 Classificazione e Validazione - Lezione 10 20

Page 21: Classificazione e Validazionemainetti.di.unimi.it/teaching/ailab_2016/lessons/L10/Lesson_10.pdf · Validazione Tecniche di validazione del modello addestrato: •Nessuna (rischio

Esportazione del classificatore

19/05/2016 Classificazione e Validazione - Lezione 10 21