Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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
3. Aplicatii de laborator
3.1. Clasificare folosind algoritmul NP
Desfasurarea lucrarii :
-
Se apeleaza functia NP
NP(trainVectors, etichete, classifVectors)
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 ;
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 ;