Sunteți pe pagina 1din 86

1.

Introducere n
recunoaterea formelor

Domeniul recunoaterii formelor are drept obiect de studiu


identificarea relaiilor de asemnare dintre reprezentrile abstracte ale
unor obiecte sau fenomene. Scopul recunoaterii formelor este, prin
urmare, de a clasifica date de intrare folosind drept criterii de
clasificare informaii disponibile anterior.

O aplicaie standard de recunotere a formelor cuprinde o serie de


etape:
1. Colectarea i codificarea datelor, etap ce presupune
recurgerea la o metod de achiziie i reprezentare a datelor
compatibil cu cerinele calculatorului numeric. Aceasta etap
este realizat de un translator, care poate fi o camer video
pentru o aplicaie de recunoatere a feei, un microfon pentru
aplicaii de recunoatere a vorbirii, sau un stylus i o tablet
grafic pentru o aplicaie de recunoatere a scrisului de mn.
2. Examinarea iniial a datelor reprezint etapa de verificare a
datelor achiziionate, obinerea de informaii statistice
descriptive, realizarea de grafice, precum i alte operaii care se
pot dovedi utile pentru a nelege modul de organizare a
datelor privind problema de rezolvat.
3. Pre-procesarea se refer la totalitatea operaiilor ce pot fi
aplicate asupra formei brute a datelor colectate n vederea
pregtirii acestora pentru operaiile viitoare de nvare i
clasificare. Acestea operaii preliminare pot consta n eliminarea
eventualelor zgomote ce pot aprea n cadrul procesului de
achiziie a datelor, efectuarea de prelucrri n vederea reducerii
dimensiunii datelor de intrare, normalizri, transformri, etc. n

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 1/17


aceast etap are loc procesul de extragere i seleci a
caracteristicilor constnd n obinerea reprezentrii finale a
datelor pentru procesul de nvare i clasificare.
4. nvarea const n construirea unui clasificator (algoritm de
clasificare) plecnd de la o mulime de exemple disponibile n
urma procesului de achiziie a datelor.
5. Analiza i decizia constau n atribuirea unor date necunoscute
la o clas, reprezentnd etapa de recunoatere propriu-zis a
formelor.
6. Post-procesarea presupune eventuala validare a deciziei luate
avnd ca suport o anumit baz de cunotine.

Modalitatea de nvare depinde de scopul cercettorului i de tipul


problemei concrete de rezvolat, distingndu-se dou modaliti
generale de nvare:
1. nvarea supravegheat presupune folosirea unui model
general de clasificator, ale crui parametri sunt determinai
plecnd de la un set de nvare (o mulime de exemple pentru
care se cunoate clasa fiecrui element).
2. nvarea nesupravegheat presupune realizarea unei
partiionri a mulimii datelor colectate innd cont de
asemnrile existente ntre acestea. Drept rezultat, vor fi
obinute grupuri de forme asemntoare, fr a exista nici o
informaie iniial privind clasele de apartenen ale acestora.

Trebuie precizat faptul c scopurile urmrite n cadrul celor dou


tipuri de nvare sunt total diferite. n cazul nvrii supravegheate,
se urmrete dezvoltarea unui sistem care va clasifica date noi pe baza
experienei anterioare (experien reprezentat de exemplele deja
clasificate i puse la dispoziie de un expert uman), n timp ce n cazul
nvrii nesupravegheate suntem interesai de nelegerea structurii
prezente ntr-o mulime de date.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 2/17


1.1. Forme i caracteristici. Spaiul formelor

O form reprezint o entitate abstract descris prin


intermediul unui numr finit de caracteristici, ce se
constituie n reprezentarea matematic a unui obiect sau
Important a unui fenomen din lumea real.

n cadrul abordrii statistice a recunoaterii formelor, o


form este reprezentat ca un vector n care fiecare
element conine valoarea unei caracteristici:
x x1 , x2 , x p R p
unde xi R reprezint valoarea caracteristicii .

Prin spaiul formelor se nelege populaia formelor ce


urmeaz a fi analizate.

Caracteristicile reprezint variable considerate de ctre cercettor ca


fiind importante pentru problema considerat de discriminare a
formelor. Numrul, respectiv domeniul de valori ale caracteristicilor
depind de natura problemei de clasificare, de disponibilitatea datelor,
a echipamentelor de achiziie a datelor, a participanilor la eventuale
experimente care trebuie organizate, a msurtorilor ce pot fi
efectuate, precum i de experiena cercettorului. Astfel, pentru o
anumit problem nu exist o modalitate unic de reprezentare a formelor, ci
aceasta rmne la latitudinea celui care efectueaz analiza i procesul de
clasificare. Din punct de vedere intuitiv, o caracteristic va fi cu att
mai bun cu ct reuete s separe mai bine forme aparinnd unor
clase diferite dar, n acelai timp, valorile caracteristicii nu variaz
foarte mult pentru forme de acelai tip.

n funcie de nivelul de msurare, caracteristicile pot fi cantitative sau


calitative:

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 3/17


1. O variabil cantitativ poate lua valori numerice dintr-un
domeniu continuu sau discret. Un exemplu de variabil continu
poate fi timpul scurs ntre dou evenimente de mouse click-down i
click-up pentru o aplicaie de achiziie a unui gest, n timp ce o
variabil discret poate fi coordonata a pixelului de start al
gestului achiziionat cu mouse-ul pe un ecran cu o rezoluie de
pixeli (coordonata poate lua doar valori
distincte sau discrete).
2. O variabil calitativ este reprezentat de categorii i, n funcie
de relaia care poate fi stabilit ntre aceste categorii, vorbim de
variable ordinale sau nominale. Caracteristicile ordinale iau valori
dintr-o mulime pe care a fost definit o relaie de ordine. De
exemplu, putem aprecia un anumit fenomen ca avnd o amploare
ce poate fi ncadrat n patru categorii: mic, medie, mare, sau foarte
mare; utilizatorii unui program pot aprecia o sarcin de efectuat ca
fiind dificil, moderat, sau uor de executat. Putem pune deci n
relaie dou valori ale une variabile ordinale, ns nu putem avea
o msur a raportului dintre cele dou valori. Spre exemplu, dac
sarcina A este apreciat ca fiind dificil, sarcina B moderat, iar
sarcina C uor de executat, atunci putem scrie c, din punct de
vedere al dificultii de execuie, C < B < A, cu semnificaia: sarcina
C este mai uor de executat dect sarcina B care, la rndul ei, este
mai uor de executat dect sarcina A. Nu putem spune ns nimic
despre ct este mai uor de executat sarcina C n raport cu B sau
sarcina B n raport cu A, cum am putea face pentru variabile
cantitative. Pentru valorile caracteristicilor nominale nu se poate
stabili nici mcar o astfel de ordine. De exemplu, culoarea unui
obiect poate lua o valoare din mulimea rou, albastru, verde, galben,
neexistnd nici o relaie de ordine ntre aceste valori.

n procesul de clasificare presupunem c exist un numr de clase care


vor servi pentru etichetarea formelor. Spaiul claselor (sau mulimea C
a claselor) desemneaz etichetele sau categoriile ce servesc la
clasificarea formelor:

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 4/17


= {C1, C2, Cm}

unde Ci reprezint eticheta asociat clasei . Spre exemplu, pentru o


aplicaie de recunoatere a literelor mici ale alfabetului latin, mulimea
va avea 26 de clase corespunztoare celor 26 de litere. Pentru o
aplicaie de recunoatere a feei, a amprentei, sau a irisului din cadrul
unui sistem de securitate, vom avea cte o clas n parte pentru fiecare
utilizator. Pentru un sistem care clasific gesturile n funcie de
dificultatea lor n uor de executat, moderat i dificil de executat mulimea
va avea 3 clase.

Prin clasificator vom nelege o funcie definit pe


spaiul formelor F ce asociaz fiecrei forme din F un
identificator aparinnd spaiului claselor .
Important Un clasificator este implementat sub forma unui
algoritm de clasificare.

Vom considera n continuare cteva exemple de aplicaii de


recunoatere a formelor, fiind interesai n acest moment de
posibilitile de a alege caracteristici pentru a reprezenta formele.

1.1.1 Recunoaterea optic a caracterelor


Prespunem c dispunem de o imagine obinut n urma unui proces
de scanare a unei pagini coninnd un text tiprit. Ne propunem
recunoaterea caracterelor alfabetului latin . Drept urmare,
mulimea claselor va conine 26 de etichete, cte una pentru fiecare
liter pe care dorim s o recunoatem: . Presupunem
mai departe c fiecare caracter a fost deja segmentat (folosind technici
specifice procesrii imaginilor) i c dispunem de o mulime de
obiecte binare. Imaginea corespunztoare fiecrui caracter poate fi
codificat dup o structur matriceal n valori reprezentnd
procentul de pixeli aparinnd obiectului binar din numrul total de
pixeli aflai ntr-un dreptunghi al matricii. Putem obine i o codificare
simplificat dac vom filtra aceste procente, i anume vom considera o

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 5/17


valoare de dac procentul este mai mare dect (pixelii obiectului
sunt majoritari), respectiv o valoare de n caz contrar. Figura 1.1
ilustreaz un astfel de exemplu.

Figura 1.1. Obiectele binare reprezentnd caracterele din imaginea scanat pot fi
codificate sub o form matriceal n care valorile fiecrui element sunt date de
procentul de pixeli ai fiecrui obiect din fiecare celul a matricei. Filtrnd
procentele, obinem o reprezentare simplificat cu valori 0/1 a fiecrui obiect.

Trebuie remarcat faptul important c nu vom avea reprezentri unice


pentru fiecare liter, ci vor exista variaii n reprezentarea exemplelor
care aparin aceleiai clase. De exemplu, datorit scanner-ului sau
tehnicii de a scana, anumite regiuni ale imaginii pot rezulta mai
ntunecate dect altele, ceea ce poate conduce la rezultate diferite ale
procesului de segmentare. Dac alegem , putem avea n
urma procesului de segmentare urmtoarele reprezentri pentru
primele litere ale alfabetului latin:

0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1
1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
1 0 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1
1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1
1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1
0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 6/17


i, drept urmare, vom reprezenta fiecare liter din imagine ca o form
cu de caracteristici binare:

Liter Form
a (0,1,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,...,0,1,1,1,1,1)
b (1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,...,1,1,1,1,1,0)
c (0,1,1,1,1,0,1,0,0,0,0,1,1,0,0,0,0,0,...,0,1,1,1,1,0)
d (0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,1,1,...,0,1,1,1,1,1)

Bineneles c aceasta nu este singura posibilitate de a reprezenta


literele din imaginea noastr. Lund diverse valori pentru i , cele
dou dimensiuni ale matricii de codificare, vom obine forme cu mai
multe sau mai puine caracteristici. Aceasta se traduce de fapt n
precizia cu care reprezentm o anumit liter, iar valorile optime i
din punctul de vedere al performanelor aplicaiei de recunoatere
sunt stabilite de regul experimental. Definirea unor alte caracteristici
poate conduce la alte reprezentri.

Codificarea sub form de matrice poate fi nlocuit prin msurarea


unor proprieti geometrice pentru fiecare obiect cum ar fi: nlimea,
limea, aria (ca numr de pixeli), perimetrul, raportul dintre nlime
i lime (cunoscut ca raportul de aspect al unui obiect), unghiuri
definite ntre diverse puncte ale obiectului (de exemplu, unghiul
dintre punctul din stnga sus, centrul de greutate i punctul din
dreapta jos, etc.), diverse rapoarte implicnd distane i unghiuri, etc.
De exemplu, alegnd drept caracteristici nlimea, limea i aria,
formele din exemplul nostru pot fi reprezentate astfel:

Liter Form
a (20,21,470)
b (37,19,498)
c (18,18,320)
d (39,21,501)

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 7/17


1.1.2 Clasificarea imaginilor de microscopie electronic
Imaginea din Figura 1.2 (stnga) provine din microscopia electronic a
serului bolnavilor de hepatit B i pune n eviden trei tipuri de
particule:
1. Particule sferice mici cu un diametru de 22 nm.
2. Particule cu forme tubulare de grosime 22 nm i lungimi ntre
20-250 nm.
3. Corpusculi Danne de form circular cu un diametru de 42 nm.
Virusul hepatic B este considerat a fi reprezentat de particula viral
numit corpusculul Danne. Folosind tehnici de segmentare specifice
procesrii imaginilor, a fost obinut imaginea din Figura 1.2, dreapta,
n care particulele sunt reprezentate sub form de obiecte binare.

Figura 1.2. Imagine de microscopie electronic a serului bolnavilor de


hepatit B, punnd n eviden trei tipuri de particule.

Pentru a detecta prezena corpusculilor Danne, vom reprezenta


particulele folosind dou caracteristici geometrice: aria i circularitatea
lor. Aria unui obiect binar este dat de numrul de pixeli din imagine
care compun obiectul respectiv. Circularitatea este definit ca raportul
dintre arie i ptratul perimetrului, reprezentnd un indicator al
formei obiectului respectiv:
4A
C 2
P
Circularitatea are valoarea pentru un cerc i o valoare subunitar
pentru orice alt figur geometric. Ea va permite discriminarea dintre
cele dou forme circulare i formele tubulare, n timp ce aria va realiza
Material disponibil la adresa http://www.eed.usv.ro/~vatavu 8/17
diferena dintre cele dou forme circulare de diametre 22, respectiv
42 nm. Calculnd valorile cele dou caracteristici pentru fiecare
particul din imagine, putem reprezenta fiecare form grafic ca un
punct n planul 2D. Trebuie remarcat faptul c vizualizarea formelor
n spaiul caracteristicilor este posibil n acest caz datorit numrului
mic de caracteristici. Reprezentri similare pot fi realizate i pentru
trei caracteristici n spaiul 3D.

Figura 1.3. Reprezentarea particulelor din Figura 1.2 ca i puncte n


spaiul cu dou dimensiuni .

Din Figura 1.3 se observ o anumit grupare a formelor reprezentnd


cele trei tipuri de particule i, astfel, putem distinge urmtoarele clase:
Clasa 1: corpusculii circulari mici, caracterizai prin arie mic i
circularitate aproape de valoarea 1.
Clasa 2: corpusculii Danne, arie mare i circularitate aproape de
valoarea 1.
Clasa 3: corpusculii de form tubular, pentru care aria variaz
datorit lungimii lor ntre 20-250 nm, iar circularitatea este
aproximativ 0.5.

Reprezentarea formelor n spaiul caracteristicilor poate da informaii


despre gruparea claselor, respectiv privind identificarea formelor
aprute ca erori de msurare (en.: outliers), care vor trebui eliminate
din seturile de nvare.
Material disponibil la adresa http://www.eed.usv.ro/~vatavu 9/17
1.1.3 Recunoaterea gesturilor
Considerm n continuare problema recunoaterii gesturilor pentru a
executa comenzi ntr-un browser web. Rolul comenzilor gestuale este
de a servi drept scurtturi pentru utilizatorii experimentai care pot
realiza astfel o sarcin sau transmite o comand ntr-un timp mult mai
mic dect ar face-o alegnd opiunea corespunztoare dintr-un meniu.
Considerm c gesturile sunt capturate folosind mouse-ul i c avem 5
clase ce corespund unor 5 operaii ce pot fi efectuate n cadrul unui
browser web (Figura 1.4).

Figura 1.4. Mulimea de gesturi propuse pentru urmtoarele operaii ale


unui browser web: (1) deschide link n fereastr nou; (2) deschide link n
tab nou; (3) nchide tab; (4) help; (5) home.

O multitudine de reprezentri pot fi imaginate pentru formele din


Figura 1.4, incluznd msurtori geometrice (distane, unghiuri,
diverse rapoarte) sau msurtori cinematice (timpul de execuie,
viteza, sau acceleraia). Vom considera n continuare o abordare
geometric, n care vom reprezenta fiecare gest folosind dou
caracteristici:

