Sei sulla pagina 1di 27

Classificazione

Validazione
Decision Tree & kMeans

Renato Mainetti
Apprendimento
Supervisionato e Non

Supervisionato: forniamo input e output


Non supervisionato: forniamo solo input

Classificazione, Validazione, Decision Tree e K


2
Means - Lezione 9
Apprendimento
Supervisionato e Non

http://quantdare.com/2016/03/machine-learning-a-brief-breakdown/
Classificazione, Validazione, Decision Tree e K
3
Means - Lezione 9
Pipeline: cosa fare per
classificare
Dati Noti (Predittori)
1) Modello
Risposte Note (Etichette)

Modello
2) Predizione Risposte
Nuovi dati (non etichettati)

Classificazione, Validazione, Decision Tree e K


4
Means - Lezione 9
Proviamo a creare dei
decision-tree:
(usando come dati di addestramento le funzioni logiche booleane AND e XOR)

AND XOR

…ma prima rapido ripasso della logica booleana…


Classificazione, Validazione, Decision Tree e K
5
Means - Lezione 9
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


6
Means - Lezione 9
AND e XOR
(presentati a lezione dal prof. Borghese)

U1 and U2 U1 xor U2
U1 U2 Y U1 U2 Y

0 0 0 0 0 0

0 1 0 0 1 1

1 0 0 1 0 1

1 1 1 1 1 0

Y sempre falso (0) a meno che Y sempre falso (0) quando U1 = U2


U1 e U2 siano entrambe vere(1) Y sempre vero (1) quando U1 ≠ U2

Classificazione, Validazione, Decision Tree e K


7
Means - Lezione 9
Classificazione AND
• Costruiamo un albero di classificazione della
funzione booleana AND:

U1 U2 Y

0 0 0

0 1 0

1 0 0

1 1 1

Classificazione, Validazione, Decision Tree e K


8
Means - Lezione 9
Classificazione AND
U1 U2 Y • Costruiamo un albero di classificazione della
0 0 0 funzione booleana AND:
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, Validazione, Decision Tree e K


9
Means - Lezione 9
Classificazione XOR
• Costruiamo un albero di classificazione della
funzione booleana XOR:

U1 U2 Y

0 0 0

0 1 1

1 0 1

1 1 0

Classificazione, Validazione, Decision Tree e K


10
Means - Lezione 9
Classificazione XOR
U1 U2 Y • Costruiamo un albero di classificazione della
0 0 0 funzione booleana XOR:
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');

Classificazione, Validazione, Decision Tree e K


11
Means - Lezione 9
Predizione classe
di 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
12
Means - Lezione 9
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)

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

FSM e Alberi di Decisione - Lezione 3 14


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


16
Means - Lezione 9
Facciamo esperimenti con il
dataset Fisher’s Iris Data
Iris Setosa

Iris Virginica

Iris Versicolor
Classificazione, Validazione, Decision Tree e K
17
Means - Lezione 9
Addestramento
• Classificare i fiori in funzione della dimensioni di
petali e sepali:

Classificazione, Validazione, Decision Tree e K


18
Means - Lezione 9
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


19
Means - Lezione 9
Parliamo di overfitting
Un 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


20
Means - Lezione 9
Esempio manuale matlab sulla
classificazione(decision tree):
• http://it.mathworks.com/help/stats/examples/class
ification.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


21
Means - Lezione 9
Usiamo il tool di matlab:
classification learner
Importiamo il dataset IRIS leggendo la tabella dal file csv:
>> fishertable = readtable(‘Fisher.csv');

Per maggiori informazioni guardare il manuale di matlab


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

Classificazione, Validazione, Decision Tree e K


23
Means - Lezione 9
Esportazione del classificatore

Classificazione, Validazione, Decision Tree e K


24
Means - Lezione 9
kMeans
• Come funziona:

Classificazione, Validazione, Decision Tree e K


25
Means - Lezione 9
Esempio passi kMean

Classificazione, Validazione, Decision Tree e K


26
Means - Lezione 9
kMeans
• Generiamo un dataset e proviamo ad applicare
questo metodo.

• Il file: kmean.m

Classificazione, Validazione, Decision Tree e K


27
Means - Lezione 9

Potrebbero piacerti anche