Sei sulla pagina 1di 6

Corso di Sistemi Intelligenti

A.A. 2007/2008 Contenuti


Ing. Pietro Ducange
Prof. Beatrice Lazzerini

• Il problema della classificazione


• Concetti base del PRtools
Pattern Recognition • Esempi di classificazione e combinazione di
pareri
Introduzione al PRtools
• Feature selection: introduzione ed esempi
pratici
• Classificatore RBF

Pattern Recognition 2
Introduzione al PRtools

La classificazione Schema di classificazione


•I classificatori sono sistemi che mappano i pattern forniti in ingresso, che
descrivono particolari oggetti, in due o più classi
Classificatore 1
•Gli oggetti che appartengono alla medesima classe sono contraddistinti da
un insieme di caratteristiche o proprietà comuni

Combinatore
•In genere, gli oggetti sono rappresentati nello spazio delle feature e Rappresentazione
Acquisizione nello spazio delle Riduzione
successivamente mappati da un sistema classificatore in un insieme di feature delle feature
Classificatore 2

classi etichettate

•In alcuni casi è necessaria una elaborazione sullo spazio delle feature per
ridurlo o semplicemente trasformarlo
Classificatore 3

•Il riconoscimento di oggetti è caratterizzato da due fasi: l’addestramento


del classificatore e il riconoscimento vero e proprio

Pattern Recognition 3 Pattern Recognition 4


Introduzione al PRtools Introduzione al PRtools
Introduzione al PRtools Campi del dataset
struct(A)

Il PRtools si basa su due concetti fondamentali: ans =

• dataset: classe matlab che consiste di un insieme di data: [178x13 double]


lablist: [3x1 double]
oggetti rappresentati da una matrice di feature; nlab: [178x1 double]
labtype: 'crisp'
targets: []
featlab: [13x1 double]
• mapping: classe matlab i cui campi sono featdom: {[] [] [] [] [] [] [] [] [] [] [] [] []}
prior: [0.3333 0.3333 0.3333]
trasformazioni di dati, classificatori, informazioni di cost: []
feature selection, etc… objsize:
featsize:
178
13
ident: [178x1 double]
version: {[1x1 struct] '12-Dec-2007 11:45:32'}
name: []
user: []

Pattern Recognition 5 Pattern Recognition 6


Introduzione al PRtools Introduzione al PRtools

Funzioni principali del dataset Mapping


• A = dataset(fetMat, Labels) e’ il costruttore di dataset: prende in ingresso
una matrice di oggetti descritti da feature (fetMat) e il vettore di etichette di classi PRtools mette a disposizione numerosi classificatori:
associato a ciascun oggetto (Labels). La matrice degli oggetti ha tante righe quanti
sono gli oggetti e tante colonne quante sono le feature • Lineari e polinomiali
• [m,k] = size(A), [m,k,c] = getsize (A) restituiscono, rispettivamente, il
numero di oggetti (m), il numero di feature (k) e il numero di classi (c)
• Basati su densità normale
• featMat = double (A), featMat = +A restituiscono la matrice che descrive gli
oggetti tramite le feature

• Labels = getlabels(A) restituisce il vettore delle etichette di classe di ciascun


oggetto
• Non lineari (non polinomiali)
• [TR,TS] = gendat(A,percTr) crea due diversi dataset (TR,TS), a partire da A, in
maniera casuale. percTr è un valore in [0,1] che specifica la proporzione del primo In genere, ogni istanza di un mapping necessità di una fase di
dataset (la proporzione del secondo dataset e’ 1-percTr)
addestramento
E’ prevista, inoltre, la possibilità di dichiarare mapping non
addestrati
Pattern Recognition 7 Pattern Recognition 8
Introduzione al PRtools Introduzione al PRtools
Struttura Mapping Esempi addestramento
struct(W1) W1 = ldc(TR); �Vengono create tre istanze di mapping che rappresentano
W1.data tre tipi di classificatori addestrati utilizzando come training
W2 = knnc (TR);
ans = set l’oggetto di tipo dataset TR
ans = W3 = bpxnc(TR,3);
mapping_file: 'normal_map'
mean: [3x13 double]
mapping_type: 'trained' prior: [0.3333 0.3333 0.3333]
data: [1x1 struct] E’ possibile anche dichiarare delle istanze di mapping vuote o non addestrate:
cov: [13x13 double]
labels: [3x1 double]
size_in: 13 V1 = ldc;
size_out: 3 �Un classificatore di tipo ldc non addestrato viene creato ed
W1 = TR*V1; addestrato successivamente utilizzando l’operatore ”*”
scale: 1
out_conv: 0
cost: [] �Una lista di classificatori non addestrati
name: 'Bayes-Normal-1' V={ldc,qdc, knnc([],1)} ; viene creata
user: [] W=TR*V �In seguito viene fatto l’addestramento
version: {[1x1 struct] '12-Dec-2007 11:45:32'}
� In questo caso viene restituito un cell array
di mapping
Pattern Recognition 9 Pattern Recognition 10
Introduzione al PRtools Introduzione al PRtools