1. Aspectul reprezint raportul dintre nlimea i limea fiecrui


gest (nlimea este definit ca diferena dintre valorile maxim
i minim pentru coordonata , iar limea este definit similar
pentru axa ):

Height max( y ) min( y )


Aspect
Width max( x) min( x)

2. Un raport de distane definit n funcie de distana dintre


primul i ultimul punct al gestului i lungimea gestului. Dac
vom considera traiectoria gestual alctuit dintr-un numr de

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 10/17


exact n puncte pi=(xi,yi) i prin || vom nota distana
Euclidian n plan, atunci raportul de distane va fi dat de:

p0 pn1 x0 xn1 2 y0 yn1 2


distance_ratio n1
n 1

pi pi 1 x xi 1 yi yi 1
2 2
i
i 1 i 1

Figura 1.5 ilustreaz reprezentarea formelor n spaiul cu dou


dimensiuni pentru aproximativ 500 de exemple. Se poate observa o
anumit delimitare a celor 5 clase, precum i faptul c raportul de
distane pare a oferi o mai bun discriminare dect aspectul.

Figura 1.5. Reprezentarea n spaiul formelor aspect distance_ratio a


aproximativ 500 de exemple pentru cele 5 tipuri de gesturi.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 11/17


1.2 Implementare
Vom considera n continuare implementarea unei forme i a unei
mulimi de forme, precum i a operaiilor de ncrcare i salvare a unei
mulimi de forme dintr-un fiier. Clasa Pattern implementeaz o
form ca un vector de caracteristici reale iar clasa SetOfPatterns
implementeaz operaiile minimale pentru o mulime de forme.

public class Pattern


{
private double[] features = null;

public Pattern(int p)
{
features = new double[p];
}

public Pattern(Pattern x)
{
features = new double[x.Count];
for (int i = 0; i < features.Length; i++)
features[i] = x.features[i];
this.classIndex = x.classIndex;
}

public int Count


{
get
{
return features.Length;
}
}

public double this[int index]


{
get
{
if (0 <= index && index < features.Length)
return features[index];
else throw new IndexOutOfRangeException(
String.Format("Invalid index {0} in range
{1}:{2}",
index, 0,
features.Length - 1));
}
set
{
if (0 <= index && index < features.Length)

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 12/17


features[index] = value;
else throw new IndexOutOfRangeException(
String.Format("Invalid index {0} in range
{1}:{2}",
index, 0,
features.Length - 1));
}
}

public int ClassIndex


{
get
{
return classIndex;
}
set
{
classIndex = value;
}
}

public override string ToString()


{
string text = "";
for (int i = 0; i < features.Length; i++)
text = String.Format("{0}{1:.00}{2}",
text, features[i],
i == features.Length - 1 ? "" : ",");
return text;
}
}

public class SetOfPatterns


{
private List<Pattern> patterns = new List<Pattern>();

public int Count


{
get
{
return patterns.Count;
}
}

public Pattern this[int index]


{
get
{
if (0 <= index && index < patterns.Count)
return patterns[index];
Material disponibil la adresa http://www.eed.usv.ro/~vatavu 13/17
else throw new IndexOutOfRangeException(
String.Format("Invalid index {0} in range
{1}:{2}",
index, 0,
patterns.Count - 1));
}
}

public void Add(Pattern x)


{
patterns.Add(x);
}

public void RemoveAt(int index)


{
if (0 <= index && index < patterns.Count)
patterns.RemoveAt(index);
}
}

Pentru realizarea operaiilor de intrare/ieire, vom implementa clasa


PatternsIO care va conine dou metode pentru salvarea respectiv
ncrcarea unei mulimi de forme n/dintr-un fiier. Pentru fiierul de
forme vom considera un format text simplu n care datele sunt
separate prin virgul, dup cum urmeaz:
Prima linie a fiierului conine numrul de forme prezente n
mulime, numrul de caracteristici i numrul de clase.
A doua linie conine etichetele celor clase.
Urmeaz linii, fiecare coninnd valori: primele
reprezint valorile caracteristicilor formei , iar
ultima reprezint indicele clasei de care aparine forma , din
intervalul {0,1,...m-1}. Facem convenia ca indicele clasei
s fie -1 dac nu se cunoate clasificarea formei .

Pentru exemplul anterior, un fiier care memoreaz mulimea de


antrenare ar putea arta dup astfel:

10,2,5
new window,new tab,close tab,help,home
1.11,0.11,0
1.16,0.11,0
Material disponibil la adresa http://www.eed.usv.ro/~vatavu 14/17
1.41,0.16,1
1.24,0.18,1
1.62,0.26,2
1.65,0.27,2
2.27,0.58,3
2.47,0.57,3
0.6,0.03,4
0.65,0.02,4

public class PatternsIO


{
public static SetOfPatterns ReadFromFile(string fileName,
out List<string> classLabels)
{
SetOfPatterns set = new SetOfPatterns();

StreamReader reader = null;


try
{
reader = new StreamReader(fileName);

// read n, m, p
string[] items = reader.ReadLine().Split(',');
int n = int.Parse(items[0]);
int p = int.Parse(items[1]);
int m = int.Parse(items[2]);

// read m labels for the m classes


string[] labels = reader.ReadLine().Split(',');
classLabels = new List<string>();
for (int i = 0; i < labels.Length; i++)
classLabels.Add(labels[i]);

// read n patterns
for (int i = 0; i < n; i++)
{
items = reader.ReadLine().Split(',');

Pattern pattern = new Pattern(p);


for (int j = 0; j < p; j++)
pattern[j] = double.Parse(items[j]);
pattern.ClassIndex = int.Parse(items[p]);

set.Add(pattern);
}
}
finally
{
if (reader != null)
Material disponibil la adresa http://www.eed.usv.ro/~vatavu 15/17
reader.Close();
}

return set;
}

public static void WriteToFile(SetOfPatterns set,


List<string> classLabels, string fileName)
{
StreamWriter writer = null;
try
{
writer = new StreamWriter(fileName);

// write n, m, p
writer.WriteLine("{0},{1},{2}",
set.Count, set[0].Count,
classLabels.Count);

// write m labels
for (int i = 0; i < classLabels.Count; i++)
writer.Write("{0}{1}", classLabels[i],
i == classLabels.Count - 1 ? "" : ",");
writer.WriteLine();

// write the patterns


for (int i = 0; i < set.Count; i++)
{
for (int j = 0; j < set[i].Count; j++)
writer.Write("{0},", set[i][j]);
writer.WriteLine("{0}", set[i].ClassIndex);
}
}
finally
{
if (writer != null)
writer.Close();
}
}
}

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 16/17


Tema de laborator
Implementai clasele Pattern, SetOfPatterns i PatternsIO. Construii o
aplicaie cu urmtorul meniu:
Set forme ncarc...
SetForme Salveaz<
Despre...
Ieire

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 17/17


2. Alegerea i analiza
caracteristicilor

Alegerea caracteristicilor folosite pentru reprezentarea formelor este


un proces complex care depinde de natura problemei, datele
disponibile, msurtorile care pot fi efectuate, costul acestora i, nu n
cele din urm, de intuiia i experiena cercettorului. n anumite
cazuri, alegerea caracteristicilor este imediat i se relev a fi un
proces rigid tocmai datorit naturii problemei. De exemplu,
cercettorul nu are acces dect la un numr limitat de parametri ale
cror valori au fost deja msurate de ctre experi umani cum ar fi
msurtori ale presiunii sau puterii consumate n anumite instalaii
industriale sau date confideniale privind clienii creditelor unei bnci.
n alte cazuri, cercettorul are un mai mare control asupra problemei
avnd libertatea de a propune el nsui o varietate de caracteristici pe
care le poate msura direct. Spre exemplu, n cazul problemei
recunoaterii gesturilor, datele sunt reprezentate de traiectorii
geometrice de micare, ceea ce permite ca o larg varietate de
variabile geometrice s poat fi propuse i msurate.

Indiferent de modul de obinere a caracteristicilor, este evident faptul


c unele caracteristici vor fi mai bune sau mai potrivite pentru
problema considerat dect altele. Putem considera c o caracteristic
este potrivit pentru problema dat dac aceasta dispune de o
capacitate semnificativ de a separa sau discrimina obiectele supuse
clasificrii. Astfel, pentru o caracteristic bun ne ateptm la valori
apropiate pentru obiecte aparinnd aceleiai clase i la valori diferite
pentru obiecte aparinnd unor clase diferite. O astfel de
caracteristic, prin modul de grupare a obiectelor din aceeai clas
respectiv de separare a obiectelor aparinnd unor clase diferite, se
poate dovedi extrem de important n procesul de clasificare. Drept

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 1/30


urmare, n practic, suntem interesai de caracteristici care au
urmtoarele proprieti:
Valorile caracteristicii pentru obiecte aparinnd aceleiai clase
trebuie s fie ct mai apropiate ntre ele, n timp ce
Valorile caracteristicii pentru obiecte aparinnd unor clase
distincte trebuie s fie ct mai diferite.
Vom considera deocamdat noiunile de valori apropiate i valori diferite
la un nivel intuitiv, urmnd a le defini mai trziu numeric.

Pentru a exemplifica criteriile introduse, s considerm problema


discriminrii dintre obiecte ce pot aparine uneia dintre dou clase:
literele mici de tipar a i g cu detaliile fontului Times New Roman
(Figura 2.1). Presupunnd c literele sunt disponibile sub forma unor
obiecte binare dintr-o imagine rezultat n urma unui proces de
scanare i separare a fundalului, putem alege drept caracteristici
nlimea unui obiect binar, limea, numrul de bucle, etc. Dintre
acestea, intuim faptul c nlimea i numrul de bucle vor avea o
putere mai mare de a discrimina ntre obiecte aparinnd celor dou
clase, ntruct ne ateptm ca litera a s aib o nlime mai mic dect
litera g iar numrul de bucle s fie 1 pentru a respectiv 2 pentru g.
Valorile limii obiectelor nu par a fi un factor decisiv pentru
discriminarea dintre cele dou clase, literele a i g avnd aproximativ
aceeai lime (vezi Figura 2.1). Deasemenea, dintre cele dou
caracteristici cu potenial de discriminare superior, trebuie remarcat
faptul c nlimea este mult mai uor de calculat dect numrul de
bucle i, totodat, se poate dovedi i o caracteristic mai robust. De
exemplu, datorit unor erori de segmentare a obiectelor din imaginea
scanat, anumite bucle pot aprea deschise datorit lipsei unor
pixeli n timp ce lipsa acestor pixeli influeneaz foarte puin valorile
nlimii obiectelor. Prin urmare, putem propune mai multe
caracteristici pentru anumite obiecte ns, de fiecare dat, trebuie s
inem seama de: capacitatea caracteristicilor de a discrimina obiecte
aparinnd unor clase distincte, complexitatea necesar calculului
obinerii valorilor acestor caracteristici, precum i robusteea acestora
la apariia erorilor sau zgomotelor.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 2/30


Figura 2.1. Problema discriminrii literelor a i g. Printre posibilele
caracteristici pentru reprezentarea obiectelor binare putem analiza: nlimea,
limea, numrul de bucle, aria, perimetrul, etc. Nu toate caracteristicile au
ns acelai potenial discriminativ, robustee la zgomot sau complexitate a
calculului necesar obinerii valorilor.

Procesul de analiz a caracteristicilor are drept scop identificarea


acelor caracteristici care au un potenial ridicat pentru procesul de
clasificare (conform criteriilor de mai sus) i, bineneles, eliminarea
caracteristicile slabe cu potenial redus sau chiar nul.

Fie E o mulime alctuit din forme de care un cercettor dispune n


urma procesului de msurare a caracteristici:

E={f0, f1, f2, , fn-1}

unde forma i=0,n-1 este dat de mulimea de valori:

fi={xi,0, xi,1, xi,2 , , xi,p-1}

ntruct fiecare form reprezint un vector cu elemente, putem


reprezenta mulimea E sub forma unei matrice (denumit n
continuare matricea formelor) cu linii i coloane n care linia
conine valorile formei i n care valorile caracteristicii se vor
regsi pe coloana .

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 3/30


x0,0 x0,1 x0,2 ... x0,j ... x0,p-1
x1,0 x1,1 x1,2 x1,j x1,p-1
. . . . .
. . . . .
. . . . .

xi,0 xi,1 xi,2 ... xi,j ... xi,p-1


. . . . .
. . . . .
. . . . .

xn-1,0 xn-1,1 xn-1,2 ... xn-1,j ... xn-1,p-1

Analiza caracteristicilor poate fi realizat individual pentru fiecare


caracteristic n parte dar i considernd mpreun un grup de
caracteristici, caz n care suntem interesai de posibilele relaii
existente ntre acestea. Pentru analiza valorilor unei singure
caracteristici vom urmri indicatorii tendinei centrale, respectiv ai
variaiei sau mprtierii, n timp ce pentru mai multe caracteristici
suntem intersai de modul n care acestea variaz mpreun.

2.1 Analiza valorilor unei singure caracteristici


Pentru determinarea tendinei centrale a valorilor unei caracteristici
sunt folosii indicatorii statistici media, mediana i modul. Modul
reprezint valoarea care apare cu cea mai mare frecven iar mediana
valoarea aflat la mijlocul valorilor caracteristicii cnd acestea au fost
ordonate cresctor. n practic ns, media reprezint cel mai folosit
indicator pentru a aprecia tendina central a unei mulimi de valori
cantitative de tip interval iar mediana i modul pentru aprecierea
caracteristicilor ordinale i nominale.

Indicatorii tendinei centrale

Media caracteristicii , notat x j , este dat de:


n1

x i, j

Important xj i 0
n

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 4/30


Pentru exemplificare, s presupunem c valorile nregistrate pentru o
anumit caracteristic sunt ( ):

2, 3, 5, 5, 5, 6, 6, 7, 7, 8, 9

Pentru aceast mulime de valori vom avea:


Modul 5 (cea mai frecvent valoare cu trei apariii, marcate n
verde).
Mediana 6 (valoarea aflat la mijlocul mulimii ordonate
cresctor, marcat n rou).
Media (2+3+5+5+5+6+6+7+7+8+9)/11=5.73.

Spre deosebire de modul i median, media este influenat puternic


de valorile extreme ale mulimii. Dac presupunem ca dispunem de
urmtoarele valori ( ):

2, 3, 5, 5, 5, 6, 6, 7, 7, 8, 9, 102

unde 102 a fost adugat ca o valoare extrem (posibil aprut din


cauza unei erori de msurare) atunci:
Modul rmne 5.
Mediana are n continuare valoarea 6. De aceast dat, exist
un numr par de elemente i, prin urmare, nu una ci dou
valori se vor afla la mijlocul mulimii ordonate cresctor. n
acest caz, mediana va fi calculat ca media acestor dou valori
(6+6)/2=6.
Media devine 13.75, cu o modificare mai mare dect a
celorlali doi indicatori datorat valorilor extreme.

Trebuie remarcat faptul c valoarea obinut n urma calculului


mediei nu face parte ntotdeauna din mulimea valorilor caracteristicii
i, drept urmare, nu are ntotdeauna o semnificaie clar. Spre
exemplu, dac vom considera valorile din exemplul anterior ca fiind
numrul de prieteni ai unor persoanem atunci obinem c n medie o

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 5/30


persoan are 5.73 prieteni, cu toate ca valorile caracteristicii vor fi
ntotdeauna ntregi. Cu toate acestea, media rmne principalul
indicator al tendinei centrale pentru o caracteristic cantitativ, un
punct forte fiind faptul c folosete toate valorile mulimii n formula
de calcul spre deosebire de modul i median.

Indicatorii mprtierii
Media este un indicator al tendinei centrale pentru valorile luate de o
caracteristic, descriind la un nivel global mulimea acestora. Luat
singur ns, acest indicator nu ofer informaii complete iar, pentru a
avea o imagine corect asupra valorilor caracteristicii, informaia
furnizat de medie trebuie completat cu cea a indicatorilor
mprtierii: dispersia i abaterea standard.

