Classificazione Validazione Decision Tree &...

Preview:

Citation preview

Classificazione Validazione

Decision Tree & kMeans

Renato Mainetti

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

2

Supervisionato: forniamo input e output

Non supervisionato: forniamo solo input

Apprendimento Supervisionato e Non

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

3

Apprendimento Supervisionato e Non

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

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)

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…

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

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

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

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.

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

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');

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

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

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')

Albero di decisione(Machine learning)

FSM e Alberi di Decisione - Lezione 3 15

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

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

Addestramento• Classificare i fiori in funzione della dimensioni di

petali e sepali:

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

18

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

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

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

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');

Validation

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

23

Esportazione del classificatore

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

24

kMeans

• Come funziona:

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

25

Esempio passi kMean

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

26

kMeans

• Generiamo un dataset e proviamo ad applicare questo metodo.

• Il file: kmean.m

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

27