Esempio di classificazione Combinazione dei pareri


C1 = TS*W1; �Utilizzando l’operatore “*“ si effettua il mapping �PRtools mette a disposizione vari modi di
Classificatore W1
combinare i mapping e vari tipi di combinatori
C2 = TS*W2; �Nell’esempio sono stati generati tre dataset tramite il mapping
di TS con tre differenti classificatori �Si prende in considerazione solo la
C3 = TS*W3; combinazione in parallelo mostrata in figura
�Il campo data (dei dataset generati) contiene le uscite del

Combinatore
X1
classificatore �Esempio:
X2 Classificatore W2
�Tali valori possono essere intrerpretati, per ciascun oggetto, VC1 = prodc([W1,W2,W3]);
come la probabilità a posteriori di appartenere a ciascuna X3 VC2 = maxc([W1,W2,W3]);
classe VC3 = minc([W1,W2,W3]);
Vengono generati tre nuovi mapping
[e1 f1] = testc(C1); �La funzione testc, da applicare ad un dataset
ottenuto tramite mapping, restituisce l’errore di �Le uscite del combinatore sono calcolate estraendo,
[e2 f2] = testc(C2); Classificatore W3
rispettivamente, il prodotto, il massimo e il minimo
classificazione ed un vettore che contiene il numero
[e3 f3] = testc(C3); di elementi non riconosciuti per ciascuna classe delle uscite dei singoli classificatori:

C1c = TS*VC1;
Pattern Recognition 11 Pattern Recognition 12
Introduzione al PRtools Introduzione al PRtools
Esempio Wine dataset Feature Selection
6
Dataset
14
Not recognized patterns

C1
•Le tecniche di feature selection sono utilizzate per selezionare,
C2

5
12

10
C3
un insieme di feature significative ai fini della clasificazione di
�Wine dataset: 190

Second Feature
4
uno specifico data set

#not recognized
8

esempi, 13 feature e 3 3 6

classi 2 4
•L’importanza della riduzione delle feature è legata al fatto che
�Training set con 90
1
2

0
un problema con un numero ridotto di feature è un problema
11 12 13 14 15 ldc qdc knnc Neural Net

esempi, test set con 88 First Feature Classifier


che può essere risolto con tempi di calcolo più contenuti e,
esempi spesso, anche con risultati migliori
�Quattro diversi
Combination Results Classification Results
3 30
•Introduciamo due delle tecniche più importanti
classificatori: ldc, qdc, 2.5 25

1-nn e rete MLP 2 20


-Selezione individuale

Error(%)
Error(%)

1.5 15

�Tre approcci di 1 10
- Selezione in avanti
combinazione: prodotto, 0.5 5

massimo, minimo 0 0 Entrambe le tecniche sono implementate nel PRtools


Product Maximum Minimum ldc qdc knnc Neural Net
Combined Classifier Classifier

Pattern Recognition 13 Pattern Recognition 14


Introduzione al PRtools Introduzione al PRtools

Selezione individuale Selezione in avanti


�Un problema che spesso si pone quando si utilizzano tecniche di
�Occorre prima di tutto fissare il tipo di classificatore da riduzione delle feature è che si ignora il numero ottimale di feature
utilizzare
�In altre parole, dopo aver ordinato le feature secondo l’errore che
�Il classificatore viene addestrato e testato con una sola ciascuna di esse determina singolarmente, quante e quali occorre usarne
feature per risolvere in maniera ottimale il problema di classificazione?

�Tutte le feature vengono utilizzate �La tecnica di selezione in avanti parte con la feature migliore

�Alla fine viene fatta una graduatoria delle feature in base � Seleziona fra le feature restanti quella che accoppiata alla migliore
all’errore commesso in fase di test fornisce l’errore complessivo di classificazione più basso in fase di test