Dispersia caracteristicii , notat D j , este dat de:

Dj
1 n1

xi , j x j
n 1 i 0

2

Important

Dispersia se calculeaz plecnd de la suma abaterilor la ptrat a


fiecrei valori fa de medie. Abaterile sunt nsumate la ptrat ntruct
nu ne intereseaz daca deviaia este negativ sau pozitiv ci doar
amplitudinea ei (trebuie remarcat c valoarea sumei abaterilor fr
ridicarea la ptrat ar fi 0). Dispersia se obine mprind suma
abaterilor la , expresie care reprezint de fapt numrul de grade
de libertate sau numrul de observaii ce pot varia liber. Logica pentru
mprirea la n loc de poate fi explicat prin prisma
eantionului de valori pentru care calculm dispersia, eantion
raportat la populaia de valori ale caracteristicii. Cele valori de care
dispunem pentru o anumit caracteristic reprezint doar un eantion
din mulimea tuturor valorilor posibile ale acesteia (populaia
valorilor caracteristicii). n general, dac alegem valori din
populaie, acestea vor putea varia oricum. Dac ns dorim s
calculm dispersia, atunci avem nevoie de valoarea medie. Drept
urmare cele valori nu sunt toate indepedente: cunoscnd media i

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 6/30


valori, valoarea rmas poate fi determinat n mod unic.
Aflndu-ne deci n cazul unui eantion de valori extras din ntreaga
populaie vom mpri la n loc de n formula calculului
dispersiei ntruct doar valori variaz liber.

Dispersia reprezint valoarea medie a abaterilor valorilor individuale


fa de medie luate la ptrat. Cu ct dispersia este mai mare, cu att
valorile sunt mai ndeprtate sau mai mprtiate fa de valoarea
central. Drept urmare, dispersia reprezint un indicator al
mprtierii i permite aprecierea modului n care valorile individuale
se raporteaz la medie. n acest sens, dispersia permite o apreciere
numeric a criteriilor de analiz a unei caracteristici enunate intuitiv
la nceputul acestui capitol. Un dezavantaj al dispersiei este dat ns
de faptul c ne ofer un rezultat exprimat n uniti ptrate (datorit
calculului abaterilor la ptrat). Spre exemplu, dispersia valorilor
caracteristicii nlime din exemplul literelor a i g (Figura 2.1) va fi
exprimat n pixeli2. Drept urmare, este de preferat ca pentru
aprecierea mprtierii valorilor individuale fa de medie s se
foloseasc deviaia standard calculat ca radicalul dispersiei.

Deviaia standard a caracteristicii este dat de:

s j Dj
1 n1

xi , j x j
n 1 i0

2

Important

Pentru exemplul valorilor considerate anterior:

2, 3, 5, 5, 5, 6, 6, 7, 7, 8, 9

avnd media 5.73, dispersia va fi:


D = 1/10*((2-5.73)2+(3-5.73)2+(5-5.73)2+(5-5.73)2+
(5-5.73)2+(6-5.73)2+(6-5.73)2+(7-5.73)2+
(7-5.73)2+(8-5.73)2+(9-5.73)2)
= 4.22

iar deviaia standard sqrt(4.22)=2.05.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 7/30


Deviaia standard, ca i dispersia, ne ofer informaii referitoare la ct
de ndeprtate sau mprtiate sunt valorile unei caracteristici fa de
medie dar folosete aceeai unitate de msur ca i caracteristica. n
cazul n care aceste valori respect distribuia normal (sau n cazul n
care distribuia pot fi aproximat cu una normal ceea ce este un caz
frecvent n practic), atunci 68% dintre valori se vor afla la o distan
de medie egal cu o deviaie standard iar 96% la o distan egal cu
dou deviaii standard. n trei deviaii standard vom avea 99.6% din
valorile caracteristicii. Figura 2.2 ilustreaz grafic aceste intervale
procentuale pentru o distribuie normal.

Putem verifica aceste observaii pentru exemplul anterior. Cum


deviaia standard este 2.05 rezult c intervalul centrat pe medie
(5.73) la 3 deviaii standard va fi:

[5.733*2.05, 5.73+3*2.05] = [-0.42, 11.88]

interval care include valorile minime i maxime ale mulimii.

Figura 2.2. Distribuia normal: 68% dintre valori se afl la o distan de


medie egal cu deviaia standard, 96% la dou deviaii standard iar 99.6%
dintre valori se regsesc n trei deviaii standard. Sursa imaginii: Wikipedia,
http://en.wikipedia.org/wiki/File:Standard_ deviation_diagram.svg

Media mpreun cu deviaia standard ofer mpreun o imagine


corespunztoare asupra valorilor unei anumite caracteristici. n

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 8/30


conformitate cu criteriile introduse la nceputul capitolului, suntem
interesai de caracteristici ale cror valori sunt apropiate pentru
obiecte aparinnd aceleiai clase i diferite pentru obiecte din clase
distincte. Drept urmare, putem cuantifica numeric aceste criterii astfel:
suntem interesai de caracteristici pentru care deviaia standard a
valorilor pentru fiecare clas este ct mai mic, n timp ce deviaia
standard a mediilor caracteristicii pentru fiecare clas este ct mai
mare (mediile valorilor fiecrei clase sunt ct mai ndeprtate ntre
ele). Aprecierea calitii unei caracteristici prin intermediul acestor
criterii o va face cercettorul prin consultarea indicatorilor media i
deviaia standard pentru fiecare clas.

n continuare, sunt prezentate implementrile indicatorilor tendinei


centrale (media, mediana) i ai mprtierii (dispersia i deviaia
standard) ca metode n cadrul clasei Statistics. Complexitatea
calculului caracteristicilor va fi (n) pentru medie, dispersie i
deviaia standard, respectiv (n)+O(alg.sortare)~(n*log(n))
pentru calculul medianei.

public class Statistics


{
public static double Mean(double[] values)
{
int n = values.Length;
double mean = 0;
for (int i = 0; i < n; i++)
mean += values[i];
mean /= n;
return mean;
}

public static double Median(double[] values)


{
int n = values.Length;
Array.Sort(values);

if (n % 2 == 1) return values[n / 2];


else return 0.5 * (values[n / 2 - 1] + values[n / 2]);
}

public static double Dispersion(double[] values)


{

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 9/30


int n = values.Length;

double mean = Mean(values);


double dispersion = 0;
for (int i = 0; i < n; i++)
dispersion += (values[i] - mean) * (values[i] -
mean);
dispersion /= n - 1;

return dispersion;
}

public static double StandardDeviation(double[] values)


{
return Math.Sqrt(Dispersion(values));
}

...
}

Pentru claritatea implementrii am preferat aplicarea direct a


formulelor de definiie ale fiecrui indicator. Implementarea dispersiei
poate fi accelerat ns prin eliminarea calculului iniial al mediei i
folosirea observaiei:

Dj
1 n1

xi , j x j
n 1 i0

2

1 n1 2
xi , j n x j
n 1 i0
1 n1 2 n1
xi , j xi , j
n 1 i0 i 0

ceea ce permite reducerea cu un numr de operaii de ordinul (n) a


timpului de calcul a dispersiei i deviaiei standard.

2.2 Analiza valorilor mai multor caracteristici


Caracteristicile pot fi analizate nu numai individual, ci i n relaie
unele cu altele. Astfel, putem fi interesai de faptul dac dou sau mai
multe caracteristici variaz mpreun, situaie n care exist o relaie
ntre acestea. n cazul n care relaia dintre dou caracteristici este una
puternic, practic doar una dintre caracteristici ne va aduce informaie
util, cealalt putnd fi eliminat din reprezentarea formelor. n
analiza grupurilor de caracteristici suntem interesai de indentificarea

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 10/30


caracteristicilor corelate n eviderea eliminrii acelora care nu
contribuie cu informaie nou la procesul de discriminare. Pentru
analiza relaiilor existente ntre caracteristici se folosesc indicatorii
covarian i coeficientul de corelaie.

Covariana caracteristicilor i este dat de:

cov i , j
1 n1

xk ,i xi xk , j x j
n 1 k 0

Important

Covariana este definit similar dispersiei, raportnd valorile


individuale ale fiecrei caracteristici la media corespunztoare
fiecreia. Obinem deci valoarea covarianei ca fiind media produselor
abaterilor valorilor fiecrei caracteristici de la medie. Similar
dispersiei, folosim grade de liberate n calculul acestei medii. n
cazul n care cele dou caracteristici sunt identice, valoarea covarianei
coincide cu valoarea dispersiei caracteristicii respective:

cov i ,i
1 n1

xk ,i xi xk ,i xi
n 1 k 0

1 n1

xk ,i xi
n 1 k 0
2
Di

Atunci cnd suntem interesai de posibila existen a unei legturi


dintre valorile a dou caracteristici, analizm de fapt situaia n care o
modificare a unei caracteristici este acompaniat de o modificare a
celeilalte. n situaia unei legturi ntre caracteristici, cnd valorile
uneia dintre caracteristici deviaz fa de medie, ne vom atepta ca i
valorile celeilalte caracteristici s devieze corespunztor (n acelai
sens sau n sens opus). Altfel spus, ne ateptm s existe o legtur
dac o modificare a unei caracteristici ntr-un sens este acompaniat
de o modificare a celeilalte. De aceea, calculul covarianei folosete
produsul abaterilor pentru a detecta o astfel de situaie.

S presupunem c avem urmtoarele valori pentru dou caracteristici


A i B (n=9):

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 11/30


A: 10, 18, 20, 15, 12, 10, 8, 15, 20
B: 2, 4, 5, 7, 9, 10, 12, 8, 4

pentru care mediile sunt 14.22 respectiv 6.78. Valoarea covarianei


va fi:

covA,B = 1/8*( (10-14.22)*(2-6.78) +


(18-14.22)*(4-6.78) +
(20-14.22)*(5-6.78) +
(15-14.22)*(7-6.78) +
(12-14.22)*(9-6.78) +
(10-14.22)*(10-6.78) +
(8-14.22)*(12-6.78) +
(15-14.22)*(8-6.78) +
(20-14.22)*(4-6.78))
= -8.32
exprimat n produsul unitilor de msur a celor dou caracteristici.

Calculnd valorile covarianei pentru fiecare pereche de caracteristici


obinem matricea de covarian de dimensiune :

D0 cov0,1 cov0,2 ... cov0,p-1


cov1,0 D1 cov1,2 cov1,p-1
. . . .
. . . .
. . . .

covi,0 covi,1 covi,2 ... covi,p-1


. . . .
. . . .
. . . .

covp-1,0 covp-1,1 covp-1,2 ... Dp-1

pentru care vom avea pe diagonal covi,i=Di. Deasemenea, matricea


este simetric, ntruct covi,j=covj,i, relaie care poate fi dedus
imediat din definiia covarianei.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 12/30


La fel ca i dispersia, covariana se exprim ca un produs de uniti de
msur corespunztoare celor dou caracteristici. Drept urmare,
putem obine un indicator mai util pentru analiza legturii dintre
dou caracteristici prin mprirea covarianei la valorile deviaiilor
lor standard, indicator pentru care semnificaia valorii poate fi
apreciat ntr-o manier mai simpl i intuitiv. Indicatorul rezultat
este coeficientul de corelaie Pearson.

Coeficientul de corelaie Pearson pentru dou


caracteristici i , notat ri , j , este dat de:
cov i , j
Important ri , j
si s j

mprirea la deviaiile standard ale celor dou caracteristici poate fi


vzut ca o standardizare prin care unitile de msur ale celor dou
variabile devin practic uniti exprimate n numrul de deviaii
standard. Astfel, rezultatul expresiei:
xk ,i xi
si
ascuns n formula coeficientului de corelaie, nu va mai fi exprimat n
unitile caracteristicii , ci n cte deviaii standard se poziioneaz
valoarea xi fa de media caracteristicii . Cele dou caracteristici
devin astfel comparabile prin renunarea la unitile de msur
originare care determin practic magnitudinea rezultatului i fac
dificil interpretarea acestuia n cazul covarianei.

Coeficientul de corelaie Pearson este folosit pentru a observa


existena unei relaii de dependen liniar dintre dou caracteristici
cantitative dar i amplitudinea acestei relaii: o valoare apropiat de 1
indic faptul c ntre cele dou caracteristici exist o dependen
liniar pozitiv (ambele cresc) n timp ce o valoare apropiat de -1
arat o dependen liniar negativ (o caracteristic crete, n timp ce
cealalt descrete). O valoare apropiat de 0 arat faptul c cele dou

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 13/30


caracteristici sunt independente i, drept urmare, ambele pot contribui
independent cu aport de informaie la procesul de discriminare.

Coeficientul Pearson ia valori n intervalul [-1,1], ns valorile


extreme -1 i 1 se vor ntlni extrem de rar n practic. Pentru a
aprecia ns efectul legturii dintre caracteristici, pot fi folosite
pragurile de mrime a efectului Cohen, astfel:
ntre cele dou caracteristici exist o dependen cu un efect
mic dac 0.1|r|<0.3;
Efect mediu dac 0.3|r|<0.5.
Efect mare dac |r|0.5.

Relund exemplul precendent, pentru caracteristicile A i B avem


deviaiile standard sA=4.49, respectiv sB=3.27. Drept urmare,
coeficientul de corelaie Pearson va fi:

rA,B = covA,B/(sA*sB) = -8.32/(4.49*3.27) = -0.57

de unde putem trage concluzia c ntre cele dou caracteristici exist o


legtur de dependen negativ cu un efect Cohen mare. Dac ne
vom uita din nou la valorile celor dou caracteristici:

A: 10, 18, 20, 15, 12, 10, 8, 15, 20


B: 2, 4, 5, 7, 9, 10, 12, 8, 4

observm c valorile primeia descresc (marcate n rou) apoi cresc


(marcate n verde), n timp ce pentru a doua caracteristic situaia este
invers. Drept urmare, exist o corelaie negativ ntre A i B.

Coeficientul de corelaie la ptrat este denumit coeficient de


determinare (R2) i reprezint o msur a variaiei unei caracteristici
care se regsete i n valorile celeilalte. Pentru exemplul considerat,
R2=0.325, ceea ce nseamn c cele dou caracteristici au n comun

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 14/30


32.5% din variaia lor. Astfel, cu toate c sunt corelate cu un efect
mare, doar 32.5% din variaia valorilor lor se regsete n ambele.

Vom completa n continuare clasa Statistics cu funciile necesare


calculului covarianei i a coeficientului de corelaie Pearson.
Complexitatea calculului este (n) pentru fiecare indicator.

public class Statistics


{
...
public static double Covariance(double[] values1,
double[] values2)
{
if (values1.Length != values2.Length)
throw new ArgumentException(
String.Format("The two sets must have the
same length {0} vs {1}",
values1.Length, values2.Length));

int n = values1.Length;
double mean1 = Mean(values1);
double mean2 = Mean(values2);
double covariance = 0;
for (int i = 0; i < n; i++)
covariance += (values1[i] - mean1)*
(values2[i] - mean2);
covariance /= n - 1;

return covariance;
}

public static double PearsonR(double[] values1,


double[] values2)
{
double covariance = Covariance(values1, values2);
double stdev1 = StandardDeviation(values1);
double stdev2 = StandardDeviation(values2);

return covariance / (stdev1 * stdev2);


}

public static double PearsonR2(double[] values1,


double[] values2)
{
double r = PearsonR(values1, values2);
return r*r;
}
}

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 15/30


Ca i n cazul dispersiei, trebuie fcut precizarea c implementarea
indicatorilor poate fi realizat cu un cost mai sczut ns, pentru
claritate, am preferat folosirea formulelor de definiie. Astfel, n cazul
covarianei putem folosi observaia:

1 n1
1 n1 1 n1
n1
cov i , j xk ,i xi xk , j x j xk ,i xk , j xk ,i xk , j
n 1 k 0 n 1 k 0 n k 0 k 0

