Sunteți pe pagina 1din 5

Lucrarea 1.

a
Clasificatorii Nearest Prototype (NP) i
k-Nearest Neighbor (k-NN)
1. Baza teoretica
n recunoaterea formelor prin metode statistice, orice form este reprezentat cu ajutorul unui
numr de descriptori scalari, grupai ntr-un vector. Un asemenea vector definete un punct n
spaiul formelor. Rezolvarea unei aplicaii de recunoatere a formelor prin metode statistice
presupune alegerea unui set de caracteristici adecvat pentru construcia vectorilor de form i
proiectarea unui clasificator, capabil s atribuie orice form, reprezentat cu ajutorul unui
asemenea vector, unei clase,  dintr-un numr finit de clase posibile, K. Recunoaterea
formelor cuprinde dou etape: proiectarea clasificatorului, sau stabilirea regulilor de decizie i
clasificarea propriu-zis, adic folosirea clasificatorului.

1.1 Algoritmul Nearest Prototype (NP)


Clasificatorul tradiional al celui mai apropiat prototip atribuie un eantion de intrare X clasei 
care are cel mai apropiat prototip  fa de X, adic:
  = min    

Uzual, prototipul fiecrei clase este definit ca vector mediu al eantioanelor de antrenament ce
aparin clasei respective.
1.2 Algoritmul k-Nearest Neighbor (k-NN)
Algoritmul tradiional al celui mai apropiat eantion (1-NN) aloc un eantion de intrare
neclasificat X, acelei clase care corespunde celui mai apropiat vecin al lui X. Aceast idee poate
fi extins la cele mai apropiate k eantioane vecine ale lui X, astfel nct X este atribuit clasei
care este reprezentat printr-o majoritate a celor mai apropiate k eantioane vecine. Pentru k >1 i
M = 2 clase se alege k impar.

Clasificatorul 1-NN poate fi conceput ca o generalizare a clasificatorului de distan minim, n


care fiecare clas este reprezentat de toate eantioanele preclasificate disponibile, considerai
vectori prototip ai clasei. n practic se folosesc pentru k valori reduse, valoarea k = 3 fiind rar
depit, pentru c nu aduce mbuntiri ale performanelor clasificatorului. De remarcat c
acest tip de clasificator nu are nevoie de antrenament.

2. Exemplu de clasificare folosind NP i k-NN


Fie 2 clase definite astfel:

1
1
5
5
Clasa  :  =   ,  =   , C =   ,  =  
5
1
1
5
4
4
8
8
Clasa  :  =   ,  =   , G =   , " =  
2
2
2
2
4
Se dorete clasificarea vectorului  =  
0

Figura 2.1. Exemplu de clasificare folosind NP i k-NN

a. NP  Nearest Prototype (Cel mai apropiat prototip)


Se calculeaz distanele dintre X i vectorii medie ai claselor, distana minim stabilind clasa de
3
6
apartenen. n cazul de fat, mediile celor 2 clase sunt $ =   i $ =  .
3
0
d2(X, m1) = (4 - 3)2 + (0 - 3)2 = 10
d2(X, m2) = (4 - 6)2 + (0 - 0)2 = 4
d2(X, m2) < d2(X, m1)  X aparine clasei  .
b. k-NN  the kth Nearest Neighbour (Cei mai apropiati vecini)
Se acord lui X clasa care este cel mai frecvent reprezentat printre cele k eantioane mai
apropiate (pe baza distanei euclidiene) de X. Daca alegem k = 3 eantioane, folosind distana
euclidian, rezult c cei mai apropiai 3 vectori fa de X sunt vectorii E, C i G.
E si G aparin clasei  , deci X va aparine clasei 
c. 1-NN  Nearest Neighbour (Cel mai apropiat vecin)
Pentru cazul k = 1, se acord lui X clasa din care face parte cel mai apropiat vecin al lui X.
n cazul de fa, folosind distana euclidian, cel mai apropiat vecin este vectorul C care aparine
clasei , deci X va aparine clasei .

3. Aplicatii de laborator
3.1. Clasificare folosind algoritmul NP
Desfasurarea lucrarii :
-

Se deschide programul Matlab

In Command Window se scrie matricea continand vectorii de antrenare


trainVectors (D x N): N vectori de dimensiune D

Se scrie vectorul ce contine eticheta (clasa de apartenenta) fiecarui vector


etichete (1 x N): un vector cu N coloane

Se scrie matricea continand vectorii ce se doreste a fi clasificati


classifVectors (D x M): M vectori de dimensiune D

Se apeleaza functia NP
NP(trainVectors, etichete, classifVectors)

functia va returna clasa in care este clasificat fiecare vector

Exemplu:
trainVectors = [1 1 5 5 4 8 4 8;
1 5 1 5 2 2 -2 -2];
etichete = [1 1 1 1 2 2 2 2];
clasifVectors = [4
0];
clasificare = NP(trainVectors, etichete, clasifVectors);
clasificare = 2 ;

3.2. Clasificare folosind algoritmul K-NN


Desfasurarea lucrarii :
-

Se deschide programul Matlab

In Command Window se scrie matricea continand vectorii de antrenare


trainVectors (D x N): N vectori de dimensiune D

Se scrie vectorul ce contine eticheta (clasa de apartenenta) fiecarui vector


etichete (1 x N): un vector cu N coloane

Se scrie matricea continand vectorii ce se doreste a fi clasificati


classifVectors (D x M): M vectori de dimensiune D

Se stabileste numarul de vecini k

Se apeleaza functia kNN


kNN(trainVectors, etichete, clasifVectors, k)

functia va returna clasa in care este clasificat fiecare vector

Exemplu:
trainVectors = [1 1 5 5 4 8 4 8;
1 5 1 5 2 2 -2 -2];
etichete = [1 1 1 1 2 2 2 2];
clasifVectors = [4
0];
k = 3;
clasificare = kNN(trainVectors, etichete, clasifVectors, k);
clasificare = 2 ;

Bibliografie : V.Neagoe, O. Stnil Recunoasterea formelor si retele neurale algoritmi


fundamentali, Ed. Matrix Rom, Bucureti, 1998.

S-ar putea să vă placă și