�In genere viene utilizzato un classificatore semplice per �Successivamente si cerca la terza migliore feature da utilizzare con le
effettuare la feature selection e succesivamente le feature due precedentemente selezionate
scelte vengono utilizzate per addestrare un diverso
�E così via, finché non si ottiene il numero di feature ottimale per cui
classificatore
l’errore è minimizzato
Pattern Recognition 15 Pattern Recognition 16
Introduzione al PRtools Introduzione al PRtools
Feature selection con PRtools (I) Feature selection con PRtools (II)
V1 = ldc; �La funzione featself implementa la
[W,R] = featseli(TR,V1,k,TS); �La funzione featseli implementa la V1 = ldc; selezione in avanti
TRr = TR*W; selezione individuale [W,R] =
�k indica il numero di feature che si
TSr = TS*W; �TR e TS sono il training e il test set, featself(TR,V1,k,TS);
vogliono selezionare. Se k=0, l’algoritmo
rispettivamente; k indica il numero di TRr = TR*W;
restituisce il minor numero di feature
feature che si vogliono selezionare TSr = TS*W;
R = necessario per ottenere il minor errore
R =
1.0000 0.8092 7.0000 � W è un oggetto di tipo mapping e �Al posto di TS si può specificare il
2.0000 0.7152 13.0000 1.0000 0.8068 7.0000
3.0000 0.7061 10.0000 tramite l’operatore “*” si ottengono i 2.0000 0.9389 10.0000 numero di fold da utilizzare in una cross
4.0000 0.6557 12.0000 nuovi training e test set 3.0000 0.9599 13.0000
validation
5.0000 0.6457 6.0000 4.0000 0.9810 2.0000
6.0000
7.0000
0.6335
0.6231
1.0000
8.0000 �R è una matrice con tre colonne 5.0000
6.0000
0.9905
0.9905
3.0000
6.0000 �R è una matrice con tre colonne: il
8.0000 0.6061 9.0000
9.0000 0.5915 11.0000 �La prima colonna specifica la
7.0000 0.9905 1.0000 numero di righe è k (se diverso da zero)
8.0000 0.9810 8.0000
10.0000 0.4949 4.0000 posizione nella graduatoria, la seconda 9.0000 0.9810 11.0000
�La prima colonna indica il numero di
11.0000 0.4795 2.0000 10.0000 0.9714 4.0000
12.0000 0.4736 3.0000 la percentuale di corretta classificazione 11.0000 0.9714 12.0000 feature, la seconda la percentuale di
13.0000 0.4399 5.0000 associata alla feature, la terza specifica 12.0000 0.9714 5.0000
corretta classificazione e la terza indica
13.0000 0.9524 9.0000
la feature stessa quale feature è stata aggiunta

Pattern Recognition 17 Pattern Recognition 18


Introduzione al PRtools Introduzione al PRtools

Esempio selezione in avanti (I) Esempio selezione in avanti (II)


1-nn classifier 1-nn classifier

�Sono stati utilizzati tre diversi �Sono stati utilizzati tre diversi
30 14

12
25
classificatori: 1-nn, ldc, qdc classificatori: 1-nn, ldc, qdc
10

�Wine dataset: 190 esempi, 13 � Reduced Wine dataset: 36


20

Error (%)
Error (%)

15
feature e 3 classi 6
esempi (12 esempi per ogni
10 classe), 13 feature e 3 classi
�10-fold cross validation 4

5 2
�Leave one out validation
0 0
f7 f10 f9 f11 f8 f6 f12 f3 f1 f2 f4 f5 f13 f7 f10 f8 f2 f3 f6 f1 f11 f4 f9 f12 f5 f13

ldc classifier qdc classifier ldc classifier qdc classifier


20 20 4 14

18 18
3.5 12
16 16
3
14 14 10

2.5
12 12
8
Error (%)

Error (%)

Error (%)
Error (%)

10 10 2
6
8 8
1.5

6 6 4
1
4 4
0.5 2
2 2

0 0 0 0
f7 f1 f4 f10 f3 f13 f11 f9 f5 f6 f8 f2 f12 f7 f1 f11 f13 f5 f3 f4 f6 f9 f10 f8 f2 f12 f7 f1 f2 f3 f4 f5 f8 f9 f11 f10 f6 f12 f13 f7 f1 f2 f3 f6 f12 f13 f5 f11 f10 f4 f8 f9

Pattern Recognition 19 Pattern Recognition 20


Introduzione al PRtools Introduzione al PRtools
Esempio selezione individuale ldc classifier qdc classifier
Le reti RBF
60 60

50 50 •I neuroni dello strato nascosto hanno


40 40
una funzione di attivazione non-lineare
monotona, crescente o decrescente con

Error (%)
Error (%)

30 30
la distanza tra il vettore di input e il centro
20 20 della funzione
10 10

•L’output della rete è la combinazione


0
f7 f10 f12 f13 f6 f1 f11 f9 f8 f4 f2 f5 f3
0
f7 f10 f12 f11 f13 f6 f1 f8 f2 f9 f4 f5 f3 lineare delle funzioni di attivazione dei
neuroni nascosti (funzioni a base radiale)
�Sono stati utilizzati due diversi classificatori: ldc, qdc
•I coefficienti della combinazione lineare
�Wine dataset: 190 esempi, 13 feature e 3 classi sono i pesi delle connessioni tra lo strato
�Training set con 90 esempi, test set con 88 esempi nascosto e lo strato di output

Pattern Recognition 21 Pattern Recognition 22


Introduzione al PRtools Introduzione al PRtools

Classificazione con RBF Link utili


35
�Wine dataset: 190 esempi, 13 Three features
feature e 3 classi 30
Four features
Five features

�Training set con 90 esempi, test 25 http://www.prtools.org/


set con 88 esempi http://mlearn.ics.uci.edu/MLRepository.html
20
Error (%)

�Il numero di neuroni varia da 5 a 15 http://cgm.cs.mcgill.ca/~godfried/teaching/pr-web.html


30
10

�Le feature utilizzate in ingresso


5
variano da 3 a 5 e sono quelle
estratte con la tecnica di selezione 0
0 5 10 15 20 25 30 35
individuale con ldc Number of neurons

Pattern Recognition 23 Pattern Recognition 24


Introduzione al PRtools Introduzione al PRtools