care reduce timpul de calcul cu un numr de operaii de ordinul


(n). Aceeai idee poate fi aplicat i pentru implementarea
coeficientului de corelaie.

Not asupra corelaiei dintre caracteristicile ordinale


Trebuie precizat faptul c putem calcula coeficientul de corelaie i
pentru dou caracteristici cantitative ordinale (pentru care dispunem
doar de informaia privind ordinea valorilor, ns nu i cea a
raportului dintre acestea). n acest caz, valorile caracteristicii sunt
nlocuite de ranguri (indicii fiecrei valori n mulimea ordonat
cresctor) pentru care se aplic aceleai formule de calcul introduse
pentru coeficientul Pearson. Valoarea rezultat poart numele de
coeficientul de corelaie Spearman al rangurilor. Dac vom lua din
nou valorile celor dou caracteristici presupuse acum de tip ordinal:

A: 10, 18, 20, 15, 12, 10, 8, 15, 20


B: 2, 4, 5, 7, 9, 10, 12, 8, 4

pentru calculul corelaiei vom nlocui valorile fiecrei caracteristici cu


indicele valorii respective n irul ordonat cresctor. Ordonnd
cresctor valorile primei caracteristici obinem:

A: 8, 10, 10, 12, 15, 15, 18, 20, 20


1, 2, 3, 4, 5, 6, 7, 8, 9

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 16/30


Drept urmare, vom nlocui valorea 8 cu indicele 1, valoarea 12 cu
indicele 4, etc. Pentru valorile care se repet (cum ar fi 10 sau 15)
vom folosi media indicilor acestora: valoarea 10 va fi nlocuit de
rangul 2.5, valoarea 15 de 5.5, iar 20 de 8.5.

Valorile caracteristicilor A i B nlocuite de ranguri vor fi:


A: 2.5, 7, 8.5, 5.5, 4, 2.5, 1, 5.5, 8.5
B: 1, 2.5, 4, 5, 7, 8, 9, 6, 2.5

Pentru a calcula coeficientul de corelaie Spearman vom aplica


procedura de calcul a coeficientului Pearson pentru rangurile
rezultate. Avem pentru cele dou caracteristici mediile 5, respectiv 5,
iar deviaiile standard 2.70, respectiv 2.73. Coeficientul Spearman
(notat cu ) va fi:

A,B = covA,B/(sA*sB) = -4.03/(2.70*2.73) = -0.55

obinnd o valoare apropiat de cea a coeficientului Pearson (-0.57)


pentru aceleai date. n general, valorile coeficienilor de corelaie
Pearson i Spearman sunt apropiate. Putem calcula i pentru
coeficientul Spearman valoarea sa la ptrat (Rs2), ns semnificaia
acesteia este diferit, i anume: Rs2 reprezint proporia variaiei n
ranguri comun celor dou caracteristici. Pentru exemplul considerat,
Rs2 indic faptul c 30.25% dintre rangurile celor dou caracteristici
prezint aceeai variaie sau, echivalent, 30.25% dintre ordinea
valorile celor dou caracteristici variaz mpreun.

Implementarea coeficientului de corelaie Spearman n cadrul clasei


Statistics este prezentat n continuare.

public class Statistics


{
...

public static double SpearmanRho(double[] x, double[] y)


{

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 17/30


// safety tests
if (x == null || y == null)
throw new ArgumentNullException();
if (x.Length != y.Length)
throw new ArgumentException(String.Format(
"Arrays must have the same length: {0} vs {1}",
x.Length, y.Length));
if (x.Length == 0)
throw new ArgumentException(String.Format(
"Arrays should not be empty"));

// convert to ranks
double[] xRanks = ComputeRanks(x);
double[] yRanks = ComputeRanks(y);

return PearsonR(xRanks, yRanks);


}

private static double[] ComputeRanks(double[] x)


{
// number of values
int n = x.Length;

// compute ranks
double[] ranks = new double[n];
for (int i = 0; i < n; i++)
{
int numSmaller = 0, numTies = 0;
for(int j = 0; j < n; j++)
if (j != i)
{
if (x[j] < x[i]) numSmaller++;
else if (x[j] == x[i]) numTies++;
}

ranks[i] = (numTies == 0) ? numSmaller + 1 :


(numSmaller + 1 +
numTies / 2.0);
}

return ranks;
}
}

Trebuie precizat faptul c exist i ali coeficieni de corelaie (cum ar


fi coeficientul al lui Kendall), ns Pearson r i Spearman sunt
folosii frecvent n practic.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 18/30


2.3 Studiu practic din recunoaterea gesturilor
Considerm n continuare problema recunoaterii gesturilor
aparinnd a 6 clase diferite (Figura 2.3).

Figura 2.3. ase gesturi reprezentnd forme geometrice: cerc, dreptunghi,


triunghi, floare, omega i pi ntors.

Pentru problema noastr vom propune o serie de caracteristici


geometrice ale cror valori pot fi calculate plecnd de la traiectoria de
micare a unui gest. Vom considera traiectoriile gestuale ca fiind
alctuite fiecare dintr-un numr de exact puncte
pi=(xi,yi),i=0,n-1. Tabelul 2.1 prezint formulele de calcul ale
caracteristicilor propuse. Acestea includ msurtori geometrice
obinuite cum ar fi Lungimea gestului, Limea, nlimea,
sau Aria dreptunghiului circumscris (bounding box) dar
i unele msurtori noi cum ar fi Raza definit ca media distanelor
de la fiecare punct la centrul de greutate, diverse rapoarte de distane
(caracteristicile R1,R2 i R3) i valori de unghiuri definite ntre
punctele traiectoriei (Angle1,Angle2). Alte caracteristici cum ar fi
Density1, Density2 i Openness sunt preluate din experiena altor
cercettori privind analiza gesturilor1.

Tabel 2.1. Caracteristici propuse pentru reprezentarea traiectoriilor gestuale

Unit.
Caracterist
msur Formul de calcul
ic

Lungime L pixeli n1 n1
L pi pi 1 xi xi1 2 yi yi1 2
i 1 i 1

1
A. Chris Long, Jr., James A. Landay, Lawrence A. Rowe, Joseph Michiels (2000) Visual similarity of pen
gestures. In: Proceedings of the SIGCHI conference on Human factors in computing systems (CHI '00).
ACM, New York, NY, USA, 360-367. DOI=10.1145/332040.332458

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 19/30


Limea W pixeli W max xi min xi
i 0, n 1 i 0, n 1

nlime H pixeli H max yi min yi


i 0,n1 i 0,n1

Raza R pixeli Media distanelor de la fiecare punct la centrul de


greutate:
1 n1 1 n1
c xi , yi
n i 0 n i 0
1 n1
R pi c
n i 0
Angle1 radiani Unghiul format de segmentele alctuite din primul
punct i punctul aflat la mijlocul traiectoriei p0 p n i
2

punctul de la mijloc i ultimul punct p n pn1


2

Angle2 radiani Unghiul format de segmentele p0 c i cp n1 unde c


reprezint centrul de greutate
ABB pixeli 2 Aria dreptunghiului care ncadreaz gestul (bounding
box):
ABB H W
AspectRatio - Raportul dintre nlime i lime:
H
AR
W
Lungimea - n 1

normalizat Ln pi ' pi 1 ' unde pi reprezint punctele


i 1
Ln
xi yi
normalizate: pi ' ,
max( H , W ) max( H , W )
R1 - p0 pn1
R1
p0 pn / 2 pn / 2 pn1
R2 - L
R2
p0 pn / 2 pn / 2 pn1
R3 - L
R3
2R
unde L este lungimea iar R este raza gestului

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 20/30


Density1 - L
D1
p0 pn1
Density2 pixeli-1 L
D2
H W
Openness pixeli-1 p0 pn1
O
H W

Pentru analiza caracteristicilor propuse vom folosi valori calculate


plecnd de la exemple de gesturi achiziionate de la un utilizator
folosind un stylus i o tablet grafic. Utilizatorul a realizat 20 de
exemple pentru fiecare gest rezultnd o mulime de gesturi
pentru analiz.

Primul pas al analizei va consta n calculul valorilor mediei i


deviaiei standard pentru fiecare caracteristic i fiecare clas n parte.
Tabelul 2.2 prezint valorile acestor indicatori pentru trei caracteristici
selectate la ntmplare din mulimea celor propuse, Lungime, R1 i
AspectRatio.

Tabel 2.2. Indicatori ai tendinei centrale i mprtierii pentru valorile


caracteristicilor Lungime,R1 i AspectRatio. Pentru o apreciere mai bun a
acestora, valorile minime i maxime sunt prezentate deasemenea.
Deviaia
Gest Caracteristic Minim Maxim Media
standard
cerc Lungimea 641.61 1057.71 917.03 118.53
R1 .01 .05 .03 .01
AspectRatio 1.00 1.21 1.11 .07
triunghi Lungimea 911.48 1114.41 1022.84 54.55
R1 .00 .13 .02 .03
AspectRatio .95 1.32 1.15 .09
floare Lungimea 1002.63 1262.77 1116.17 55.73
R1 .35 .60 .48 .06
AspectRatio 1.16 1.60 1.39 .09
omega Lungimea 685.47 1098.49 980.07 114.71
R1 .83 .98 .90 .04
AspectRatio .50 .70 .57 .05

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 21/30


dreptun Lungimea 1043.17 1305.20 1192.62 65.26
ghi R1 .00 .02 .01 .00
AspectRatio
.95 1.26 1.04 .07

pi-intors Lungimea 1027.13 1302.81 1173.47 70.55


R1 .38 .50 .44 .03
AspectRatio .95 1.18 1.05 .06

Ca o prim observaie, putem nota faptul c, n medie, gesturile


dreptunghi au lungimea cea mai mare (1192.62 pixeli) iar gesturile
cerc cea mai mic (917.03 pixeli,) ns diferena dintre aceste valori
nu pare a fi una semnificativ (cu respect la deviaiile standard 65.26
pentru dreptunghi i 118.53 pentru cerc ce sugereaz o suprapunere
important a plajei valorilor). Gesturile cerc, triunghi i dreptunghi au
valoarea R1 apropiat de 0, n timp ce gesturile floare i pi-ntors
apropiat de 0.5, iar omega de 0.9. Cum deviaiile standard ale
caracteristicii R1 au valori mici (maxim 0.6 pentru gestul floare i
minim 0.0 pentru dreptunghi), putem considera ca R1 realizeaz o
separare mai bun dect Lungimea.

Analiza acestor indicatori sub forma tabelar se poate dovedi dificil


n situaia n care exist multe clase i multe caracteristici. Ca o
alternativ, reprezentrile grafice pot ajuta cercettorul n procesul de
analiz pentru identificarea caracteristicilor potrivite. Figura 2.4
prezint grafic valorile mediei i a deviaiei standard pentru fiecare
clas n parte pentru caracteristica Lungime. Putem observa, poate
mai clar de aceast dat dect n varianta tabelar, c mediile sunt
destul de apropiate iar intervalele ale cror limite inferioare i
superioare sunt obinute prin scderea, respectiv adugarea a trei
deviaii standard2 se suprapun. Tragem astfel concluzia c Lungimea
nu reprezint o caracteristic care s poat contribui semnificativ la
procesul de discriminare a formelor.

2
vezi observaia privind distribuiile normale i faptul c 99.6% dintre valorile unei
caracteristici sunt cuprinse n trei deviaii standard fa de medie.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 22/30


Figura 2.4. Valorile mediei i deviaiei standard ale caracteristicii Lungime
pentru fiecare gest. Barele reprezint trei deviaii standard.

Figura 2.5 prezint valorile indicatorilor pentru caracteristica


AspectRatio. n acest caz, putem observa o separare mai bun a
valorilor medii aparinnd claselor distincte: spre exemplu, clasa
omega este separat de toate celelalte. Prin urmare, AspectRatio
poate fi considerat mai bun dect caracteristica Lungime.

Figura 2.5. Valorile mediei i deviaiei standard ale caracteristicii


AspectRatio pentru fiecare gest.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 23/30


Figura 2.6 ilustreaz mediile i deviaiile standard pentru
caracteristica R1. De aceast dat mai multe clase sunt separate
distinct, i anume: omega fa de toate celelalte, dreptunghi i cerc
fa de floare, omega i pi-ntors, etc. Prin urmare, R1 reprezint o
caracteristic cu un potenial superior de discriminare.

Figura 2.6. Valorile mediei i deviaiei standard ale caracteristicii R1


pentru fiecare gest. Barele reprezint trei deviaii standard.

Continund acest proces al analizei cu fiecare dintre caracteristicile


propuse n tabelul 2.1 putem identifica, n conformitate cu criteriile
stabilite la nceput, acele caracteristici care pot avea un potenial bun
de a separa forme aparinnd unor clase diferite i, n acelai timp, de
a grupa forme aparinnd aceleiai clase. n practic, este puin
probabil ca s gsim o singur caracteristic perfect care s
realizeze singur o separaie convenabil a claselor i, prin urmare,
trebuie s folosim puterea de discriminare a mai multor caracteristici.
De exemplu, considernd mpreun caracteristicile Lungime i
AspectRatio obinem gruparea formelor din figura 2.7 iar
considernd caracteristicile AspectRatio i R1 vom obine
reprezentarea din figura 2.8.

Este intuitiv observaia conform creia adugnd noi caracteristici


putem obine o separaie mai bun a formelor ns acest lucru nu este

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 24/30


valabil ntotdeauna. Se poate ntmpla ca, prin adugarea de
caracteristici, s obinem o performan mai slab a algoritmului de
clasificare. Aceasta nu datorit faptului c informaiile aduse de
caracteristicile suplimentare nu sunt utile, ci pur i simplu pentru c
spaiul de reprezentare (spaiul formelor) devine mult prea mare
pentru ca un model de clasificator s-l poat utiliza eficient. Numrul
optim de caracteristici i tipul acestora este obinut prin
experimentare n urma unor diverse analize, unele incluznd chiar i
algoritmul de clasificare i performanele obinute de ctre acesta.

Figura 2.7. Reprezentarea gesturilor n spaiul Lungime x AspectRatio.

De asemenea, trebuie remarcat faptul c unele caracteristici prezint


proprieti de invarian. Invariana se poate manifesta cu privire la
translaie, rotaie sau scal ntruct pentru anumite probleme suntem
interesai s recunoatem obiecte indiferent de modul n care acestea
se raporteaz la un anumit sistem de referin (invarian la
translaie), rotaia sub care acestea se prezint (invarian la rotaie),
respectiv scala acestora (invarian la scal). Tabelul 2.3 prezint tipul
de invarian al fiecrei caracteristici propuse pentru problema
recunoaterii gesturilor. Spre exemplu, valorile caracteristicii

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 25/30


Lungime nu depind de poziia n zona de desenare i nici de unghiul
sub care gestul este executat, ns cu siguran depinde de scala
desenului. Avem astfel pentru Lungime invariana la translaie i
rotaie dar nu i invarian la scal. Caracteristica R3 reprezint
raportul dintre lungimea gestului i raza acestuia, ale cror valori ne
ateptm s varieze cu scala ns aproximativ n aceeai proporie.
Drept urmare, putem presupune faptul c R3 este invariant la scal,
urmnd a verifica acest lucru i experimental.

Figura 2.8. Reprezentarea gesturilor n spaiul R1 x AspectRatio.

Tabel 2.3 Invariana caracteristicilor propuse n tabelul 2.1.


Invarian
Caracteristic
Translaie Rotaie Scal
Lungimea gestului L x x
Limea W x x
nlimea H x x
Raza R x x

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 26/30


Angle1 x x x
Angle2 x x x
ABB x x
AspectRatio x x x
Lungimea normalizat Ln x x x
R1 x x x
R2 x x x
R3 x x x
Density1 x ? ?
Density2 x x
Openness x x

Tabelul 2.4 prezint valorile coeficienilor de corelaie Pearson


calculai pentru fiecare pereche de caracteristici. Se observ corelaii
puternice (ateptate de altfel) ntre Lungime i Lime (0.595),
Lungime i nlime (0.576), Aria dreptunghiului
circumscris ABB cu Limea (0.500) i nlimea (0.858),
nlime i AspectRatio (0.838) dar i unele mai puin evidente
cum ar fi corelaia dintre nlime i Angle1 (0.743), R1 i
Angle2 (-0.927), etc. Unele caracteristici sunt slab corelate cum ar fi
Lungimea i Angle2 (0.040) sau Limea i nlimea (0.005).

Vizualizarea relaiei existente ntre dou caracteristici poate fi


realizat cu un impact mai mare prin intermediul reprezentrii grafice
a valorilor acestora. Figurile 2.9, 2.10 i 2.11 ilustreaz graficele a cte
dou perechi de caracteristici pentru care am obinut o corelaie
pozitiv puternic (AspectRatio i nlime, r=0.838), o
corelaie negativ puternic (R3 i Raza, r=-0.889), respectiv nici o
corelaie (Lime i nlime, r=0.005).

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 27/30


Tabel 2.4. Coeficienii de corelaie Pearson pentru fiecare pereche de caracteristici din tabelul 2.1.

Aspect Lung.
L W H Raza Angle1 Angle2 ABB R1 R2 R3 D1 D2 Openness
Ratio norm.
Lungimea L 1 .595 .576 .206 .144 .040 .768 .180 .553 -.050 -.154 .028 .044 .353 .053
Limea W .595 1 .005 .135 -.399 -.416 .500 -.526 .308 .214 -.092 -.018 -.017 .150 .324
nlimea H .576 .005 1 .308 .743 .602 .858 .838 .157 -.538 -.506 -.387 .148 -.411 -.406
Raza .206 .135 .308 1 .563 .629 .386 .134 .743 -.812 -.858 -.889 .460 -.140 -.728
Angle1 .144 -.399 .743 .563 1 .969 .443 .826 .235 -.878 -.637 -.639 .399 -.438 -.853
Angle2 .040 -.416 .602 .629 .969 1 .317 .708 .282 -.927 -.642 -.684 .482 -.394 -.941
ABB .768 .500 .858 .386 .443 .317 1 .443 .332 -.383 -.530 -.389 .128 -.294 -.201
Aspect
.180 -.526 .838 .134 .826 .708 .443 1 -.080 -.528 -.331 -.273 .104 -.423 -.481
Ratio
Lungimea
.553 .308 .157 .743 .235 .282 .332 -.080 1 -.405 -.440 -.366 .317 .482 -.354
norm.
R1 -.050 .214 -.538 -.812 -.878 -.927 -.383 -.528 -.405 1 .850 .867 -.570 .437 .962
R2 -.154 -.092 -.506 -.858 -.637 -.642 -.530 -.331 -.440 .850 1 .934 -.438 .467 .695
R3 .028 -.018 -.387 -.889 -.639 -.684 -.389 -.273 -.366 .867 .934 1 -.431 .543 .763
Density1 .044 -.017 .148 .460 .399 .482 .128 .104 .317 -.570 -.438 -.431 1 -.088 -.608
Density2 .353 .150 -.411 -.140 -.438 -.394 -.294 -.423 .482 .437 .467 .543 -.088 1 .343
Openness .053 .324 -.406 -.728 -.853 -.941 -.201 -.481 -.354 .962 .695 .763 -.608 .343 1

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 28/30


Figura 2.9. Reprezentarea grafic a corelaiei dintre
AspectRatio i nlime (r=0.838, R2=0.702)

Figura 2.10. Corelaia dintre R3 i Raza (r=-0.889,


R2=0.790)

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 29/30


Figura 2.11. Corelaia dintre Lime i nlime (r=0.005)

Tema de laborator
Implementai metodele de calcul a indicatorilor statistici pentru
valorile caracteristicilor unui un set de forme: media, deviaia
standard, covariana i coeficientul de corelaie Pearson r.

Completai aplicaia de recunoatere a formelor cu urmtoarea


opiune de meniu:
Caracteristici Analiz...
Opiunea va deschide un nou formular, oferind posibilitatea de a
calcula indicatorii statistici pentru caracteristicile 1..p ale formelor
ncrcate dintr-un fiier.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 30/30


3. Distane

Un aspect de o importan deosebit care apare n procesul de


clasificare este asemnarea sau deosebirea dintre forme. Astfel, ne
ateptm ca formele care reprezint obiecte aparinnd aceleiai clase
s fie asemntoare, n timp ce formele aparinnd unor clase
distincte s fie diferite. Pentru a aprecia asemnarea dintre dou
forme, respectiv pentru a cuantifica numeric aceste noiuni abstracte,
folosim conceptul de distan. Considernd formele cu caracteristici
reprezentate prin puncte n spaiul , noiunile de distan i
asemnare dintre forme pot fi asociate ntr-o manier intuitiv astfel:
asemnarea dintre dou forme este cu att mai mare cu ct distana
dintre punctele corespunztoare este mai mic. Sau, altfel spus,
disimilaritatea dintre dou forme este cu att mai mare cu ct distana
dintre punctele asociate acestora este mai mare.

Aceast legtur este justificat de modul n care formele se grupeaz


n spaiul n condiiile alegerii unor caracteristici potrivite pentru
reprezentare. Fiecare caracteristic va furniza valori apropiate pentru
obiecte aparinnd aceleiai clase i, n acelai timp, va ncerca s
separe ct mai mult formele aparinnd unor clase diferite. Drept
urmare, rezultatul obinut n urma alegerii unor caracteristici cu astfel
de proprieti va fi dat de o grupare a formelor aparinnd aceleiai
clase n zone relativ bine conturate n spaiul formelor, n timp ce toate
clasele vor fi separate ntre ele. Pentru a nelege mai bine astfel de
grupri, Figura 3.1 ilustreaz grafic punctele asociate gesturilor
considerate n capitolul anterior n reprezentarea cu trei caracteristici
i spaiul R1 x AspectRatio x Raza. Se poate observa gruparea
formelor n ase regiuni bine conturate n spaiul formelor n
coresponden cu cele ase clase de gesturi.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 1/16


Caracteristici alese corespunztor determin ca formele din aceeai
clas s fie mai apropiate unele de altele n spaiul formelor dect fa
de forme aparinnd unor alte clase. De exemplu, lund distana
Euclidian drept msur de apreciere a distanei dintre puncte, ne
ateptm ca distana dintre dou forme aparinnd aceleiai clase s
fie mai mic dect distana calculat ntre dou forme aparinnd
unor clase diferite, lucru care poate fi verificat vizual inspectnd
clasele din Figura 3.1. Pe o astfel de delimitare a claselor n regiuni
distincte n spaiul caracteristicilor, respectiv pe ideea aproprierii
formelor din aceeai clas din perspectiva unei anumite distane, se
bazeaz o serie ntreag de algoritmi de clasificare.

Noiunea de distan devine astfel de o importan deosebit pentru


aprecierea structurilor care se creaz n spaiul formelor respectiv a
relaiilor care se stabilesc ntre forme i clase de forme. Prin distan
vom nelege o funcie care asociaz oricror dou forme o valoare
real pozitiv, modul concret de definire putnd ns varia.

Figura 3.1. Gruparea gesturilor din capitolul anterior n ase regiuni distincte
n spaiul R1 x AspectRatio x Raza. Fiecare clas este conturat distinct
n spaiul formelor: formele din aceeai clas sunt apropiate n timp ce clasele
sunt deprtate ntre ele.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 2/16


Se numete distan (sau metric) funcia d:RpxRpR+
care satisface urmtoarele proprieti:
1. Identitatea, d ( x, y) 0 x y, x, y R p
Important 2. Simetria, d ( x, y) d ( y, x), x, y R p
3. Inegalitatea triunghiului,
d ( x, y) d ( x, z ) d ( z, y), x, y, z R p

Primele dou proprieti asigur faptul c distana de la un punct la el


nsui este ntotdeauna 0 (identitatea), respectiv c ordinea punctelor
nu are importan n calculul valorii distanei dintre ele (simetria).
Inegalitatea triunghiului introduce constrngerea conform creia
distana dintre dou puncte este mai mic dect suma distanelor
calculate din cele dou puncte fa de oricare alt punct. ntr-un spaiu
Euclidian, acest lucru semnific faptul c distana cea mai scurt
dintre dou puncte este dat de linia dreapt care le unete. Egalitatea
este obinut atunci cnd cele trei puncte sunt coliniare.

Distana Euclidian
Distana Euclidian reprezint exemplul cel mai cunoscut al unei
distane i, de regul, este cea mai utilizat n practic pentru
aprecierea asemnrii dintre forme. Pentru caracteristici avem
distana Euclidan definit pentru punctele a=(a0,a1) i b=(b0,b1)
din plan astfel:
d 2 (a, b) a0 b0 2 a1 b1 2
n timp ce pentru , obinem distana Euclidian n spaiul cu trei
dimensiuni:
d 2 (a, b) a0 b0 2 a1 b1 2 a2 b2 2
Figura 3.2 ilustreaz grafic distana Euclidian n cele dou spaii.
Pentru un numr de caracteristici, formula distanei Euclidiene
poate fi extins astfel nct s fie luate n considerare influenele
tuturor celor caracteristicilor.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 3/16


Figura 3.2. Ilustrarea grafic a distanei Euclidiene n spaiul cu dou,
respectiv trei dimensiuni.

Distana Euclidian d2:RpxRpR+ dintre punctele


a=(a0,a1,...,ap-1) i b=(b0,b1,...,bp-1) este
dat de:
Important p 1
d 2 ( a, b ) a b
2
i i
i 0

Indicele 2 din notaia distanei, d2, este o convenie folosit pentru a


indica faptul c diferenele valorilor sunt nsumate la puterea a doua.

Proprietile de identitate i simetrie rezult imediat din definiia


distanei iar, pentru a demonstra inegalitatea triunghiului, se poate
folosi inegalitatea Cauchy-Buniakovski-Schwartz:
2
p1 p 1 p 1
xi yi xi2 yi2
i 0 i 0 i 0

Astfel, pentru a arta c inegalitatea triunghiului este ndeplinit de


ctre distana Euclidian pentru oricare trei puncte a,b,c din Rp:
p 1 p 1 p 1

a b
i 0
i i
2
b c
i 0
i i
2
a
i 0
i ci
2

vom folosi xi=ci-bi i yi=ai-ci n inegalitatea Cauchy-Buniakovski-


Schwartz.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 4/16


Dac vom considera urmtoarele forme cu caracteristici:

a=(1, 0, 2, 4)
b=(3, 5, 1, 7)
atunci distana Euclidian va fi:

d2(a,b) = ((1-3)2+(0-5)2+(2-1)2+(4-7)2)1/2
= 391/2 = 6.25

Alte distane
Cu toate c distana Euclidian este cea mai utilizat n practic,
definirea unor alte modaliti pentru a aprecia apropierea dintre
puncte se poate dovedi util pentru anumite probleme.

1. Distana Manhattan (City Block sau Taxi Cab) msoar valoarea


drumului dintre dou puncte folosind doar direcii aliniate cu axele
de coordonate. Valoarea distanei va fi dat de suma diferenelor luate
n valoare absolut pentru fiecare caracteristic:
p 1
d1 (a, b) ai bi
i 0

Numele distanei provine din modul de aranjare a strzilor din insula


Manhattan (strzi paralele i perpendiculare, alctuind un grid), n
care lungimea traseului cel mai scurt parcurs de o main ntre dou
intersecii este dat de distana introdus mai sus.

Pentru exemplul anterior, valoarea distanei Manhattan va fi:

d1(a,b) = |1-3|+|0-5|+|2-1|+|4-7|
= 11

Figura 3.3 ilustreaz diferena dintre distana Manhattan i distana


Euclidian. Pentru punctele de coordonate i din grid-ul
din figur, distana Euclidian va fi dat de lungimea segmentului de
dreapt care unete cele dou puncte (respectiv cea mai scurt cale de

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 5/16


a ajunge dintr-un punct n cellalt). Distana Manhattan este
constrns la deplasri doar n direciile celor dou axe de coordonate.
Drept urmare, valoarea distanei Manhattan va fi ntruct va trebui
s efectum deplasari cumulate pe orizontal i pe vertical pentru
a ajunge din n indiferent de calea pe care o alegem (figura
3.3 ilustreaz trei astfel de trasee).

Figura 3.3. Distana Euclidian (linia n negru) versus distana Manhattan


pentru punctele i . Exist o singur variant pentru distana
Euclidian n valoare de , ns mai multe drumuri posibile pentru distana
Manhattan de valoare .00 (oricare traseu l-am alege, vom efectua tot cinci
deplasri pe orizontal i trei pe vertical).

2. Distana Chebyshev folosete diferenele valorilor caracteristicilor


luate n modul, ns consider doar cea mai mare diferen ca fiind
cea important:
d (a, b) max ai bi
i 0, p 1

Pentru exemplul punctelor considerate mai sus vom avea:

dChebyshev(a,b) = max{|1-3|,|0-5|,|2-1|,|4-7|}
= 5

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 6/16


3. Distana Minkowski de ordin este dat de:

1
p1 r
d r (a, b) ai bi
r

i 0

i reprezint o form general din care pot fi deduse toate distanele


introduse pn acum. De exemplu, alegnd , vom obine distana
Euclidian d2, iar pentru distana Manhattan d1. n cazul n care
ordinul parametrul are o valoare mare ( r ), atunci valoarea
distanei Minkowski tinde ctre valoarea distanei Chebyshev.

Putem analiza relaiile care exist ntre diversele tipuri de distane.


Astfel, dac vom compara distanele Euclidian i Manhattan, avem:
p 1 p 1

a b a b
2
i i i i
i 0 i 0

inegalitate care se verific prin ridicarea la ptrat a ambilor membri:


p 1 p 1 p 1 p p 1 p

ai bi ai bi 2 ai bi a j b j 0 2 a b a j bj
2 2
i i
i 0 i 0 i 0 j i 1 i 0 j i 1

Drept urmare, valoarea distanei Euclidiene va fi ntotdeauna mai


mic dect cea a distanei Manhattan:
d2 (a, b) d1 (a, b)
cu egalitate pentru ai=bi, i=0,p-1.

Comparnd distana Euclidian cu distana Chebyshev obinem:


p 1
d 2 a, b a b max ai bi max ai bi d (a, b)
2 2
i i
i 0 , p 1 i 0 , p 1
i 0

Prin urmare, ntre cele trei distane, Euclidian, Manhattan, i


Chebyshev exist relaia:

d (a, b) d2 (a, b) d1 (a, b)

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 7/16


Dac vom considera relaia care se stabilete ntre valorile distanei
Minkowski pentru diverse ordine , putem arta inegalitatea:
1 1
p 1 r 1
r 1 p 1 r
r
ai bi ai bi
i 0 i 0
prin ridicarea la puterea a ambilor membri:
1
r r
p 1 p 1 p 1 r

r 1
ai bi ai bi
ak bk


i 0 i 0 k 0
inegalitate adevrat ntruct:
1
p1 r r
p 1 p 1
ai bi ai bi ai bi ak bk 0 ak bk
r r r

i0 k 0 k 0,k i

Avem n final urmtoarea relaie ntre valorile distanelor introduse:


d (a, b) dr 1 (a, b) dr (a, b) d2 (a, b) d1 (a, b)

Este interesant de analizat modul n care diversele metrici consider


puncte aflate la aceeai distan. De exemplu, s considerm cazul cu
caracteristici i un punct din Rp fix, pentru care ne propunem
s determinm locul geometric al tuturor punctelor aflate la aceeai
distan fa de . Pentru distana Euclidian, punctele aflate la egal
distan de se vor afla pe circumferina unui cerc cu centrul i raz
egal cu valoarea distanei considerate. Pentru distana Chebyshev
vom avea un ptrat centrat n , iar n cazul distanei Manhattan locul
geometric va fi reprezentat de un ptrat rotit cu i centrat n
punctul . Figura 3.4 ilustreaz locul geometric al punctelor egal
deprtate fa de un punct considerat origine pentru diverse valori ale
ordinului al distanei Minkowski. Important de reinut este faptul c
aprecierea apropierii sau deprtrii a dou puncte depinde de
distana utilizat, iar diferite distane vor determina diferite grupri
sau asocieri n spaiul formelor.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 8/16


Figura 3.4. Locul geometric al punctelor egal deprtate de centru. Sus: distana
Minkowski de ordin , i . Mijloc: distana Manhattan ( ),
Minkowski ( ) i distana Euclidian ( ). Jos: distana Minkowski de
ordin , i (pentru avem o aproximare a distanei Chebyshev).

4. Distana Canberra este dat de formula:


p 1
ai bi
d ( a, b)
i 0 ai bi
Distana calculeaz o sum de fracii, fiind potrivit pentru variabile
pozitive. Fiecare fracie individual poate lua valori n intervalul ,
drept urmare valoarea distanei Canberra va fi mrginit inferior de
i superior de , margini atinse n situaiile ai=bi respectiv ai>0 i
bi=0 (sau ai=0 i bi>0) pentru i=0,p-1.

Pentru exemplul anterior:


a=(1, 0, 2, 4)
b=(3, 5, 1, 7)
valoarea distanei Canberra va fi:

d1(a,b) = |1-3|/(1+3)+|0-5|/(0+5)+|2-1|/(2+1)+|4-
7|/(4+7) = 2/4+5/5+1/3+3/11
= 2.11

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 9/16


n continuare sunt prezentate implementrile diverselor metrici ca
funcii statice n cadrul clasei Metrics. Complexitatea acestora este
. Timpul de execuie cel mai ridicat l are funcia
MinkowskiDistance datorit apelurilor repetate Math.Pow.

public class Metrics


{
public static double EuclideanDistance(
Pattern a, Pattern b)
{
if (a.Count != b.Count)
throw new ArgumentException(
String.Format("Number of features does not
match: {0} vs {1}",
a.Count, b.Count));
double d = 0;
for (int i = 0; i < a.Count; i++)
d += (a[i] - b[i]) * (a[i] - b[i]);
return Math.Sqrt(d);
}

public static double ManhattanDistance(


Pattern a, Pattern b)
{
if (a.Count != b.Count)
throw new ArgumentException(
String.Format("Number of features does not
match: {0} vs {1}",
a.Count, b.Count));
double d = 0;
for (int i = 0; i < a.Count; i++)
d += Math.Abs(a[i] - b[i]);
return d;
}

public static double ChebyshevDistance(


Pattern a, Pattern b)
{
if (a.Count != b.Count)
throw new ArgumentException(
String.Format("Number of features does not
match: {0} vs {1}",
a.Count, b.Count));
double d = Math.Abs(a[0] - b[0]);
for (int i = 1; i < a.Count; i++)
if (d < Math.Abs(a[i] - b[i]))
d = Math.Abs(a[i] - b[i]);
return d;
}

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 10/16


public static double MinkowskiDistance(
Pattern a, Pattern b, double r)
{
if (a.Count != b.Count)
throw new ArgumentException(
String.Format("Number of features does not
match: {0} vs {1}",
a.Count, b.Count));
double d = 0;
for (int i = 0; i < a.Count; i++)
d += Math.Pow(Math.Abs(a[i] - b[i]), r);
return Math.Pow(d, 1.0 / r);
}

public static double CanberraDistance(


Pattern a, Pattern b)
{
if (a.Count != b.Count)
throw new ArgumentException(
String.Format("Number of features does not
match: {0} vs {1}",
a.Count, b.Count));
double d = 0;
for (int i = 0; i < a.Count; i++)
if (a[i] + b[i] > 0)
d += Math.Abs(a[i] - b[i])/(a[i] + b[i]);
return d;
}
}

Distana Euclidian generalizat


Cu toate c distana Euclidian este uor de neles i pare intuitiv,
aceasta trebuie utilizat corespunztor pentru a obine rezultatele
optime. Spre exemplu, definiia distanei Euclidiene consider pur i
simplu valorile caracteristicilor fr a face presupuneri sau a impune
constrngeri privind intervalele lor de variaie, unitile de msur,
etc. Astfel, putem avea o caracteristic exprimat ntr-o unitate de
msur care, prin amplitudinea valorilor sale, s anuleze practic
influena celorlalte caracteristici. De exemplu, dac vom considera
urmtoarele dou forme cu caracteristici:
a: 1, 7, 8, 8, 3, 10000
b: 1, 0, 3, 11, 4, 50
unde primele cinci variaz n intervalul iar ultima n intervalul
, atunci valoarea distanei Euclidiene va fi practic

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 11/16


determinat de diferena valorilor ultimei caracteristici (10000-
50)2=99002500, celelalte diferene devenind neimportante ca
amplitudine. Altfel spus, o singur caracteristic va determina
valoarea distanei Euclidiene, anulnd practic efectul celorlalte.

Exist dou soluii pentru a contracara acest efect. Prima const n a


transforma toate caracteristicile astfel nct acestea s varieze n
intervalul (operaie cunoscut sub numele de normalizare) sau n
a exprima valorile tuturor caracteristicilor n aceeai unitate de
msur (n deviaii standard prin operaia de standardizare). A doua
soluie este de a generaliza distana Euclidian pentru a o face robust
la astfel de situaii.

Distana Euclidian generalizat sau distana


Mahalanobis
dM:RpxRpR+ dintre punctele a=(a0,a1,...,ap-1) i
Important b=(b0,b1,...,bp-1) este dat de:

d (a, b) (a b) M (a b)T

unde M reprezint o matrice ptratic de dimensiuni


, vectorul diferen a celor dou puncte iar
T
(a-b) vectorul transpus.

Putem rescrie formula distanei Euclidiene generalizate considernd


forma matriceal a diferenei (un vector cu componente ce
poate fi vzut i ca o matrice cu o linie i coloane), respectiv a
T
vectorului transpus (a-b) (o matrice cu linii i o coloan):
m0,0 m0,1 m0, p1 a0 b0
m m1,1 m1, p1 a1 b1
d M ( a, b) a 0 b0 , a1 b1 ,, a p1 bp1


1, 0





m p1, 0 m p1,1 m p1, p1 a p1 bp1

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 12/16


sau, dup efectuarea nmulirilor:
p 1 p 1
d M ( a, b) m a i, j i bi a j b j
i 0 j 0

n funcie de modul alegere a matricei , putem obine diverse forme


particulare pentru distana Euclidian. n cazul n care alegem ca
fiind matricea identitate:
1 i j
M mi , j
0 i j
atunci obinem distana Euclidian n forma introdus iniial:
a0 b0
a b
a
p 1
a bi
1
d M ( a , b) 0 b0 , a1 b1 , , a p 1 b p 1
1 2
i 0
i


a p1 b p1

Dac vom alege ns ca fiind inversa matricea de covarian a celor


caracteristici, calculat plecnd de la un numr de exemple de
forme, atunci diferena valorilor din formula distanei Euclidiene va fi
ponderat de covariana caracteristicilor folosite. n cazul n care vom
considera pentru doar forma diagonal a matricei de covarian
(coninnd valoarea dispersiei fiecrei caracteristici pe diagonal i
n rest), atunci inversa acesteia va fi:
1
i j
M mi , j si2

0 i j
pentru care obinem distana Euclidian standardizat:
p 1
ai bi 2
d M ( a, b) i 0 si2
n continuare, este prezentat funcia static MahalanobisDistance
care implementeaz distana Euclidian generalizat n cadrul clasei
2
Metrics. Complexitatea calculului distanei va fi (p ) datorit
dimensiunii matricii .

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 13/16


public class Metrics
{
...

public static double MahalanobisDistance(


Pattern a, Pattern b, double[,] m)
{
if (a.Count != b.Count || a.Count != m.GetLength(0) ||
m.GetLength(0) != m.GetLength(1))
throw new ArgumentException(
String.Format(
"Number of features does not match:
{0},{1},{2},{3}",
a.Count, b.Count,
m.GetLength(0), m.GetLength(1)));

// multiply (a-b) * M and store as v


double[] v = new double[a.Count];
for (int i = 0; i < a.Count; i++)
{
v[i] = 0;
for (int j = 0; j < a.Count; j++)
v[i] += (a[j] - b[j]) * m[j, i];
}

// multiply v * (a-b)T
double d = 0;
for (int i = 0; i < v.Length; i++)
d += v[i] * (a[i] - b[i]);

return d;
}
}

Matricea distanelor
Odat aleas distana, putem calcula matricea distanelor pentru
mulimea formelor de care dispunem. Aceasta este o matrice ptratic
de dimensiune , definit astfel:
0 i j
D d i , j
d f i , f j i j
unde locaia va conine valoarea distanei dintre formele i .
Din modul de definire rezult simetria matricii fa de diagonala
principal.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 14/16


Matricea distanelor permite aprecierea similaritii formelor. Astfel,
considernd valorile liniei i ordonnd aceste valori cresctor vom
obine formele cele mai apropiate de forma . Matricea permite de
asemenea aprecierea la un nivel global a relaiilor existente ntre
formele disponibile. Adeseori ns, nelegerea matricii se poate
dovedi greoaie urmrind numai valorile distanelor. De aceea se
prefer folosirea unui cod al culorilor astfel:

1. Celula din matrice care conine distana minim (dmin) va fi


colorat n alb, iar celula cu valoarea maxim a distanei (dmax)
n negru. Celelalte celule vor fi colorate cu un nivel de gri
proporional cu valoarea celulei raportat la minim i maxim:
d d min
grii , j 255 1 i , j
d max d min
presupunnd o reprezentare a culorilor pe 8 bii.
2. A doua modalitate este de a folosi o valoare de prag: celulele
ale cror valori se afl sub prag vor fi colorate n alb, iar cele
aflate deasupra n negru. Bineneles, pot fi folosite mai multe
praguri distincte pentru accentuarea diverselor amplitudini ale
relaiilor dintre forme.

Distana dintre mulimi de forme


Putem introduce msuri de apreciere a distanei ntre dou mulimi
de forme, astfel nct s apreciem apropierea sau deprtarea acestora.
Pentru aceasta, putem folosi orice distan introdus anterior, pe care
o vom aplica fiecrei perechi de forme din produsul cartezian al celor
dou mulimi. Astfel, dac avem dou mulimi cu n1 i n2 forme:
E1={f0,f1,,fn1-1}
E2={f0,f1,,fn2-1}

atunci putem defini distana dintre E1 i E2 ca fiind separaia medie:


n1 1 n2 1

d f , f
1
J ( E1 , E2 )
n1 n2
i j
i 0 j 0

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 15/16


public static double AverageDistanceBetweenSets(
SetOfPatterns set1, SetOfPatterns set2,
Metrics.Metric distance)
{
double d = 0;

for (int i = 0; i < set1.Count; i++)


for (int j = 0; j < set2.Count; j++)
d += distance(set1[i], set2[j]);

return d / (set1.Count * set2.Count);


}

Tema de laborator
Implementai distana Euclidian, Manhattan i Chebyshev. Calculai
i afiai matricea distanelor.

Completai aplicaia de recunoatere a formelor cu urmtoarea


opiune de meniu:
Forme Matricea distanelor... care va afia matricea
distanelor dup alegerea unei distane.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 16/16


4. Partiii. Centrul de greutate i
ineriile asociate mulimilor de
forme

Fie E mulimea formelor de care dispunem n urma unui proces de achiziie i


msurare a caracteristicilor asupra unei mulimi de obiecte. Considernd c obiectele
sunt mprite n m clase i c un obiect poate aparine numai unei singure clase,
putem considera mulimea E ca fiind partiionat n m submulimi disjuncte Ci,
fiecare submulime coninnd formele asociate clasei i.

Fie E mulimea formelor. Se numete partiie a lui E mulimea de


clase P = {C0 , C1 ,K , Cm1} pentru care:
1. Ci E , i = 0, m 1
Important
2. Ci C j = 0 , i, j = 0, m 1, i j
m 1
3. UC
i =0
i =E

O clas C se numete omogen dac x, y C i z C avem:

d ( x, y ) min{d ( x, z ), d ( y, z )}

unde d este o distan. Cu alte cuvinte, distana dintre dou forme aparinnd unei
clase omogene este ntotdeauna mai mic dect distana dintre o form aparinnd
clasei respective i una din afara acesteia. n practic suntem interesai de obinerea
de clase care au proprietatea de omogenitate ntruct regiunile asociate acestora n
spaiul caracteristicilor vor fi compacte i bine separate ntre ele. Proprietatea de
omogenitate deriv din modul de alegere a caracteristicilor n conformitate cu
discuiile avute n capitolele anterioare. Extinznd noiunea la nivelul partiiei, vom
considerao partiie ca fiind omogen dac toate clasele acesteia sunt omogene.

S considerm drept exemplu problema recunoaterii figurilor geometrice desenate


n cadrul unei imagini. Figura 4.1 prezint un exemplu de imagine realizat n
Microsoft Paint n care am considerat trei tipuri de figuri geometrice respectiv trei
clase: ptrat, cerc i triunghi. Pentru a reprezenta figurile geometrice, vom alege doar

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 1/15


dou caracteristici (pentru simplitate i pentru a vizualiza de manier uoar formele
n spaiul caracteristicilor):

1. Raportul de aspect al figurii (Aspect Ratio, AR) definit ca raportul dintre


nlimea i limea n pixeli a obiectului geometric:

Height
AR =
Width

2. Procentul de umplere al figruii (Fill Ratio, FR) definit ca raportul dintre aria
figurii geometrice (numrul de pixeli ai obiectului binar) i aria
dreptunghiului circumscris:

Area
FR =
Width Height

Figura 4.1. O imagine realizat n Microsoft Paint coninnd 18 figuri


geometrice din 3 clase: ptrat, cerc i triunghi.

Avnd n vedere modul de definire al caracteristicilor, putem estima apriori valorile


pe care acestea le vor lua pentru obiecte aparinnd celor trei clase. Astfel, figurile
din clasa dreptunghi vor avea nlimea i limea aproximativ egale, drept urmare ne
ateptm la valori apropiate de 1 pentru AR i FR. Pentru clasa cerc, dreptunghiul
circumscris va avea laturile egale cu 2r unde r este raza cercului i, prin urmare,
valorile ateptate pentru AR i FR vor fi 1 respectiv R2/4R2=/40.79. Pentru
figurile din clasa triunghi dreptunghiul va avea limea egal cu latura triunghiului l

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 2/15


i nlimea l3/2. Valorile ateptate pentru cele dou caracteristici vor fi
3/20.87 respectiv 0.5. Figura 4.2 ilustreaz grafic aceste observaii.

Figura 4.2. Calculul caracteristicilor AR i FR pentru cele 3 clase n


funcie de dimensiunile fiecrei figuri.

Efectund msurtorile asupra obiectelor geometrice, obinem valorile reprezentate


n tabelul 4.1. Se observ c valorile ateptate coincid cu cele msurate pentru cele
trei clase cu singura diferen mai mare raportat pentru clasa triunghi i
caracteristica AR. Diferena (0.72 fa de valoarea ateptat 0.87) se datoreaz
faptului c modelul presupus pentru triunghi a fost unul echilateral n timp ce
triunghiurile desenate n Paint nu au avut toate laturile egale. Figura 4.3 reprezint
formele n spaiul caracteristicilor AR x FR unde se observ o delimitare clar a
celor trei clase.

Tabelul 4.1 Valorile msurate i ateptate ale caracteristicilor propuse pentru


reprezentarea obiectelor geometrice din Figura 4.1
Valoarea Deviaia
Clasa Minimum Maximum Media
ateptat Standard
patrat AR .86 1.02 .95 1.00 .052
FR 1.00 1.00 1.00 1.00 .000
cerc AR .97 1.07 1.02 1.00 .041
FR .77 .79 .78 0.79 .008
triunghi AR .66 .81 .72 0.87 .054
FR .51 .51 .51 0.50 .000

Pentru exemplul considerat vom avea urmtoarea partiionare a formelor (din Figura
4.1) n cele 3 clase:

C1 = {1,6, 8,14,15,16}
C2 = {2,4, 5, 9,11,17}
C3 = {3,7,10,12,13,18}

respectiv partiia P={C1,C2,C3}.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 3/15


Figura 4.3. Reprezentarea figurilor geometrice n spaiul
caracteristicilor AR x FR. Se observ delimitarea distinc a celor trei
clase.

n continuare este prezentat funcia CreateClassPartition(), membr a clasei


SetOfPatterns, care implementeaz operaia de partiionare a unei mulimi de forme
n submulimile corespunztoare fiecrei clase. Funcia va ntoarce o mulime de
mulimi de forme reprezentate ca List<SetOfPatterns>.

public class SetOfPatterns


{
public List<SetOfPatterns> CreateClassPartition()
{
// determine number of classes
int maxClassIndex = patterns[0].ClassIndex;
for (int i = 1; i < patterns.Count; i++)
if (maxClassIndex < patterns[i].ClassIndex)
maxClassIndex = patterns[i].ClassIndex;
maxClassIndex++;

// allocate memory for each class


List<SetOfPatterns> partition = new List<SetOfPatterns>();
for (int i = 0; i < maxClassIndex; i++)
partition.Add(new SetOfPatterns());

// split the set into a partition of [maxClassIndex] classes


for (int i = 0; i < patterns.Count; i++)
partition[patterns[i].ClassIndex].Add(patterns[i]);

return partition;
}
}

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 4/15


Pentru a aprecia ndeplinirea criteriului de omogenitate al claselor, respectiv al
partiiei, vom implementa dou funcii n cadrul clasei SetOfPatterns:
MaxDistance(...) care va ntoarce distana maxim dintre formele aparinnd unei
mulimi i MinDistanceBetweenSets(...) care va returna distana minim dintre
perechile de forme aparinnd a dou mulimi.

public class SetOfPatterns


{
...
public double MaxDistance(Metrics.Metric distance)
{
double max = Double.MinValue;

for(int i = 0; i < patterns.Count; i++)


for (int j = i + 1; j < patterns.Count; j++)
{
double d = distance(patterns[i], patterns[j]);
if (max < d) max = d;
}

return max;
}

public static double MinDistanceBetweenSets(


SetOfPatterns set1, SetOfPatterns set2,
Metrics.Metric distance)
{
double min = Double.MaxValue;

for (int i = 0; i < set1.Count; i++)


for (int j = 0; j < set2.Count; j++)
{
double d = distance(set1[i], set2[j]);
if (min > d) min = d;
}

return min;
}
...
}

Criteriul va fi ndeplinit pentru o anumit clas dac distana maxim a formelor din
clas va fi mai mic dect distanele minime dintre mulimea clasei respective i toate
celelalte clase. Implementarea privind testarea criteriului de omogeneitate este
prezentat n continuare.

List<string> classLabels = null;


SetOfPatterns set = PatternsIO.ReadFromFile("data.txt", out classLabels);

List<SetOfPatterns> partition = set.CreateClassPartition();


for (int i = 0; i < partition.Count; i++)
{
double dmax = partition[i].MaxDistance(Metrics.EuclideanDistance);

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 5/15


Console.WriteLine("dmax({0}) = {1:.000}", classLabels[i], dmax);

bool isHomogenous = true;


for (int j = 0; j < partition.Count; j++)
if (j != i)
{
double dij = SetOfPatterns.MinDistanceBetweenSets(
partition[i], partition[j],
Metrics.EuclideanDistance
);
Console.WriteLine(
"\tdmin({0},{1}) = {2:.000}",
classLabels[i], classLabels[j], dij
);
if (dmax > dij)
{
isHomogenous = false;
break;
}
}

Console.WriteLine("homogenous = {0}", isHomogenous);


Console.WriteLine();
}

Considernd distana Euclidian, obinem urmtoarele rezultate pentru cele trei clase
i obiectele geometrice prezentate n Figura 4.1:

Centrul de greutate al unei mulimi de forme

Fie E o mulime alctuit din n forme de care un cercettor dispune n urma


procesului de msurare a p caracteristici:

E={f0, f1, f2, , fn-1}

unde forma i=0,n-1 este dat de:

fi={xi,0, xi,1, xi,2 , , xi,p-1}

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 6/15


Calculnd valoarea medie pentru fiecare caracteristic obinem p valori care indic
tendina central a fiecrui tip de msurtoare. Putem vedea aceste p valori ca
reprezentnd o nou form care reprezint tendina central a formelor din
mulimea E, form denumit n continuare centrul de greutate al mulimii E.

Fie E o mulime cu n forme avnd p caracteristici. Se numete centrul


de greutate al mulimii E forma coninnd mediile fiecrei
caracteristici:
Important
1 n 1 1 n 1 1 n 1
g = x0 , x1,K, x p 1 = xi, 0 , xi ,1,K, xi , p 1
( )
n i =0 n i =0 n i=0

unde x j reprezint media caracteristicii j iar xi , j valoarea caracteristicii


j pentru forma i.

Putem practic calcula centrul de greutate pentru orice mulime de forme ns este
important semnificaia pe care o asociem acestuia. Astfel, prezint importan
calculul centrului de greutate pentru forme aparinnd aceleiai clase ntruct putem
s asociem acestui calcul semnificaia de forma central sau reprezentativ
pentru clasa respectiv. Dac vom considera exemplul anterior al figurilor
geometrice, formele asociate celor 6 ptrate sunt:

(1.02, 1.00)
(0.86, 1.00)
(0.95, 1.00)
(0.95, 1.00)
(0.97, 1.00)
(0.95, 1.00)

Drept urmare, centrul de greutate al clasei ptrat va fi reprezentat de forma:

g0 = ((1.02+0.86+0.95+0.95+0.97+0.95)/6,(1+1+1+1+1+1)/6)
= (0.95, 1.00)

Tabelul 4.2 prezint centrele de greutate calculate pentru cele trei clase iar Figura 4.4
ilustreaz grafic reprezentarea centrelor de greutate n spaiul caracteristicilor. Se
observ proprietatea centrelor de greutate de a reprezenta o tendin central a
formelor aparinnd fiecrei clase, dnd aparena unor forme prototip sau
reprezentative pentru fiecare clas sau, cu alte cuvinte, ce ne-am atepta s obinem
n cazul mediu n urma efecturii msurtorilor caracteristicilor asupra unui obiect
aparinnd unei anumite clase.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 7/15


Tabel 4.2 Centrele de greutate calculate pentru fiecare clas a figurilor geometrice
Nr. Clasa AR FR
1 ptrat 1.02 1.00
6 0.86 1.00
8 0.95 1.00
14 0.95 1.00
15 0.97 1.00
16 0.95 1.00
g0 0.95 1.00
2 cerc 1.00 0.79
4 1.06 0.79
5 1.07 0.78
9 1.04 0.77
11 0.97 0.78
17 0.99 0.79
g1 1.02 0.78
3 triunghi 0.68 0.51
7 0.66 0.51
10 0.69 0.51
12 0.74 0.51
13 0.72 0.51
18 0.81 0.51
g2 0.72 0.51

Figura 4.4. Reprezentarea centrelor de greutate ale fiecrei clase n


spaiul caracteristicilor AR x FR.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 8/15


Avnd n vedere faptul c centrul de greutate conine valorile medii ale fiecrei
caracteristici, observaiile prezentate n cadrul capitolului analizei caracteristicilor
privind indicatorul medie sunt valabile i pentru centrul de greutate. Astfel, putem
discuta i aici depedena de valorile extreme ale unei caracteristici sau problema
introducerii de valori artificiale care nu fac neaprat parte dintre valorile luate de o
anumit caracteristic. Cu toate acestea, centrul de greutate reprezint o modalitate
simpl i eficient de a obine o form reprezentativ pentru o anumit clas sau,
altfel spus, un prototip al acesteia.

n continuare este prezentat implementarea calculului centrului de greutate pentru


formele unei mulimi sub forma funciei ComputeCenterOfGravity din clasa
SetOfPatterns:

public class SetOfPatterns


{
...
public Pattern CenterOfGravity()
{
Pattern g = new Pattern(this.patterns[0].Count);

for (int i = 0; i < this.patterns.Count; i++)


for (int j = 0; j < g.Count; j++)
g[j] += this.patterns[i][j];

for (int j = 0; j < g.Count; j++)


g[j] /= this.patterns.Count;

return g;
} ...
}

Dup cum am menionat, prezint importan calculul centrului de greutate pentru


forme aparinnd aceleiai clase. Astfel, pentru a obine centrele de greutate
individuale, vom partiiona mulimea formelor n clasele corespunztoare i vom
apela funcia ComputeCenterOfGravity pentru fiecare submulime. Implementarea
este prezentat n continuare.

List<string> classLabels = null;


SetOfPatterns set = PatternsIO.ReadFromFile("data.txt", out classLabels);

List<SetOfPatterns> partition = set.CreateClassPartition();


for (int i = 0; i < partition.Count; i++)
{
Pattern g = partition[i].CenterOfGravity();

for (int j = 0; j < g.Count; j++)


Console.Write("{0:.00},", g[j]);

Console.WriteLine();
}

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 9/15


Inerii asociate mulimilor de forme

Diverse tipuri de calcule i msurtori pot fi imaginate pentru formele aparinnd


unei anumite mulimi, centrul de greutate reprezintnd una dintre acestea. n
msura n care centrul de greutate este asociat indicatorilor tendinei centrale
(mediei) discutai n capitolul 2, calcule similare pot fi introduse n vederea aprecierii
dispersiei formelor dintr-o mulime fa de centrul lor de greutate. Vorbim astfel
despre ineriile unui grup de forme a cror definiie variaz n funcie de scopul
urmrit.

Fie E o mulime coninnd n forme. Se numete ineria mulimii E n


raport cu un punct a din Rp valoarea:

Important n 1
I (a ) = d 2 ( f i , a )
i =0

unde d reprezint o distan.

Ineria poate fi calculat fa de centrul de greutate al mulimii, caz n care se poate


observa asemnarea cu definiia dispersiei unei mulimi de valori. Reuim astfel s
apreciem deprtarea formelor fa de centrul lor de greutate sau, altfel spus,
mprtierea formelor:

n 1
I (g ) = d 2 ( fi , g )
i =0

valoare care mai poart numele de ineria total asociat mulimii E.

Dac vom considera partiionarea mulimii n m clase, P = {C0 , C1 ,K , Cm1}, putem


aplica principul de calcul al ineriei pentru fiecare clas n parte obinnd informaii
despre ct de mprtiate sunt formele din fiecare clas fa de centrul lor de greutate
(similar cu modul de calcul a dispersiei pentru valorile unei caracteristici pentru o
anumit clas). Vorbim astfel despre interia intraclas ntruct considerm pentru
calcul doar formele aparinnd aceleiai clase. n cazul n care dorim s apreciem
mprtierea claselor la nivel global vorbim despre ineria interclas care msoar
deprtarea centrelor de greutate ale fiecrei clase fa de centrul de greutate al
mulimii de forme calculat indepedent de clas. Avem astfel dou tipuri de inerii:
ineria intraclas i interclas. n continuare vom nota centrul de greutate al clasei k
ca fiind gk iar prin nk vom nelege numrul de forme din clasa Ck, k=0,p-1.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 10/15


Ineria intraclas asociat clasei Ck este dat de:

Wk = d (f , g )2
k
Important f Ck

iar ineria intraclas total a partiiei P = {C0 , C1 ,K, Cm1} este:

m 1 m 1
W = Wk = d 2 ( f , g k )
k =0 k = 0 f Ck

Ineria interclas asociat partiiei P = {C0 , C1 ,K , Cm1} este dat de:


m 1
B = nk d 2 ( g k , g )
k =0
Important

Notaia W pentru ineria intraclas provine din termenul within-class iar notaia B din
between-class. ntre cele trei tipuri de inerii (total, intraclas i interclas) pentru o
anumit partiie a unei mulimi de forme exist relaia:

T = B +W

care poate fi demonstrat uor considernd drept metric distana Euclidian.

Considernd formele din exemplul recunoaterii figurilor geometrice, putem calcula


ineria intraclas asociat clasei ptrat W0 astfel:

Nr. AR FR d(fi,g0)
1 1.02 1.00 sqrt((1.02-0.95)2+(1.00-1.00)2)=0.07
6 0.86 1.00 Sqrt((0.86-0.95)2+(1.00-1.00)2)=0.09
8 0.95 1.00 sqrt((0.95-0.95)2+(1.00-1.00)2)=0.00
14 0.95 1.00 sqrt((0.95-0.95)2+(1.00-1.00)2)=0.00
15 0.97 1.00 sqrt((0.97-0.95)2+(1.00-1.00)2)=0.02
16 0.95 1.00 sqrt((0.95-0.95)2+(1.00-1.00)2)=0.00
g0 0.95 1.00

W0 = d2(f1,g0)+d2(f6,g0)+d2(f8,g0)+d2(f14,g0)+d2(f15,g0)+d2(f16,g0)
= 0.072+0.092+0.002+0.002+0.022+0.002
= 0.0134

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 11/15


Pentru clasele cerc i triunghi vom obine W1=0.009 respectiv W2=0.015 ceea ce face
ca ineria intraclas total a partiiei s fie:

W = W0 + W1 + W2 = 0.0134 + 0.009 + 0.015 = 0.0374

Pentru calculul interiei interclas a partiiei B avem nevoie de centrele de greutate


ale fiecrei clase respectiv de numrul de forme din fiecare clas, precum i de
centrul de greutate al tuturor celor 18 forme, g:

gk AR FR nk d(gk,g)
g0 0.95 1.00 6 sqrt((0.95-0.90)2+(1.00-0.76)2)=0.245
g1 1.02 0.78 6 sqrt((1.02-0.90)2+(0.78-0.76)2)=0.136
g2 0.72 0.51 6 sqrt((0.72-0.90)2+(0.51-0.76)2)=0.308
g 0.90 0.76

Ineria interclas va fi:

B = n0*d(g0,g)2 + n1*d(g1,g)2 + n2*d(g2,g)2


= 6*0.2452 + 6*0.1362 + 6*0.3082
= 1.0404

Ineria intraclas Wk permite aprecierea mprtierii formelor fa de centrul lor de


greutate n raport cu o anumit distan. Obiectivul cercettorului va fi prin urmare
minimizarea fiecrei valori Wk pentru fiecare clas k=0,m-1. O inerie de o valoare
mic semnific faptul c formele sunt apropiate de centrul de greutate al clasei de
care aparin i, drept urmare, regiunea de delimitare a clasei n spaiul formelor este
relativ strns. Pe de celalalt parte, ineria interclas permite aprecierea deprtrii
claselor ntre ele. De aceast dat, obiectivul cercettorului este s obin clase bine
separate n spaiul formelor respectiv o valoare ct mai mare pentru ineria
interclas. Cum suma celor dou interii este constant (egal cu ineria total), un
minim al ineriei intraclas corespunde unui maxim al ineriei interclas i invers. Un
compromis utilizat n practic pentru aprecierea calitii unei partiii este de a
aprecia valoarea raportului dintre ineria interclas B i cea intraclas W:

B
J=
W

valoare care se dorete a fi ct mai mare (urmrind maxim pentru B i minim W).

Pentru exemplul considerat vom avea J = B/W =1.0404/0.0374 = 27.818.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 12/15


Trebuie remarcat faptul c folosirea criteriului J poate fi o modalitate de apreciere a
calitii unei caracteristici. Suntem interesai de alegerea unor caracteristici care s
prezinte valori asemntoare pentru obiecte aparinnd aceleiai clase i valori ct
mai diferite pentru obiecte aparinnd unor clase diferite. Putem folosi astfel
indicatorul J pentru a analiza modul n care o anumit caracteristic realizeaz
gruparea formelor.

Implementrile celor trei tipuri de inerii sunt prezentate n continuare sub forma
metodelor WithinClassVariance, BetweenClassVariance i TotalVariance ale clasei
SetOfPatterns. Toate metodele primesc ca argument o metric i folosesc funcia
privat Variance care implementeaz ineria unei mulimi de forme fa de centrul ei
de greutate. Funcia WithinClassVariance ntoarce un vector de valori reale
coninnd ineriile intraclas pentru fiecare clas a partiiei mulimii de forme
considerate.

public class SetOfPatterns


{
...
private double Variance(Metrics.Metric distance)
{
double variance = 0;

Pattern g = CenterOfGravity();
for (int i = 0; i < patterns.Count; i++)
variance += distance(patterns[i], g)*distance(patterns[i], g);

return variance;
}

public double[] WithinClassVariance(Metrics.Metric distance)


{
List<SetOfPatterns> partition = this.CreateClassPartition();

double[] w = new double[partition.Count];


for (int i = 0; i < partition.Count; i++)
w[i] = partition[i].Variance(distance);

return w;
}

public double BetweenClassVariance(Metrics.Metric distance)


{
Pattern g = this.CenterOfGravity();
List<SetOfPatterns> partition = this.CreateClassPartition();

double b = 0;
for (int i = 0; i < partition.Count; i++)
{
Pattern gi = partition[i].CenterOfGravity();
b += partition[i].Count * distance(gi, g) * distance(gi, g);
}
return b;
}

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 13/15


public double TotalVariance(Metrics.Metric distance)
{
return this.Variance(distance);
}

public double JVarianceCriterion(Metrics.Metric distance)


{
double B = BetweenClassVariance(distance);

double[] w = WithinClassVariance(distance);
double W = 0;
for (int i = 0; i < w.Length; i++)
W += w[i];

return B / W;
}
...
}

O ilustrare a aplicrii metodelor este prezentat n continuare.

List<string> classLabels = null;


SetOfPatterns set = PatternsIO.ReadFromFile("data.txt", out classLabels);

Console.WriteLine(
"T = {0:.000}", set.TotalVariance(Metrics.EuclideanDistance)
);
Console.WriteLine(
"B = {0:.000}", set.BetweenClassVariance(Metrics.EuclideanDistance)
);
double[] w = set.WithinClassVariance(Metrics.EuclideanDistance);
double W = 0;
for (int i = 0; i < w.Length; i++)
{
Console.WriteLine("\tw[{0}] = {1:.000}", classLabels[i], w[i]);
W += w[i];
}
Console.WriteLine("W = {0:.000}", W);
Console.WriteLine(
"J = {0:.000}", set.JVarianceCriterion(Metrics.EuclideanDistance)
);

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 14/15


Tema de laborator

Implementai calculul i afiai centrul de greutate pentru fiecare clas.


Implementai ineria intraclas, interclas i total pentru mulimea de forme
ncrcat din fiierul de intrare.

Completai aplicaia de recunoatere a formelor cu urmtoarea opiune de meniu:


Analiz  Centre de greutate... care va afia centrele de greutate pentru
fiecare clas
Analiz  Inerii... care va afia cele trei tipuri de inerii pentru mulimea
formelor ncrcate.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 15/15


nvarea
#5 supravegheat.
Algoritmul CLASA

Obiective

1. Prezentarea metodei de clasificare folosind


funcii discriminant. Algoritmul de clasificare
supravegheat CLASA.
2. Lucrul cu seturile de nvare i de test:
colectarea datelor, preprocesarea
caracteristicilor, mprirea formelor n seturi
de antrenare i test, antrenarea clasificatorului,
estimarea ratei de clasificare corect precum i
a erorii de clasificare.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 1/4


1. Funcii discriminant
Fie E mulimea formelor i N(E) o grupare de forme: N ( E ) = {( xi , f i ) / xi E}
unde f i reprezint frecvena de apariie a formei xi . Pentru fiecare form xi
cunoatem deasemenea i clasa de care aparine ( xi C j ) sau, echivalent,
cunoatem partiionarea grupului de forme N(E): P ( E ) = {C1 , C 2 K C M } n M
clase.

Presupunem deasemenea c dispunem de o serie de M funcii i (x) , i = 1, M


asociate celor M clase: i ( x ) : E R care ne ofer informaii privind
probabilitatea de apartenen a unei formei x la clasa i. Funciile i ( x) poart
denumirea de funcii discriminant.

Avnd o nou form x a crei clasificare ne propunem s o stabilim, putem lua


urmtoarea decizie de clasificare:

Forma x aparine acelei clase pentru care evaluarea funciei


discriminant asociate este maxim (avem probabilitatea maxim ca
forma s aparin clasei respective).

{
Echivalent, scriem: x C i dac i = arg max j ( x ) . }
j =1, M

Singura problem rmas este de a identifica forma exact a fiecrei dintre cele
M funcii i ( x) asociate celor M clase pentru o anumit problem de clasificare.
O variant este de a folosi modele de funcii discriminant predefinite pentru care
determinm parametrii fiecrui modelul folosind informaia furnizat de formele
din setul de antrenare (a cror clasificare o cunoatem).

Procesul de determinare a parametrilor modelului fiecrei funcii discriminant


reprezint faza de antrenare. Pentru clasificarea noilor forme, vom folosi evalua
succesiv funciile discriminat calculate i vom lua decizia de clasificare n
concordan cu valoarea maxim rezultat.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 2/4


2. Algoritmul CLASA
Algoritmul CLASA propune un anumit model de funcii discriminant plecnd de
la distana Euclidian dintre dou forme. Dac notm d 2 ( g i , x ) distana
Euclidian generalizat dintre centrul de greutate al clasei C i i forma x :
d 2 (g i , x ) = (g i x ) M (g i x )
T

1 0 0 0
0 1 0 0
i considernd n calcul matricea identitate M = , obinem succesiv:
0 0 .. 0
0 0 .. 1
T
d 2 (g i , x ) = (g i x ) (g i x )
respectiv
T
d 2 (g i , x ) = g i g i g i x T x g i + x x T

T
Cum g i x T = x g i , obinem: d
2
(g i , x ) = g i g i T 2 g i xT + x xT

Putem alege astfel cele M funcii discriminant i ( x) = d ( g i , x ) ntruct avem


2

nevoie pentru clasificare de funcii care s fie evaluate la o valoare ct mai mare
cu ct distana este mai mic (forma este mai apropiat de centrul de greutate al
clasei respective).

t
Cum termenul x x are aceeai valoare pentru toate funciile discriminant,
putem renuna la el, ajungnd n final la:
1 t
i ( x) = g i g i + g i x T
2

Cele M funcii garanteaz clasificarea unei noi forme x la clasa pentru care
distana dintre form i centrul de greutate al clasei este minim.

Pentru g i = (g1i , g 2i , K g ip ) i x = (x1 , x 2 , K x p ) obinem:


1 p p
i ( x) = g 2j + g ij x j
2 j =1 j =1

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 3/4


Figura 1. Algoritmul CLASA stabilete apartenena formei
x la clasa cu centrul de greutate cel mai apropiat.

3. Tema de laborator
3a. Implementai algoritmul CLASA pentru clasificarea unei forme noi la una din
cele M clase ale cror centre de greutate sunt calculate folosind setul de
antrenare.

3b. Testai algoritmul CLASA folosind formele generate de aplicaia


demonstrativ pentru care avei la dispoziie i codul surs aferent.
b1) Creai un set de nvare (SET1) alctuit din cte un singur exemplu
pentru fiecare clas
b2) Creai un set de nvare (SET3) alctuit din cte 3 exemple pentru
fiecare clas
b3) Creai un set de nvare (SET5) alctuit din cte 5 exemple pentru
fiecare clas
b4) Creai un set de test (TEST) alctuit din cate 3 exemple pentru fiecare
clas.
b5) Rulai algoritmul clasa pentru setul de test dup ce n prealabil ai
efectuat antrenarea pentru fiecare set de nvare. Numrai exemplele din
setul de test care au fost corect clasificate (N_CORECT) i calculai
acurateea sistemului dvs. de recunoatere a cifrelor scrise de mn ca
fiind N_CORECT / N_TEST. Cum variaz acurateea n funcie de
dimensiunea setului de nvare (1, 3, 5)?

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 4/4


8. nvarea nesupravegheat.
Algoritmul nucleelor dinamice

Fie F o mulime de obiecte cunoscute doar prin msurtorile efectuate asupra lor i
fie E mulimea formelor aferente. Fie deasemenea o mulime de etichete
= { 1 , 2 K m } . n cadrul nvrii nesupravegheate se ncearc determinarea unei
funcii de identificare:
:F

care s asocieze fiecrui obiect din F (i corespunztor fiecrei forme din E) o eticheta
din , eticheta preciznd clasa de care aparine forma respectiv.

Obiectivul nvrii nesupravegheate l constituie realizarea unei partiionri a


mulimii E pornindu-se numai de la rezultatele msurtorilor efectuate asupra
obiectelor primare din F, numrul de clase putnd fi cunoscut sau nu dinainte.

Exist o serie de deosebiri ntre nvarea supravegheat i cea nesupravegheat:


nvarea supravegheat nvarea nesupravegheat
Exist un set de nvare i un set de test Nu exist set de nvare sau de test.
ale cror forme au fost deja clasificate de Apartenena formelor la un set de clase
ctre un instructor. nu este cunoscut apriori.
 Setul de nvare este folosit pentru a
determina parametrii unui model de
clasificator
 Setul de test are rolul de a determina
performanele clasificatorului
Obiectivul este de a obine un clasificator Obiectivul este de a grupa formele n
care va fi folosit pentru a recunoate funcie de asemnrile detectate ntre
(clasifica) noi forme. acestea.
Date disponibile (date de intrare): Date disponibile (date de intrare):
 setul de nvare  mulime de forme a cror clasificare
 setul de test nu este cunoscut
 un model de clasificator (de ex.:  distan
funcii discriminant, perceptron Date de ieire: o partiionare a mulimii
multistrat, etc). formelor n clase de forme asemntoare.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 1/4


Date de ieire: parametrii modelului de Numrul de clase poate fi specificat sau
clasificator. poate fi determinat automat.

Exemplu: Clasificarea i gruparea automat a documentelor


Fie o colecie de articole i fie o reprezentare a acestora ca forme. n contextul
nvrii supravegheate putem fi interesai de problema clasificrii articolelor n
funcie de domeniul acestora de exemplu: matematic, biologie, literatur, tiina
calculatoarelor, etc. Pentru aceasta, vom dispune de un set de nvare alctuit din
articole a cror clasificare o cunoatem deja, vom antrena un anumit model de
clasificator ale crui performane le vom aprecia pe baza unui set de test.

n contextul nvrii nesupravegheate dispunem de o mulime de articole pentru


care nu cunoatem explicit apartenena fiecruia la un anumit domeniu i suntem
interesai de gruparea lor n funcie de gradul de asemnare dintre coninutul pe care
l prezint. Realizarea unei astfel de partiionri ar putea conduce de exemplu la
alctuirea automat a cuprinsului unei cri pe capitole i subcapitole, fiecare
(sub)capitol coninnd articole cu coninut asemntor.

Exemplu: Compresia imaginilor


Fie o imagine de dimensiuni mari reprezentat pe 24 bii. Numrul de culori posibile
va fi 224, aproximativ 16 milioane. Putem folosi nvarea nesupravegheat pentru a
realiza o compresie a imaginii reducnd numrul de culori spre exemplu la m=16
clase. Mulimea formelor este n acest caz mulimea pixelilor imaginii iar fiecare
form este reprezentat de un vector cu trei componente (red, green, blue) ce
definesc culoarea fiecrui pixel. n cadrul nvrii nesupravegheate vom ncerca
gruparea culorilor prezente n imagine n 16 grupuri, fiecare grup coninnd culori
ct mai asemntoare.

8.1 Metoda nucleelor dinamice

Metoda presupune partiionarea automat a unui set de forme n M clase, valoarea


M fiind specificat.

Iniial, se aleg aleator M forme care vor reprezenta nucleele viitoarelor clase. Restul
formelor vor fi incluse n clasa corespunztoare nucleului celui mai apropiat. Dup
ce toate formele au fost asignate cte unei clase, centrele de greutate ale claselor sunt
calculate i se determin noile nuclee ale claselor ca fiind formele cele mai apropiate
de centrele de greutate. Procedura se reia, reasignnd restului de forme o clas
aferent, pn cnd nucleele dinamice determinate n cursul a dou iteraii succesive
coincid.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 2/4


n final se obine o partiie a mulimii formelor n M clase cu proprietatea c formele
fiecrei clase sunt mai apropiate de centrul de greutate al clasei de care aparin dect
de celelalte centre de greutate. Formele sunt deci grupate dup asemnarea lor n
spaiul caracteristicilor.

*) forme reprezint mulimea formelor


*) n numrul de forme
*) p numrul de caracteristici ale fiecrei forme
*) m numrul de clase n care vor fi partiionate formele

procedur NUCLEE-DINAMICE(forme, n, p, m)
*) Initializare:alege nucleele celor m clase n mod aleator
*) din mulimea formelor: n acest caz, primele m forme au
*) fost alese drept nuclee
nuclee  {}
pentru i  0, m-1 execut
nuclee[i]  forme[i]
sf.pentru

repet
*) clasific formele n funcie de distana
*) fa de nucleul cel mai apropiat
pentru i  0, n-1 execut
minDist  MAX_INT
indexClasa  -1
pentru j  0, m-1 execut
d  DISTANTA-EUCLIDIANA(forme[i], nuclee[j])
dac minDist > d atunci
minDist  d
indexClasa  j
sf.dac
sf.pentru
clasa[i]  indexClasa
sf.pentru

*) calculeaza centrele de greutate ale


*) claselor nou formate
cg  {}
ncg  {}
pentru i  0, n-1 execut
pentru j  0, p-1 execut
cg[clasa[i]][j] += forme[i][j]
sf.pentru
ncg[clasa[i]]++
sf.pentru
pentru i  0, m-1 execut
pentru j  0, p-1 execut
cg[i][j] /= ncg[i]
sf.pentru

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 3/4


sf.pentru

*) alege noile nuclee ca fiind cele mai apropiate


*) forme fata de centrele de greutate
pentru i  0, m-1 execut
minDist  MAX_INT
indexForma  -1
pentru j  0, n-1 execut
d  DISTANTA-EUCLIDIANA(cg[i], forme[j])
dac minDist > d atunci
minDist  d
indexForma  j
sf.dac
sfrit
nucleeNoi[i]  forme[j]
sfrit

*) verfic dac exist schimbri n nucleele


*) celor m clase
nucleeleCoincid  ADEVRAT
pentru i  0, m-1 execut
pentru j  0, p-1 execut
dac nuclee[i][j] != nucleeNoi[i][j] atunci
nucleeleCoincid  FALS
sf.dac
sf.pentru
sf.pentru

*) noile nuclee sunt pastrate pentru o noua iteratie


nuclee  nucleeNoi
ct timp !nucleeleCoincid

*) ntoarce vectorul clasa coninnd clasificarea formelor


*) n cele m clase
ntoarce clasa
sfrit

Tema de laborator

Implementai algoritmul nucleelor dinamice pentru mprirea automat a unei


mulimi de forme n M clase.

Testai algoritmul nucleelor dinamice implementnd problema reducerii numrului


de culori pentru o imagine bitmap reprezentat pe 24 de bii (224= 16,777,216 culori
posibile). Mulimea formelor va fi reprezentat de mulimea pixelilor imaginii. O
forma va avea 3 caracteristici (red, green, blue). Aplicai algoritmul i vizualizai
efectul reducerii culorilor pentru M = 256, 64, 16 clase.

Material disponibil la adresa http://www.eed.usv.ro/~vatavu 4/4

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