Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE
DISERTAȚIE
BUCUREŞTI, 2011
CUPRINS
Introducere ............................................................................................................................5
1. Categorizarea Textelor .......................................................................................................6
1.1 Problema Clasificării ..................................................................................................................7
1.2 Categorizarea Textelor ............................................................................................................ 10
1.2.1 Scurt istoric ...................................................................................................................... 11
1.2.2 O definire formală a problemei ......................................................................................... 12
1.2.3 Modelul spațiului vectorial ............................................................................................... 14
2. Support Vector Machines (SVMs) ....................................................................................20
2.1 Hiperplane de seperabilitate liniară ......................................................................................... 22
2.1.1 Algoritmul de învățare al perceptronului lui Rosenblatt .................................................... 23
2.2 Hiperplanul optim de separabilitate ........................................................................................ 26
2.3 Clafisicatorul SVM cu margine inflexibilă (hard-margin) ........................................................... 29
2.3.1 Marginea funcțională și marginea geometrică .................................................................. 30
2.3.2 Problema de optimizare ................................................................................................... 33
2.3.3 Dualitatea Lagrange .......................................................................................................... 34
2.4 Clafisicatorul SVM cu margine flexibilă (soft-margin) ............................................................... 40
2.5 Clasificatorul SVM neliniar (nonlinear SVM) ............................................................................. 44
3. Metode de tip Kernel .......................................................................................................51
3.1 Privire de ansamblu................................................................................................................. 53
3.2 Prezentare generală ................................................................................................................ 55
3.3 Modularitate ........................................................................................................................... 57
3.3.1 Matricea nucleu ............................................................................................................... 58
4|P agi na
În ultimii 20 de ani numărul documentelor text în format digital a crescut foarte mult
ca volum. Ca o consecință, organizarea automată și clasificarea(categorizarea) documentelor
prezintă o importanță practică deosebită. Tehnicile de categorizare a textelor sunt folosite
pentru a clasifica articole de știri, pentru a găsi informații de interes pe web și pentru a
înlesni căutările trimiterilor către alte pagini (hyperlinks). Deoarece construcția manuală a
unor astfel de clasificatori este dificilă și consumatoare de timp, se preferă clasificatori ce
învață din exemple de antrenare (clasificare supervizată).
Lucrarea de față își propune să prezinte rezolvarea problemei clasificării textelor cu
ajutorul metodelor de tip kernel. Metodele de tip kernel (kernel methods) reprezintă o clasă
de algoritmi folosiți în analiza și clasificarea informațiilor (pattern analysis). Majoritatea
algoritmilor pun accentul pe rezolvarea unor probleme de optimizare convexă și valori
proprii și sunt eficienți d.p.d.v. computațional și bine documentați d.p.d.v. statistic.
Cel mai cunoscut algoritm dintre aceștia este clasificatorul SVM (support vector
machine). Mașinile cu vectori suport, au fost folosite cu succes în problemele de regăsire a
informației, în particular pentru clasificarea textelor și fac parte din generația de clasificatori
aflați la cel mai înalt grad de dezvoltare în prezent (state-of-the-art). Ei nu sunt în mod
special mai buni decât orice alt tip de clasificatori folosiți în domeniul învățării automate
(machine learning) (exceptând poate cazurile cu puține date de antrenare), dar sunt
clasificatorii cu cel mai înalt grad de dezvoltare atins până în prezent, bucurându-se de un
uriaș interes teoretic și empiric.
1. Categorizarea Textelor
De cele mai multe ori se întâmplă ca datele ordinale și nominale să fie grupate împreună; la
fel și în cazul valorilor întregi și reale. Mai mult, există algoritmi care funcționează cu date
nominale și necesită discretizarea valorilor întregi sau reale în grupuri (ex: valori<5, valori
între 5 și 10, valori>10).
Clasificarea se referă în mod uzual la o procedură supervizată (o procedură care
clasifică noi instanțe, învățând dintr-un set de antrenare cu instanțe ce au fost corect
8|P agi na
pentru documentul format dintr-o singură propoziție Beijing aderă la Organizația Comercială
Mondială și clasa (eticheta) China.
Folosind o metodă sau un algoritm de învățare, dorim să învățăm un clasificator sau o
funcție de clasificare să asocieze documentele unor clase.
(1.1)
Acest tip de învățare poartă denumirea de învățare supervizată deoarece un
supervizor (omul care definește clasele și etichetează documentele de antrenare) acționează
ca un profesor ce dirijează procesul de învățare. Metoda de învățare supervizată se definește
prin și se notează prin . Metoda de învățare primește ca input testul de
antrenare și returnează funcția de clasificare învățață .
Fig 1.1 Clasele, setul de antrenare și setul de clasificare pentru categorizarea textelor.
După cum se poate observa din figura de mai sus, funcția de clasificare asignează
noul document clasei = China, asignare care este corectă.
Clasele au uneori structuri interesante, cum este și structura prezentată în exemplu,
de ierarhie, ce oferă un ajutor important în rezolvarea problemei de clasificare. Există câte
două instanțe pentru fiecare dintre cele trei categorii: regiuni, industrie și domenii.
Din definiția (1.1) se poate deduce că un document este membru numai al unei
singure clase. Acest model nu este cel mai fidel cu putință pentru ierarhia din Fig 1.1. De
exemplu, un document despre Olimpiada din 2008 ar trebui să fie membru în două clase: în
clasa China și în clasa sport. Acest tip de clasificare este o problemă any-of. Cazul în care, în
care un document este membru doar al unei clase este o problema de tip one-of (binară).
Din punct de vedere teoretic o clasificare binară este mai generală, deoarece un
algoritm pentru clasificarea binară poate fi folosit și pentru clasificarea any-of; trebuie doar
transformată problema de tip any-of în probleme independente de clasificare binară în
, . Reciproca nu este valabilă: un algoritm ce rezolvă o problemă
any-of nu poate fi folosit pentru o clasificare binară. Lucrarea de față se concentrează pe
rezolvarea problemei de tip binar datorită următoarelor considerente:
Scopul principal al CT este obținerea unei acurateți cât mai mari pentru datele de test
sau datele noi. Este ușor de obținut o acuratețe ridicată pentru datele de antrenare
deoarece putem sa memorăm foarte simplu etichetele. Cu toate acestea acuratețea ridicată
pentru datele de antrenare nu garantează funcționarea corectă a clasificatorului pe datele
noi dintr-o anume aplicație. Când se folosește un set de antrenare pentru a învăța un
clasificator, se face presupunerea că datele de antrenare și datele de test sunt similare sau
fac parte din aceeași distribuție de probabilitate.
[Salton, Wong și Yanng 1975], vine în ajutor ca răspuns la această întrebare. Soluția este
folosită foarte mult în domeniul regăsirii informației la atribiurea de scoruri, în probleme de
clasificare și clusterizare a documentelor.
Considerăm spațiul documentelor alcătuit din documente, fiecare document
fiind indentificat de unul sau mai mulți termeni ; fiecare termen are o pondere în funcție
de importanța sa. O reprezentare 3-dimensională a problemei este prezentată în Fig 1.2, în
care fiecare document este reprezentat de un număr maxim de 3 termeni.
(1.2)
unde N reprezintă numărul de documente din colecție. Idf-ul unui termen rar este mare iar
cel pentru un termen frecvent este mai mic.
Combinând frecvența termenilor și frecvența inversă a documentelor obținem o
măsură a ponderii termenilor ce poartă denumirea de tf-idft,d. Schema tf-idf asignează unui
termen t din documentul d o pondere dată de formula:
(1.3)
Cu alte cuvinte, tf-idft,d asignează unui termen t o pondere în documentul d care este:
1. cea mai mare când t apare de un număr mare de ori în cadrul unui număr mic de
documente;
2. mai scăzută când termenul apare de puține ori într-un document sau apare în multe
documente;
3. cea mai scăzută când termenul apare în aproape toate documentele.
= (1.4)
(1.5)
Așadar formula (1.5) poate fi privită ca produsul scalar al versiunilor normalizate de
vectori reprezentând cele două documente. Această măsură este cosinusul unghiului θ
dintre doi vectori, așa cum se poate observa în figura (1.3).
Este indicată utilizarea ei atunci când se caută documentele dintr-o colecție cele mai
similare cu un document d dat. O astfel de căutare este utilă atunci când un utilizator
identifică un anumit document și dorește să găsească alte documente similare cu acesta.
Această problemă poate fi redusă la căutarea acelui document care maximizează produsul
scalar . Pentru aceasta se calculează produsele scalare dintre și fiecare
dintre vectorii , , ... , , alegându-se în final cea mai mare valoare a
similarității.
Având în vedere cele discutate mai sus, reprezentarea unui document în problema
clasificării textelor folosește modelul spațiului vectorial. Fiecare document este reprezentat
printr-un vector având câte o componentă număr real, de obicei tf-idf, pentru fiecare
termen. Astfel, spațiul documentelor , care este în același timp și domeniul funcției , este
.
Ipoteza ce stă la baza folosirii modelului spațiului vectorial pentru problema de
clasificare a textelor poartă denumirea de ipoteză de contiguitate (contiguity hypothesis).
Documentele prezentate în Fig 1.1 formează zone contigue ce pot fi observate ca urmare a
folosirii unor tipare în distribuția cuvintelor. Spre exemplu, documentele din clasa China tind
să aibă valori mai mari pentru dimensiuni ca Beijing, chinezesc, și Mao în timp ce
documentele din clasa UK tind să aibă valori mari pentru Londra, britanic și Regină. Regiunile
de contiguitate pot fi observate în figura (1.4), unde sunt trasate și granițele care le separă și
cu ajutorul cărora putem clasifica noi documente.
Rezultatul plasării unui set de documente într-o zonă contiguă depinde de alegerile
particulare care sunt luate în seamă atunci când se are în vedere reprezentarea
documentului: tipul ponderilor, eliminarea cuvintelor de legătură. Pentru a exemplifica că
reprezentarea unui document este de o importanță vitală să considerăm cazul în care avem
două clase: texte scrise de un colectiv de autori și texte scrise de o singură persoană. Pentru
clasa textelor scrisă de un singur autor este frecventă folosirea pronumelui personal
persoana I, eu. Această infromație este însă ștearsă din reprezentare atunci când folosim o
listă a cuvintelor de legătură (stop words). Dacă reprezentarea documentelor este
nefavorabilă, ipoteza de contiguitate nu va fi satisfăcută și astfel nu este posibilă clasificarea.
Din aceleași considerente s-a decis folosirea reprezentării tf-idf normalizate după
lungime. Spre exemplu, un termen care apare de 5 ori într-un document trebuie să obțină o
pondere mai mare decât un termen care apare doar o singură dată, dar nu o pondere de 5
ori mai mare. Ca regulă generală, nu trebuie folosite în clasificare valori neponderate sau
nenormalizate.
În loc să identificăm fiecare document ca un vector cu originea în punctul 0 al
sistemului de coordonate, distanța relativă dintre vectori se păstrează atunci când
normalizăm lungimile vectorilor la valoarea 1 și utilizăm proiecția vectorilor pe suprafața
sferei unitate. În acest caz fiecare document poate fi reprezentat ca un punct a cărui poziție
este specificată de zona în care vectorul corespunzător atinge învelișul sferei. Două
documente conținând termeni similari sunt reprezentate prin puncte care sunt foarte
aproape unul de altul în spațiu. În general, distanța dintre două puncte în spațiu este invers
corelată cu similaritatea dintre vectorii corespondenți.
Un număr mare de clasificatori de text pot fi priviți ca un tip de clasificatori liniari –
clasificatori ce clasifică pe baza unei combinații liniare de caracteristici. Acești clasificatori
împart spațiul caracteristicilor în zone separabile de hiperplane de decizie liniare. Mai există
și un al doilea tip de clasificatori, neliniari, care sunt mai complecși dar care nu obțin
întotdeauna rezultate mai bune ca cei liniari. Lucrarea de față se va concentra în capitolele
următoare pe descrierea unui anumit tip de clasificator, SVM (support vector machine), atât
din perspectiva liniară cât și din cea neliniară.
care vor fi analizate în capitolul următor. Clasificatorul neliniar este prezentat în secțiunea
(2.5).
Metoda vectorilor suport a fost introdusă în categorizarea textelor de Joachims
[1998, 1999] și folosită ulterior de Drucker et al.[1999], Dumais et al.[1998+, Dumais și
Chen[2000], Klinkenberg și Joachims[2000], Taira și Haruno[1999], Yang și Liu[1999] etc. Tot
el [Joachims 1998], a subliniat cele două mari avantaje ale clasificatorilor SVM în
categorizarea textelor:
de cele mai multe ori selecția termenilor nu este necesară, datorită faptului că acești
clasificatori nu sunt afectați de supra-antenare (overfitting) și scalează până la
dimensiuni foarte mari;
nu este necesar niciun efort din partea omului sau calculatorului pentru ajustarea
parametrilor unui set de testare deoarece există o alegere implicită a valorilor
parametrilor, motivată teoretic și care conduce la cele mai bune rezultate.
Mașinile cu vectori suport nu sunt în mod special mai buni decât orice alt tip de
metode din machine learning (exceptând poate cazurile cu puține date de antrenare), dar
sunt clasificatorii cu cel mai înalt grad de dezvoltare atins până în prezent, bucurându-se de
un uriaș interes teoretic și empiric.
Fig 2.1 Un clasificator liniar ce separă două clase de puncte în plan (2D).
b b) (2.2)
unde indexează setul de puncte greșit clasificate. Valoarea este pozitivă și proporțională
cu distanța punctelor greșit clasificate la granița de decizie Gradientul
(presupunând fixat) este dat de:
(2.3)
(2.4)
(2.5)
Am notat cu rata de învățare, care în acest caz poate fi luată 1 fără a pierde din
generalitate. Dacă cele două clase sunt liniar separabile, se poate arăta că algoritmul
converge într-un număr finit de pași și găsește hiperplanul de separație.
Există însă un număr de probleme ale acestui algoritm ce au fost sumarizate de Ripley
[Ripley 1996]:
atunci când datele sunt separabile, există mai multe soluții, cea găsită fiind
influențață de valorile de început ale algoritmului(Fig 2.2);
Fig 2.2 Există un număr infinit de hiperplane ce separă două clase liniar separabile.
numărul “finit” de pași poate fi foarte mare. Cu cât este mai mic intervalul cu atât
este mai mare timpul pentru a-l găsi;
atunci când datele nu sunt separabile, algoritmul nu va converge ci va intra în cicluri.
Acestea pot fi foarte lungi și greu de detectat.
A doua problemă poate fi adesea eliminată prin căutarea unui hiperplan, nu în spațiul
original, ci într-un spațiu extins, obținut prin crearea mai multor transformări de funcții
elementare a variabilelor inițiale. O separare perfectă nu poate fi întotdeauna obținută: spre
exemplu, în cazul în care observațiile celor două clase au în comun aceleași date de intrare.
Acest lucru poate fi chiar nedorit, deoarece modelul astfel rezultat va fi supra-antrenat
(overfit) și nu va generaliza suficient de bine.
O soluție elegentă pentru prima problemă este adăugarea unor constrângeri
suplimentare pentru hiperplanul de separație.
Dacă un set de date ca cel din Fig 2.1 este liniar separabil, atunci există o infinitate de
hiperplanuri care clasifică în mod corect toate punctele. Se naște acum întrebarea firească
pe care dintre aceste hiperplanuri să îl alegem, asigurându-ne că nu numai datele de
antrenare, ci și viitoarele exemple, nevăzute de clasificator la antrenare, vor fi etichetate
corect.
Intuitiv, o graniță de separare trasată în mijlocul vidului dintre exemplele celor două
clase pare mai bună decât una care se apropie foarte mult de exemplele uneia dintre cele
două clase. Teoria învățării statistice [Vapnik 1999] sugerează că hiperplanurile de clasificare
vor obține rezultate mai bune atunci când vor separa datele atât corect cât și cu o margine
(margin) întinsă. Aici marginea este definită ca distanța de la cele mai apropiate exemple la
granița de decizie (Fig 2.3).
Fig 2.3 Hiperplanul optim de separabilitate este acela care separă datele cu o margine
maximă.
27 | P a g i n a
Fig 2.4 O intuiție pentru clasificarea cu margine întinsă. Folosind acest tip de clasificare se
reduce capacitatea modelului: gama de unghiuri în care poate fi plasată suprafața de decizie
lățită este mai mică decât în cazul unui hiperplan de decizie (Fig 2.2).
suport (support vectors) (într-un spațiu vectorial un punct poate fi privit ca un vector între
origine și acel punct). În figura (2.3) pot fi observați și acești vectori suport. Alte puncte nu
joacă niciun rol în determinarea suprafeței de decizie alese.
Fig 2.5 Reprezentarea a trei puncte din setul de antenare (A, B, C).
i i (2.12)
Marginea geometrică a clasificatorului este lățimea maximă a benzii care poate fi
desenată pentru a separa vectorii suport ai celor două clase. Aceasta este de două ori
marginea geometrică definită de ecuația (2.8) sau, altfel spus, lățimea maximă a unuia dintre
separatorii lățiți din figura (2.4).
(2.13)
(2.14)
(2.15)
Indicele ne spune că este vorba despre problema primală. Se alege un arbitrar. Dacă
încalcă constrângerile de integritate (fie sau pentru un ) atunci
trebuie verificat ca:
putem observa că este aceeași problemă și are aceleași soluții cu problema primală originală.
Prin definiție, valoarea optimă a funcției obiectiv se notează .
Să privim acum o problemă diferită. Se definește:
Indicele ne spune că este vorba despre problema duală. Dacă în cazul definiției lui
optimizarea (maximizarea) se făcea în raport cu și acum minimizarea se face în raport cu
w. Putem acum formula problema de optimizare duală:
Aceasta este la fel cu problema primală prezentată mai sus, exceptând schimbarea ordinii lui
“max” si ”min”. Se definește valoarea optimă a funcției obiectiv a problemei duale
.
Cum sunt relaționate cele două probleme? Se poate arăta ușor că:
În anumite condiții . Caz în care putem rezolva problema duală în locul celei primale.
Să vedem în continuare care sunt aceste condiții.
Presupunem că și sunt convexe iar constrângerile sunt afine. Presupunem de
asemenea condițiile strict fezabile (există anumiți pentru care pentru toți ).
În condițiile în care presupunerile de mai sus sunt îndeplinite trebuie să existe
astfel încât să fie soluția problemei primale, soluțiile problemei duale și
. Mai mult, satisfac condițiile Karush-Kuhn-Tucker
(KKT):
Având în vedere cele discutate mai sus, putem trece la rezolvarea problemei de
optimizare definită de ecuația (2.15):
Există câte o astfel de constrângere pentru fiecare exemplu din setul de antrenare. Trebuie
remarcat din condiția de complementaritate duală a KKT (
că doar pentru exemplele de antrenare care au
marginea funcțională egală cu 1 (cele pentru care ecuația este satisfăcută). Se
consideră figura de mai jos în care este marcat hiperplanul maxim de separație cu o linie
dreaptă.
Punctele care au cea mai mică margine sunt exact punctele aflate cel mai aproape de
suprafața de decizie; în figură sunt prezentate trei puncte (unul negativ și două pozitive) care
se găsesc pe liniile punctate paralele cu hiperplanul. Astfel, numai trei -uri, cele
corespunzătoare acestor trei exemple de antrenare, vor fi diferite de zero în soluția optimă a
problemei de optimizare. Aceste trei puncte se numesc vectori suport (support vectors).
Mergând mai departe, pe măsură ce dezvoltăm problema duală, vom încerca să
construim algoritmul bazându-ne pe produsul scalar xi xj al punctelor din spațiul
caracteristicilor de intrare. Pe baza acestui produs scalar vom putea aplica, mai târziu,
artificiul kernel (kernel trick).
Construim acum lagrangian-ul pentru problema noastră de optimizare:
b T
xi b (2.16)
i
De observat că avem numai multiplicatori Lagrange , nu și deoarece constrângerile sunt
inegalități.
Pentru a găsi forma duală a problemei , trebuie mai întâi să minimizăm w b
prin prisma lui w și b (cu fixat), lucrul pe care îl vom face egalând cu zero derivatele lui în
raport cu w și b:
(2.17)
(2.18)
T
i xi b
Se poate observa că într-adevăr, condițiile necesare pentru ca sunt
satisfăcute la fel și condițiile KKT. Astfel putem rezolva problema duală în locul celei primale.
Problema duală este o problemă de maximizare în care parametrii sunt . În momentul în
care am rezolvat această problemă (am aflat parametrii ), putem merge înapoi în ecuația
(2.17) și calcula vectorul optim al ponderilor ca o funcție de parametrii . Aflând și
considerând condiția de complementaritate duală a KKT, putem calcula imediat valoarea
optimă pentru termenul liber :
T (2.19)
b i xi xi
Să mai considerăm încă odată ecuația (2.17), care ne dă valoarea optimă a lui în
funcție de valoarea optimă a lui . Să presupunem că am ajustat parametrii modelului unui
set de antrenare și acum dorim să facem o predicție pentru un nou punct . Pentru aceasta
va trebui să calculăm valoarea , prezicerea fiind dacă și numai dacă valoarea
este pozitivă. Dar folosind ecuația (2.17) această valoare se poate rescrie:
(2.20)
Astfel, odată calculați parametrii , pentru a face o predicție, trebuie calculată o cantitate
ce depinde numai de produsul scalar dintre și punctele din setul de antrenare. Mai mult,
am văzut mai devreme că parametrii sunt toți egali cu zero cu excepția celor pentru
vectorii suport. De aceea mulți termeni ai sumei vor fi zero și vor trebui calculate numai
produsele scalare dintre și vectorii suport. Ținând cont de ecuația (2.20) și întorcându-ne la
definiția (2.6), putem face o predicție folosind următoarea funcție de clasificare:
(2.21)
Există două moduri în care putem modifica constrângerile din ecuația (2.13):
(2.22)
Sau
(2.23)
ă. Cele două alegeri conduc la soluții diferite. Prima alegere
pare cea naturală, deoarece măsoară suprapunerea în distanța reală până la margine; a doua
alegere măsoară suprapunerea în distanța relativă și care se modifică odată cu lățimea
marginii geometrice . Este aleasă cea de-a doua variantă deoarece este o problemă de
optimizare convexă.
Ideea care stă la baza formulării este următoarea: valoarea din constrângerea
y i wT x i b reprezintă o cantitate proporțională cu predicția f(xi ) = wT xi b
care se găsește pe partea greșită a marginii geometrice. Astfel, prin mărginirea sumei
, am mărginit cantitatea totală proporțională cu care predicțiile se găsesc de partea
greșită a marginii. O clasificare greșită apare atunci când . Astfel mărginind cu
o valoare K, mărginim de fapt numărul total de clasificări greșite în antrenare cu valoarea K.
Aplicând cele discutate în secțiunea (2.3.2), putem înlocui și putem formula
w
problema de optimizare convexă pentru clasificatorul cu margine flexibilă (soft-margin):
(2.24)
b
(2.25)
T
i xi b
(2.26)
(2.27)
(2.28)
b (2.29)
Putem observa că în problema duală nu apar nici variabilele slack , nici multiplicatorii
Lagrange. Singura valoare rămasă este constanta ce mărginește valoarea multiplicatorilor
Lagrange pentru punctele ce sunt vectori suport. Maximizăm w b cu
constrângerile și yi = 0. În plus față de condițiile (2.26) – (2.28) condițiile
KKT mai includ:
T (2.30)
i xi b
(2.31)
T
i xi b (2.32)
Ecuațiile (2.26) – (2.32) caracterizează în mod unic soluția problemei primale și duale. După
determinarea parametrilor , din ecuația (2.26) se obține soluția optimă a vectorului
ponderilor :
(2.33)
Parametrii nenuli transformă inegalitatea (2.32) într-o egalitate pentru a putea satisface
ecuația (2.30). Ei se numesc vectori suport (support vectors) din moment ce este format
din termenii nenuli ai sumei. Dintre aceste puncte suport, unele se vor afla la limita marginii
de decizie ( ) și vor fi caracterizate prin dacă ținem seama de ecuațiile
(2.31) și (2.28); celelalte ( ) au (rezultă din (2.31) și (2.28)). Din ecuația (2.30)
putem observa că oricare dintre aceste puncte marginale ( ) pot fi folosite
pentru a calcula valoarea lui :
T (2.34)
i xi
Pentru stabilitate numerică insă, se folosește o mediere a tuturor soluțiilor. În mod normal,
vectorii suport reprezintă o proporție foarte mică din datele de antrenare. Cu toate acestea
dacă problema nu este separabilă sau separabilă printr-o margine foarte mică, atunci fiecare
punct greșit clasificat sau aflat în interiorul suprafeței de decizie va avea un parametru
nenul. În cazul în care acest set de puncte se mărește, va trebui să luăm în calcul mărirea
timpului de testare pentru cazul separabilității neliniare, caz ce va fi discutat în secțiunea
următoare.
După ce am calculat și b funcția de decizie a clasificatorului SVM cu margini
flexibile (soft-margin), înlocuiește aceste valori în ecuația (2.6):
T (2.35)
Din ce am văzut până acum, cazul seturilor de date liniar separabile este rezolvat cu o
acuratețe foarte mare (cu câteva mici excepții în ceea ce privește punctele zgomot). Ce
trebuie făcut însă în cazul în care nu se poate efectua o clasificare liniară a datelor (datele nu
sunt liniar separabile)? Să privim pentru aceasta cazul 1-dimensional din figura (2.9).
Fig 2.9 Proiecția unor date, care nu sunt liniar separabile, într-un spațiu dimensional superior
care le poate face liniar separabile.
45 | P a g i n a
Se poate observa că setul de date, cel mai de sus din figură, este clasificat cu ajutorul
unui clasificator liniar, în schimb setul din mijloc nu este. Pentru aceasta trebuie să poată fi
ales un interval. O soluție pentru a rezolva această problemă este să reprezentăm setul de
date într-un spațiu dimensional superior în care putem folosi un clasificator liniar. Spre
exemplificare, partea de jos a figurii ne prezintă un clasificator liniar ce poate clasifica cu
ușurință datele, dacă folosim o funcție cuadrică pentru reprezentarea datelor în spațiul 2-
dimensional. Ideea generală este de a reprezenta spațiul de caracteristici original într-un
spațiu de caracteristici superior ca dimensiune, unde setul de antrenare este liniar separabil.
Această transformare dorim să se efectueze într-un mod care va păstra măsurile de
relaționare relevante dintre date, pentru ca performanțele clasificatorului rezultat să fie la
fel de bune.
Clasificatorii SVM, împreună cu un alt tip de clasificatori liniari, oferă o modalitate
ușoară și eficientă de a realiza reprezentarea într-un spațiu superior dimensional, numită
artificiul nucleu (kernel trick)[Aizerman et al. 1964]. Nu este în esență nici un artificiu ci doar
o valorificare a observațiilor matematice făcute în paragraful anterior. Clasificatorul SVM
liniar se bazează pe produsul scalar dintre doi vectori. Fie xi xj xj și ecuația (2.21) a
clasificatorului se rescrie în felul următor:
(2.36)
Fiecare punct este reprezentat într-un spațiu superior ca dimensiune cu ajutorul unei
transformări . Astfel, produsul scalar devine xi xj . Dacă se constată că
acest produs scalar (care este un număr real) poate fi calculat simplu și eficient cu ajutorul
datelor inițiale, atunci nu va mai fi necesară transformarea . De aceea, putem
calcula valoarea xi xj xi xj și apoi o putem folosi în ecuația (2.36). Pentru a se
ajunge la forma ecuației (2.36), singurul lucru care trebuie modificat în cazul clasificatorilor
SVM prezentați în ultimele două subcapitole, este înlocuirea lui cu . Această abordare,
de a crea un clasificator neliniar aplicând artificiul nucleu în construcția hiperplanului cu
margine maximală, a fost sugerată de Boser, Guyon și Vapnik în 1992. Calculele ce vor urma,
vor face o referire directă la subcapitolul clasificatorului SVM cu margine inflexibilă
[Secțiunea 2.3], scoțând în evidență modificările aferente ale ecuațiilor.
T
i xi b
T
b i xi xi
O funcție nucleu (kernel function) este o funcție a cărei valoare poate înlocui
valoarea unui produs scalar dintr-un spațiu dimensional superior. În continuare, se pune
întrebarea ce funcții pot fi funcții nucleu valide? Funcțiile nucleu sunt definite mai precis ca
kernel-uri Mercer (Mercer’s kernel), deoarece trebuie să îndeplinească condiția lui Mercer:
pentru orice funcție pentru care este finită, avem:
(2.37)
O funcție nucleu trebuie să fie continuă, simetrică și să aibe o matrice Gram (semi)pozitiv
definită. În aceste condiții, există o reprezentare kernel într-un spațiu Hilbert (un spațiu
vectorial închis la produsul scalar), astfel încât produsul scalar din acest spațiu are aceeași
valoare ca funcția . Dacă o funcție nucleu nu satisface condiția lui Mercer, atunci problema
cuadrică de optimizare nu are soluții. Cele două familii de funcții nucleu prezentate în
continuare sunt folosite în proporție de 90% în literatura de specialitate. Ele reprezintă
funcții nucleu valide (îndeplinesc condițiile mai sus amintite).
Prima dintre cele două familii sunt nucleele polinomiale (polynomial kernels). Ele au
următoarea formă:
(2.38)
Pentru avem cazul nucleului liniar care corespunde produsului scalar clasic (constanta
modifică doar originea). Cazul este nucleul cuadric care este foarte folosit. Exemplul
prezentat în continuare va ilustra acest caz.
(2.39)
O funcție rbf este echivalentă cu transformarea datelor într-un spațiu Hilbert infinit
dimensional și de aceea nu se poate reprezenta print-un exemplu concret ca în cazul
nucleului cuadric. Acest tip de funcții ne permit să avem caracteristici care scot în evidență
cercuri (hipersfere), cu toate că granițele de decizie devin din ce în ce mai complexe pe
măsură ce adăugam mai multe caracteristici (vezi figura 2.10).
Fig 2.10 Folosirea unui nucleu gaussian pentru determinarea graniței de decizie și a
vectorilor suport.
În afara acestor două familii de funcții, au fost depuse eforturi pentru găsirea altor
tipuri de nuclee, dintre care amintim unul foarte interesant pentru aplicațiile text, numit
nucleu lanț (string kernel). Nucleele string permit lucrul cu secvențe de caractere din
interiorul unui termen/cuvânt.
Pentru a defini un astfel de nucleu avem nevoie de următoarele două definiții:
este o secvență finită de simboluri din , inclusiv secvența vidă notată cu ; singura secvență
de lungime . Se notează cu , mulțimea tuturor șirurilor de caractere de lungime și prin
mulțimea tuturor șirurilor de caractere
Dacă , spunem că t este un prefix al lui , iar dacă , se numește sufix. Pentru
indicii , șirul este subșirul al lui . Subșirurile de lungime se
mai numesc și -grame (k-grams).
Exemplul 2.4
Spre exemplu, cuvintele din această propoziție sunt toate șiruri ale alfabetului
. Considerăm șirul de caractere . Avem, ,
este un prefix al lui , este un sufix al lui și împreună cu
sunt toate trei subșiruri ale lui . Șirul este o subsecvență de lungime 4
și a cărei lungime în este este .
În general, nucleele lanț pot fi definite în mod explicit printr-o transformare explicită
din spațiul tuturor secvențelor finite peste un alfabet , într-un spațiu vectorial .
Coordonatele lui sunt indexate după o mulțime de șiruri de caractere peste alfabetul .
În unele cazuri, va fi mulțimea de șiruri de caractere de lungime ceea ce va conduce la
un spațiu de dimensiune iar în altele spațiul vectorial va fi infinit indexat de . Funcția
de transformare este notată cu :
Pentru fiecare spațiu asociat, există mai multe transformări care pot fi alese. O
posibilitate pentru alegerea valorii lui este să numărăm de câte ori apare ca un șir
(continuu) de caractere în sau de câte ori apare ca o subsecvență (necontinuă).
Cea mai firească metodă de a compara două șiruri de caractere este de a număra
câte subșiruri de lungime au în comun. Se definește spectrul (spectrum) de ordin al unei
secvențe prin histograma frecvențelor tuturor șirurilor (continue) de caractere de lungime
. Informații importante referitoare la similaritatea a două șiruri de caractere, pot fi obținute
prin compararea spectrului de ordin , în cazul în care vecinătatea caracterelor joacă un rol
cheie. Un nucleu poate fi definit ca fiind produsul scalar dintre două spectruri de ordin .
cu toate celelalte dimensiuni indexate după alte șiruri de lungime doi, având valoarea ,
astfel încât matricea nucleu rezultată are următoarea formă:
în operații.
(LDA), analiza în componente principale (PCA), analiza canonică de corelare, regresia Ridge și
multe altele. Algoritmul de optimizare secvențială minimală este descris în secțiunea (3.3.3).
Datorită culturii particulare a comunității științifice care a început să dezvolte această
abordare începând de la jumătatea anilor 1990, mulți algoritmi kernel pun accentul pe
rezolvarea unor probleme de optimizare convexă și valori proprii. Algoritmii sunt eficienți
d.p.d.v. computațional și bine documentați d.p.d.v. statistic.
datele sunt scufundate într-un spațiu vectorial numit spațiul caracteristicilor (feature
space);
sunt căutate relații liniare printre imaginile datelor din spațiul caracteristicilor;
algoritmii sunt implementați de o asemenea manieră încât coordonatele punctelor
scufundate nu sunt necesare, ci doar produselor scalare dintre ele;
perechile produselor scalare pot fi calculate eficient direct din datele originale, cu
ajutorul unei funcții nucleu.
Fig 3.1 Funcția scufundă datele într-un spațiu asociat unde relațiile neliniare apar ca fiind
liniare. Funcția nucleu calculează produsele scalare în spațiul asociat direct din datele de
intrare.
Datele sunt procesate folosind o funcție nucleu (kernel function) pentru a obține matricea
nucleu (kernel matrix). Aceasta este la rândul ei prelucrată de un algoritm de analiză și
clasificare a informațiilor pentru a se obține o funcție de clasificare (pattern function).
Funcția astfel rezultată va fi folosită pentru a analiza exemple noi de date.
58 | P a g i n a
Din punct de vedere computațional metoda kernel are două proprietăți importante.
În primul rând ea permite accesul în spații vectoriale de dimensiuni foarte mari cu un cost
computațional scăzut atât din punct de vedere al spațiului cât și al timpului și în al doilea
rând, în ciuda complexității funcțiilor de caracteristici rezultate, majoritatea algoritmilor
rezolvă probleme de optimizare convexă care nu suferă de minim local.
Subcapitolul va analiza în detaliu cele 3 componente modulare ale metodei kernel:
matricea nucleu, funcțiile nucleu și algoritmul de optimizare secvențială minimă (SMO) ce
oferă o metodă eficientă de rezolvare a problemei duale prezentate în capitolul anterior.
xi x xi x
În acest caz matricea poartă și denumirea de matrice nucleu (kernel matrix). Notația
standard pentru afișarea matricelor nucleu este următoarea:
unde simbolul K din colțul stânga sus indică faptul că tabelul reprezeintă o matrice nucleu.
Această matrice este simetrică și are transpusa egală cu ea însăși. În plus, ea conține toate
informațiile necesare pentru a calcula distanța dintre perechile aparținând setului de date.
Există însă și informații care se pierd comparativ cu setul inițial de vectori. De exemplu,
matricea nu conține informația legată de orientarea setului de date inițial în raport cu
originea. Mai important este că această reprezentare nu conține nicio informație referitoare
la alinierea punctelor în raport cu axele de coordonate. Aceasta se datorează faptului că
orice rotație a sistemului de coordonate nu schimbă matricea produselor scalare, deoarece
ea este invariantă la astfel de transformări.
Dacă privim în urmă la secțiunea (2.5) din capitolul precedent și observăm ecuația
(2.36) putem constata că singurele informații primite de clasificatorul SVM ca date de intrare
sunt matricea Gram sau matricea nucleu și valorile de ieșire asociate. Cu alte cuvinte, toate
informațiile pe care le poate extrage un algoritm de analiză și clasificare a informațiilor
despre datele de antrenare și spațiul asociat în care acestea vor fi scufundate, sunt conținute
de matricea nucleu și de informațiile de etichetare asociate.
În acest sens matricea nucleu este privită ca punctul de gâtuire a informației
(information bottleneck) ce are sarcina de a transmite suficiente informații algoritmului
pentru ca acesta să își poată îndeplini sarcinile. Acest mod de a privi matricea, face din ea
tipul de date central pentru algoritmii ce se folosesc de metoda kernel. Cu alte cuvinte,
matricea nucleu acționează ca o interfață între datele de intrare și modulele de învățare.
Observația 3.1
În cazul implementării trebuie luată o măsură de precauție referitoare la constrîngerile de
memorie. Astfel, pentru seturi mari de date, întreaga matrice nucleu nu va putea fi reținută
în memorie. În acest caz funcția nucleu va trebui recalculată pe măsură ce sunt adăugate noi
intrări.
Observația 3.2
În cazul învățării supervizate ce rezolvă problema de clasificare binară cu etichetele
, este folosită matricea numită Hesian (Hessian).
Propoziția 3.4
Matricele Gram și matricele nucleu sunt semipozitiv definite.
Propoziția 3.5
O matrice este semipozitiv definită dacă și numai dacă pentru o matrice B cu
valori reale.
reale, caracterizarea aplicându-se indiferent de tipul datelor, fie ele vectori cu componente
reale, structuri discrete, imagini, serii temporale ș.a.m.d. Folosind proprietatea matricei
nucleu de a fi semipozitiv definită, funcția nucleu calculează produsele scalare proiectând
perechi de puncte de intrare într-un spațiu asociat. Figura 3.3 ilustreză acest lucru printr-o
scufundare, transformând obiectele în vectori cu ajutorul funcției .
Fig 3.3 Folosirea funcțiilor nucleu permite aplicarea algoritmilor și pe alte tipuri de date
decât cele vectoriale.
Așa cum am putut vedea până în acest moment, folosirea funcțiilor nucleu constituie
o abordare remarcabilă în identificarea relațiilor neliniare, prin aplicarea unor algoritmi
liniari binecunoscuți într-un spațiu vectorial adecvat. Această abordare separă construcția
algoritmului de specificarea spațiului determinat de funcția nucleu. Indiferent de algoritmul
de analiză și clasificare a informațiilor folosit, proprietățiile teoretice ale unei funcții nucleu
rămân aceleași.
O primă modalitate de a verifica că o funcție oarecare este și o funcție nucleu, o
constituie construirea spațiului asociat. Inițial se aplică transformarea după care se
calculează produsul scalar dintre două imagini. Această tehnică a fost folosită în această
lucrare atunci când s-a demonstrat că nucleul polinomial 2-dimensional este kernel.
Cea de-a doua modalitate se bazează pe definiția matricelor semipozitiv definite. Așa
cum se poate observa mai sus, matricea nucleu formată prin evaluarea unei funcții nucleu
pentru fiecare pereche formată din datele de intrare, este semipozitiv definită. Aceasta
constituie baza pentru următoarea definiție.
Spațiul asociat unei funcții nucleu ce satisface proprietatea de semipozitiv definire poartă
denumirea de spațiu Hilbert reprodus de funcția nucleu (reproducing kernel Hilbert space -
RKHS).
Caracterizările făcute anterior atât funcțiilor cît și matricelor nucleu, nu sunt utile
doar pentru a decide dacă un candidat poate reprezenta un nucleu valid. Una din pricipalele
consecințe este că pot fi folosite pentru a argumenta o serie de reguli ce permit manipularea
și combinarea unor nucleu-uri simple cu scopul de a obține altele mai complexe și mai
folositoare. Cu alte cuvinte, aceste operații aplicate pe unul sau multe nuclee, păstrează
proprietatea de semipozitiv definire a acestora. Astfel, funcțiile și matricele nucleu sunt
închise la astfel de operații. Atîta timp cît este garantat că rezultatul unei operații oarecare
este o matrice simetrică și semipozitiv definită, datele pot fi scufundate într-un spațiu
asociat, chiar dacă spațiul Hilbert reprodus de funcția nucleu este transformat prin aplicarea
respectivei operații.
(3.1)
(3.2)
(3.3)
Fig 3.4
Din constrângerile (3.2), rezultă că și trebuie să se găsească în pătratul
prezentat în figură. În plus, mai este figurată și dreapta pe care și
trebuie să se găsească de asemenea. Se observă în plus că , în caz contrar cele
două condiții descrise mai sus nu pot fi îndeplinite simultan. Pentru exemplul curent ,
dar această valoare depinde de forma pe care dreapta o poate lua. În
general va exista o limită inferioară și una superioară , între care va putea lua valori
astfel încât și să se găsească în interiorul pătratului .
Folosind ecuația (3.4), se poate scrie ca o funcție de :
valori ale lui și . Maximizarea funcției cuadrice se poate face ignorând constrângerile
(3.2) (sau echivalent, constrângerea ) și apoi egalând derivatele funcției cu zero.
Valoarea apărută în urma rezolvării acestor ecuații va fi notată cu . Această
valoare poate fi acum mărginită în intervalul după cum urmează:
Așa cum am putut vedea din teorema lui Osuna, dacă la fiecare pas unul din cei doi
multiplicatori Lagrange, aleși să fie modificați de algoritmul SMO, nu satisface condițiile KKT,
convergența algoritmului este garantată. Pentru a accelera această convergență, algoritmul
SMO folosește două euristici de alegere pentru cei doi multiplicatori Lagrange: o euristică
pentru primul multiplicator Lagrange și alta pentru cel de-al doilea.
Prima abordare se concentrează pe găsirea exemplelor care cel mai probabil nu
satisfac condițiile KKT (multiplicatorii Lagrange care nu sunt sau ). Un astfel de exemplu
găsit este eligibil pentru optimizare. Pe măsură ce algoritmul SMO progresează, exemplele
aflate la limită (cu multiplicatorii Lagrange sau ) vor rămâne cel mai probabil la limită, pe
când celelalte exemple se vor muta pe măsură ce alte exemple sunt optimizate. Algoritmul
SMO se va concentra pe subsetul exemplelor care nu satisfac condițiile KKT până când acesta
va deveni consistent; apoi algoritmul va scana tot setul de date pentru a vedea care dintre
exemplele aflate la margine nu mai satisfac condițiile KKT, fapt datorat optimizărilor
efectuate. Odată ce primul multiplicator Lagrange a fost selectat, algoritmul SMO alege cel
de-al doilea multiplicator Lagrange astfel încât să maximizeze progresul optimizării comune.
În anumite circumstanțe, alegerea celui de-al doilea multiplicator Lagrange nu poate
realiza un progres pentru procesul de optimizare. În acest caz, algoritmul SMO folosește o
ierarhie de euristici pentru alegerea celui de-al doilea multiplicator, până când îi găsește
perechea cu care poate realiza un progres. Ierarhia constă din următoarii pași: se încearcă
mai întâi prima abordare descrisă anterior și în cazul în care nu se poate constata un progres,
algoritmul SMO caută prin exemplele care nu satisfac condițiile KKT, încercând să găsească
un al doilea multiplicator Lagrange cu ajutorul căruia se poate realiza un progres. Dacă nu
este identificat niciun astfel de exemplu, algoritmul SMO începe să caute un exemplu care
realizează un progres, în tot setul de antrenare. Ambele căutări descrise, pornesc de la poziții
aleatoare pentru a nu conduce algoritmul SMO către exemplele de la începutul setului de
antrenare. În cazuri limită când nici un astfel de exemplu nu poate fi găsit, algoritmul SMO
alege alt exemplu în locul primului multiplicator Lagrange ales.
Algoritmul SMO a fost testat atât pe aplicații din lumea reală cât și pe probleme
generate artificial. Printre avantajele care au fost constatate se numără: performanța
algoritmului SMO pentru clasificatorii SVM liniari, performanța algoritmului SMO pentru
clasificatori SVM atât liniari cât și neliniari, în cazul când datele de intrare sunt puține,
performanța algoritmului SMO datorată scalabilității sale pentru problemele mari.
Experimental s-a constat că timpul de antrenare pentru algoritmul SMO variază între ~N și
~N2.2. Datorită ușurintei utilizării și scalabilității setului de antrenare, algoritmul SMO
reprezintă algoritmul standard de învățare al clasificatorului SVM. Algoritmului i-au fost
aduse de-a lungul timpului importante modificări și îmbunătățiri, dezvoltându-se chiar și alți
algoritmi bazați pe structura sa, dintre care cele mai recent folosite în bibliotecile open-
source fiind cele dezvoltate de Fan et al. 2005 și Glasmachers et al. 2006.
În acest capitol voi descrie experimentele efectuate de mine în vederea obținerii unor
rezultate în ceea ce privește clasificatorul SVM. Secțiunea 4.1 oferă o viziune de ansamblu
asupra colecției de date Reuters-21578, folosită în experimente. Aceste documente au fost
prelucrate astfel încât să imi permită utilizarea bibliotecii WEKA [secțiunea 4.2], un
instrument foarte folosit în domeniul învățării automate. Formatul nativ pentru această
librărie (ARFF) este descris în secțiunea 4.2.1. În afară de algoritmul standard SMO pentru
vectori suport, biblioteca WEKA are implementată o facilitate ce îi permite să lucreze și cu
alte biblioteci. O astfel de bibliotecă binecunoscută în studiul vectorilor suport este LIBSVM
[secțiunea 4.2.2]. În continuare se trece la prezentarea rezultatelor obținute pentru cele trei
tipuri de nuclee (liniar, polinomial și gaussian), nu înainte de a se face o descriere
amănunțită a operațiilor de selectare și de prelucrare a datelor [Secțiunea 4.3]. Concluziile și
observațiile experimentelor sunt prezentate în secțiunea 4.4.
4.1 Corpusul Reuters-21578
Cele 21578 de documente aparțin unui număr de 135 categorii valide, iar un
document poate aparține niciuneia sau mai multor astfel de categorii. Cel mai frecvent se
întâlnesc documente ce sunt atribuite unei singure clase.
Pentru testarea unei metode de categorizare a textelor, este important ca
dezvoltarea sistemului să nu fie pe nedrept influențată de cunoștiințele despre natura
datelor pe care se testează, altfel performanțele obținute vor fi mai mari decât în realitate. O
modalitate de a depăși acest inconvenient este prin împărțirea setului de date în două
subseturi: un set de antrenare (training set) și un set de test (test set).
Eficacitatea rezultatelor poate fi comparată doar pentru studiile care folosesc
aceleași set de antrenare și același set de test (sau care folosesc validarea în cruce (cross-
validation)). O problemă a colecției Reuters-22173, cauzată de ambiguitatea formatării și
În lucrările recente [Joachims 1998; Dumais et al. 1998; Shapire et al. 1998; Weiss et
al. 1999], a fost folosit în mod invariabil subsetul de date ModApte care include numai
documente vizualizate și evaluate de o persoană care le-a indexat. Repartizarea
documentelor pe clase este neuniformă, de aceea unele lucrări evaluează sistemele de
clasificare din perspectiva primelor zece categorii în ordinea descrescătoare a numărului de
documente. Aceste categorii pot fi vizualizate în tabelul 4.2.
2
Dispobibilă la adresa http://www.cs.waikato.ac.nz/ml/weka
3
Disponibilă la adresa http://weka.wikispaces.com/
73 | P a g i n a
este că biblioteca este distribuită gratis (open-source project). Alte motive ar mai fi:
portabilitatea folosirii pe diferite mașini de lucru datorat implementării mașinii virtuale Java
(JVM), interfața grafică pentru utilizatori în special secțiunea “Explorer” ce a permis acestora
să pună în practică mult mai ușor algorimii de învățare automată, extensibilitatea ce permite
crearea de noi algoritmi și compararea lor cu cei existenți, documentația dezvoltată online
ca parte a WEKA Wiki în combinație cu informațiile din lista de email-uri wekalist a condus la
crearea unei adevărate comunități de dezvoltatori WEKA.
Un fișier în format ARFF (“Attribute-Relation File Format”) este un fișier text ASCII
care descrie o listă de instanțe (instances) ce au în comun un set de atribute (attributes).
Fișierele ARFF au două secțiuni distincte: informațiile din zona de declarări (header)
sunt urmate de secțiunea propriu-zisă de date (data).
Zona de declarări
Această zonă conține numele relației (relation), o listă de atribute (coloanele datelor)
împreună cu tipurile lor.
Declararea relației(@relation)
Numele relației este declarat pe prima linie a fișierului ARFF:
Declararea atributelor(@attribute)
Declararea atributelor se face prin înșiruirea secvențelor @attribute. Fiecare atribut
din setul de date are propria declarare @attribute, ce definește în mod unic numele
atributului și tipul de date asociat. Ordinea în care atributele sunt declarate
corespunde cu poziția de pe coloană din secțiunea de date a fișierului. Spre exemplu,
dacă un atribut este declarat al 3-lea, atunci WEKA se așteaptă ca valorile atributului
să se găsească pe a 3-a coloană delimitată de virgule (,). Formatul instrucțiunii
@attribute este următorul:
Zona de date
Această zonă conține o linie prin care se specifică că urmează să fie declarate date împreună
cu instanțele afișate pe mai multe linii.
Declararea datelor(@data)
Declararea datelor se face cu ajutorul sintagmei .
Declararea instanțelor
Fiecare instanță este scrisă pe o singură linie până la întâlnirea unui simbol ce
marchează sfârșitul liniei curente (carriage return). Simbolul (%) introduce un
comentariu care se întinde până la sfârșitul liniei curente. Valorile atributelor fiecărei
instanțe sunt despărțite prin virgulă (,). Ele apar în ordinea în care au fost declarate în
zona declarărilor (valoarea corespunzătoare celui de-al -ulea atribut se va găsi pe a
-a poziție a instanței). Valorile lipsă sunt reprezentate printr-un semn de întrebare
(?). Valorile șirurilor de caractere și atributelor nominale fac distincție între literele
mici și mari, iar în cazul în care sunt despărțite prin spații trebuie incluse între
apostroafe(‘’). Datele calendaristice trebuie transcrise în secțiunea de date în același
format specificat la declararea atributului corespunzător. De asemenea, ele trebuie
puse între ghilimele(“”).
În figura 4.3 putem observa cum arată un document transcris în formatul ARFF,
evidențiind toate caracteristicile descrise mai sus.
Fig 4.3 Un document din setul de date standard IRIS, transpus în formatul ARFF.
sunt descrise în mod explicit doar valorile diferite de zero prin numărul atributului și
valoarea lui:
Fiecare instanță este reprezentată între acolade (,-), iar formatul fiecăreia este:
unde este indexul atributului începând cu 0.
LIBSVM [Chang and Lin 2001+ este o bibliotecă pentru mașinile cu vectori suport
(SVM) a cărei dezvoltare a început în anul 2000 cu ajutorul a două grant-uri oferite de
Consiliul Național Taiwanez de Știință. În prezent a ajuns să fie una dintre cele mai folosite
biblioteci de acest gen. LIBSVM este un software integrat pentru probleme cu vectori suport
de clasificare (C-SVC, nu-SVC), regresie (epsilon-SVR, nu-SVR) și estimare de distribuții (one-
class SVM). Suportă de asemenea și clasificarea multiclase. Mai multe detalii pentru
instrucțiuni de folosire a bibliotecii se pot găsi în fișierul README inclus în pachet,
consultând cele mai frecvente întrebări4 și studiind ghidul practic scris de Hsu el al. (2003).
Toate tipurile de algoritmi descriși reprezintă probleme de minimizare cuadrică.
Pentru a rezolva optim problema de minimizare biblioteca LIBSVM, folosește o
descompunere a matricei nucleu similară ca idee cu a algoritmului SMO dar având și unele
diferențe. Această metodă a fost propusă de Fan et al. (2005). Pentru o mai rapidă
funcționare se folosesc metode de eliminare a unor elemente (shrinking), rezultând o
problemă de optimizare mai mică. De asemenea, timpul de calcul al metodei de
descompunere este redus prin memorarea (caching) celor mai recent folosite elemente din
matricea nucleu. În ceea ce privește complexitatea computațională a algoritmilor nu s-a
ajuns încă la un rezultat teoretic, dar din punct de vedere experimental, este cunoscut că
numărul de iterații este mai mare decât un timp liniar în raport cu numărul exemplelor de
antrenare.
WEKA și LIBSVM sunt două utilitare software folosite pentru construcția
clasificatorilor SVM. Fiecare dintre cele două are avantajele și dezavantajele sale. WEKA are
o interfață grafică ce oferă multe statistici interesante (matricea de confuzie, precizie,
măsura F, scoruri ROC), în timp ce LIBSVM rulează mult mai repede decât algoritmul SMO
din WEKA. WEKA LIBSVM (WLSVM) [EL-Manzalawy and Honavar 2005] combină
funcționalitățile celor două utilitare. WLSVM poate fi privit ca o implementare a bibliotecii
LIBSVM ce rulează în mediul WEKA.
4
http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html
În cele ce urmează voi descrie rezultatele exprimentelor pe care le-am efectuat prin
aplicarea clasificatorului SVM pe setul de date Reuters-21578. Așa cum am menționat în
urmă cu două secțiuni, acest set de date a fost ales deoarece a reprezintat de-a lungul
timpului principalul criteriu de referință în clasificarea documentelor. Pentru a putea
compara rezultatele obținute cu cele ale altor studii, am folosit submulțimea de documente
ModApte și m-am concentrat doar asupra primelor zece categorii în ordinea descrescătoare
a numărului de documente. Acestea sunt: earn, acquisition (acq), money-fx, grain, curde,
trade, interest, ship, wheat și corn. În ceea ce privește algoritmii pentru rezolvarea
problemei de clasificare binară, am folosit algoritmul standard SMO al bibliotecii WEKA și un
algoritm mai recent implementat în biblioteca LibSVM. Funcțiile nucleu folosite în
experimente au fost nucleul liniar, polinomial de diverse grade și cel gaussian (rbf).
Implementarea am realizat-o în limbajul de programare Java folosind ultimele versiuni ale
bibliotecilor: WEKA 3.6.4 și LibSVM 3.0. Am comparat rezultatele obținute pentru diferite
valori ale parametrilor de antrenare (parametrul de regularizare C, gradul polinoamelor și
parametrul gamma ).
Prelucrarea datelor
Pentru a putea folosi facilitățile bibliotecii WEKA a trebuit ca mai întâi să transform
datele colecției Reuters-21578 din formatul SGM original în formatul ARFF. Pentru o mai
mare ușurință în prelucrarea lor, am folosit același set de date dar în format XML5 pe care l-
am parsat cu ajutorul bibliotecii SAX (Simple API for XML) 6.
În urma operației de selectare a documentelor corespunzătoare submulțimii
ModApte, au rezultat un număr de 9108 documente pentru cele zece categorii considerate,
dintre care 6574 documente de antrenare și 2534 documente de testare. Numărul de
documente pentru fiecare clasă în parte poate fi vizualizat în tabelul 4.4 de mai jos. Se poate
observa că valorile din tabelele 4.2 și 4.4 nu coincid, deoarece am eliminat din calcul acele
5
Disponibil la adresa http://modnlp.berlios.de/reuters21578.html
6
Disponibil la adresa http://www.saxproject.org/
78 | P a g i n a
parte. Un număr de două documente erau etichetate de două ori cu aceeași etichetă,
problemă rezolvată prin ștergerea unei etichete din cele două (documentul cu
conține eticheta de două ori și documentul cu
conține eticheta de două ori). Toate aceste documente pot fi folosite pe post de
exemple pozitive (documente etichetate cu eticheta clasei ) pentru fiecare clasă în parte.
Pentru a obține documente etichetate negativ ( ), am selectat acele documente cu
atributul dar cărora nu li s-a specificat nicio etichetă în tag-ul
. Am obținut un număr de 1975 documente etichetate negativ. Acestă observație
a fost sugerată de Lewis7, cu mențiunea că orice document dintre acestea poate fi folosit
drept exemplu negativ pentru oricare din cele 135 de categorii disponibile în colecția
Reuters-21578. Urmând indicațiile studiilor de specialitate, am păstrat același raport între
numărul exemplelor etichetate negativ și numărul celor etichetate pozitiv, pentru fiecare
categorie, între documentele de antrenare și cele de testare. Însumând numărul
documentelor cu exemple negative cu numărul de documente obținute anterior, am ajuns la
un număr total de 11083 documente distincte folosite în experimente. Tabelul 4.5 prezintă o
statistică a numărului de documente.
Pentru fiecare clasă în parte a fost generat câte un fișier ARFF de antrenare, respectiv
de testare. Fiecare fișier conține două atribute: un atribut de tip șir de caractere (string)
corespunzător textului dintr-un document și un atribut nominal cu valorile ce
specifică dacă documentul curent este un exemplu pozitiv ( ) sau negativ ( ). Instanțele
conțin documentele alese pentru clasa respectivă, împreună cu o instanță globală, prezentă
în toate documentele, ce este alcatuită din toate cuvintele distincte ce compun vocabularul
celor 11083 de documente. Această instanță este etichetată drept un exemplu negativ, iar
7
Din README.TXT http://www.daviddlewis.com/resources/testcollections/reuters21578/readme.txt
Documente de Documente de
CATEGORIE antrenare test
(CLASĂ) + - + -
acquisition 1488 1975 643 854
corn 159 1975 48 597
crude 349 1975 161 912
earn 2709 1975 1044 762
grain 394 1975 134 672
interest 289 1975 100 684
money-fx 460 1975 141 606
ship 191 1975 85 879
trade 337 1975 112 657
wheat 198 1975 66 659
TOTAL (36140) 6574 19750 2534 7282
Tabelul 4.5 Statistică privind numărul de exemple pozitive și negative pentru documentele
de antrenare și cele de test.
Fișierele ARFF create până în acest moment nu pot fi folosite în cazul celorlalte tipuri
de nuclee în afara celui lanț, pentru simplul motiv că nu conțin nicio informație referitoare la
frecvențele cuvintelor. Pentru rezolvarea acestui impediment, am aplicat filtrul
StringToWordVector disponibil în WEKA care transformă fișierul curent într-un fișier ARFF ce
are ca atribute cuvintele distincte din text, iar ca instanțe numărul de ocurențe ale fiecărui
termen în documentul curent, folosind reprezentarea tf-idf. În plus, atributul care specifică
dacă documentul este un exemplu pozitiv sau negativ, se păstrează. Datorită faptului că
documentele selectate pentru o categorie anume nu conțin toate cuvintele din vocabular, se
folosește reprezentarea pentru un fișier ARFF cu date împrăștiate (sparse).
Filtrul StringToWordVector conține o serie de opțiuni care pot fi folosite pentru a mai
reduce numărul mare de atribute. Dintre ele am folosit: lowerCaseTokens (transformarea
literelor mari în litere mici), SnowballStemmer (elimină afixele din forma unui cuvânt, lăsând
numai rădăcina) ce implementează algorimul descris de Porter (1980), useStoplist = true
(eliminarea cuvintelor cel mai frecvent folosite în limba engleză8), outputWordCounts = true
(scrie în fișier numărul de apariții ale fiecărui atribut), IDFTransform = true (folosește
reprezentarea tf-idf), AlphabeticTokenizer (excluderea cuvintelor ce nu sunt alcătuite numai
din litere). În urma aplicării filtrului au rezultat un număr de 21641 de atribute. Valorile
atributelor au fost normalizate în intervalul [0,1] prin aplicarea filtrului Normalize.
Fișierele ARFF rezultate în urma tuturor acestor operații pot fi acum folosite ca date
de intrare pentru algoritmii bibliotecii WEKA.
Rezultate
Rezultatele ce urmează să fie prezentate, evidențiază avantajele folosirii fiecăruia
dintre cele trei tipuri de nuclee: liniar, polinomial și gaussian(rbf). Pentru fiecare dintre
acestea, am folosit diferiți parametrii de antrenare (parametrul de regularizare C, gradul
polinomului E și parametrul gamma ) în vederea obținerii celor mai bune rezultate posibile.
Selectarea parametrilor a fost făcută pe baza consultării în prealabil a unor lucrări și metode
descrise pentru obținerea lor [Caruana and Niculescu-Mizil 2006; Hsu el al. 2003]. Nucleele
au fost comparate folosind cei doi algoritmi menționați: Weka SMO și LIBVSM. Ca metrici de
evaluare a corectitudinii algoritmilor de clasificare, am folosit precision(P) și recall(R),
deoarece sunt cele mai folosite. În termenii unei probleme de clasificare cele două noțiuni se
definesc după cum urmează:
unde numărul valorilor pozitive adevărate reprezintă numărul de elemente corect etichetate
cu eticheta clasei pozitive (true positive - tp) și numărul total de elemente etichetate cu
clasa pozitivă reprezintă suma dintre și numărul elementelor incorect etichetate cu clasa
pozitivă (false positive - fp).
unde numărul total de elemente care aparțin de drept clasei pozitive reprezintă suma dintre
și numărul elementelor care ar fi trebuit etichetate cu clasa pozitivă dar care nu au fost
(false negative - fn).
8
Lista cuvintelor disponibilă la adresa http://www.ranks.nl/resources/stopwords.html
Măsura mai este notată cu F1 și a fost calculată pentru prima oară de van Rijsbergen (1979).
În continuare voi prezenta tabelele cu rezultatele obținute.
Tabelul 4.6 a) Rezultate obținute aplicând algoritmul SMO pentru nucleul liniar, variind
parametrul de regularizare C între 10-2 și 101. Subliniate sunt valorile maxime ale măsurii F1
cu o precizie de 3 zecimale.
Tabelul 4.6 b) Rezultate obținute aplicând algoritmul LIBSVM pentru nucleul liniar, variind
parametrul de regularizare C între 10-2 și 101. Subliniate sunt valorile maxime ale măsurii F1
cu o precizie de 3 zecimale.
WEKA SMO C = 10-3 & E = 2 C = 10-2 & E = 2 C = 10-1 & E = 2 C = 100=1 & E = 2 C=101 & E = 2
POLY KERNEL P R F1 P R F1 P R F1 P R F1 P R F1
acquisition .579 .999 .729 .711 .998 .83 .998 .802 .89 .998 .933 .965 .998 .942 .97
corn .667 .042 .078 .857 .125 .218 .962 .521 .676 .969 .646 .775 .97 .667 .79
crude .8 .025 .048 .973 .224 .364 .987 .472 .639 .988 .516 .678 .988 .516 .678
earn .604 .999 .753 .945 .995 .969 1 .988 .994 1 .986 .993 1 .986 .993
grain .75 .022 .043 .963 .194 .323 .989 .642 .778 1 .799 .888 .991 .806 .889
interest .857 .06 .112 .958 .23 .371 1 .5 .667 1 .64 .78 1 .63 .773
money-fx .947 .128 .225 .981 .376 .544 1 .66 .795 1 .745 .854 1 .766 .867
ship .923 .141 .245 .952 .235 .377 .952 .235 .377 .952 .235 .377
trade .75 .027 .052 .977 .384 .551 .985 .589 .737 .953 .723 .822 .953 .732 .828
wheat .875 .106 .189 .976 .606 .748 1 .773 .872 1 .773 .872
C = 10-3 & E = 3 C = 10-2 & E = 3 C = 10-1 & E = 3 C = 100=1 & E = 3 C=101 & E = 3
P R F1 P R P R F1 P R P R F1 P R
acquisition .909 .016 .031 .968 .047 .089 .965 .984 .975 .994 .252 .402 .994 .263 .416
corn .667 .042 .078 .889 .167 .281 .923 .25 .393 .933 .292 .444 .941 .333 .492
crude .833 .031 .06 .952 .124 .22 .975 .242 .388 .975 .242 .388 .975 .242 .388
earn .664 .999 .798 .914 .997 .954 .996 .99 .993 1 .986 .993 1 .983 .991
grain .833 .037 .071 .955 .157 .269 .977 .321 .483 .984 .463 .629 .97 .485 .647
interest .857 .06 .112 .96 .24 .384 1 .4 .571 .978 .44 .607 1 .48 .649
money-fx .955 .149 .258 .974 .27 .422 .97 .454 .618 1 .539 .7 1 .518 .682
ship .667 .024 .045 .75 .035 .067 .833 .059 .11 .833 .059 .11 .833 .059 .11
trade .833 .045 .085 .95 .17 .288 .971 .304 .463 .913 .375 .532 1 .241 .388
wheat .5 .015 .029 .9 .136 .237 .952 .303 .46 .971 .515 .673 .946 .53 .68
C = 10-3 & E = 4 C = 10-2 & E = 4 C = 10-1 & E = 4 C = 100=1 & E = 4 C=101 & E = 4
P R F1 P R P R F1 P R P R F1 P R
acquisition .833 .008 .015 .96 .037 .072 .947 .056 .106 .951 .061 .114 .959 .073 .136
corn .75 .063 .115 .889 .167 .281 .9 .181 .31 .9 .181 .31 .909 .208 .339
crude .8 .025 .048 .917 .068 .127 .95 .118 .21 .95 .118 .21 .95 .118 .21
earn .752 .999 .858 .935 .999 .966 .99 .995 .993 .999 .994 .997 1 .993 .997
grain .875 .052 .099 .938 .112 .2 .97 .239 .383 .976 .306 .466 .957 .336 .497
interest .875 .07 .13 .944 .17 .288 .964 .27 .422 .973 .36 .526 .976 .41 .577
money-fx .929 .092 .168 .97 .227 .368 .955 .298 .454 1 .383 .554 1 .397 .569
ship .5 .012 .023 .5 .012 .023 .667 .024 .045 .667 .024 .045 .667 .024 .045
trade .8 .036 .068 .909 .089 .163 .944 .152 .262 .952 .179 .301 .952 .179 .301
wheat .667 .03 .058 .875 .106 .189 .938 .227 .366 .957 .333 .494 .92 .348 .505
Tabelul 4.7 a) Rezultate obținute aplicând algoritmul SMO pentru nucleul polinomial,
variind parametrul de regularizare C între 10-3 și 101 și gradul polinomului E luând valorile
2,3,4. Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.
LIBSVM C = 10-3 & E = 2 C = 10-2 & E = 2 C = 10-1 & E = 2 C = 100=1 & E = 2 C=101 & E = 2
POLY KERNEL P R F1 P R P R F1 P R P R F1 P R
acquisition .969 .048 .092 .989 .939 .963 .998 .936 .966 .998 .93 .963 .998 .93 .963
corn .667 .042 .078 .955 .438 .6 .974 .771 .86 1 .833 .909 1 .833 .909
crude .917 .068 .127 .988 .503 .667 .992 .745 .851 .992 .739 .847 .992 .739 .847
earn .757 .997 .861 .998 .991 .995 1 .991 .996 1 .99 .995 1 .99 .995
grain .8 .03 .058 .988 .597 .744 1 .873 .932 1 .873 .932 1 .873 .932
interest .889 .08 .147 1 .42 .592 1 .74 .851 1 .73 .844 1 .7 .824
money-fx .96 .17 .289 1 .553 .712 1 .837 .911 1 .844 .915 1 .844 .915
ship .667 .024 .045 .955 .247 .393 .978 .518 .677 .978 .518 .677 .978 .518 .677
trade .909 .089 .163 .985 .571 .723 .99 .857 .919 .99 .857 .919 .99 .866 .924
wheat .5 .015 .029 .96 .364 .527 1 .924 .961 1 .924 .961 1 .924 .961
C = 10-3 & E = 3 C = 10-2 & E = 3 C = 10-1 & E = 3 C = 100=1 & E = 3 C=101 & E = 3
P R F1 P R P R F1 P R P R F1 P R
acquisition .993 .213 .351 .998 .858 .923 .998 .883 .937 .998 .872 .931 .998 .872 .931
corn .833 .104 .185 .955 .438 .6 .968 .625 .759 .968 .625 .759 .968 .625 .759
crude .95 .118 .21 .985 .41 .579 .987 .472 .639 .987 .472 .639 .987 .472 .639
earn .955 .992 .973 1 .986 .993 1 .986 .993 1 .985 .992 1 .985 .992
grain .917 .082 .151 .988 .612 .756 .991 .799 .884 .991 .813 .893 .991 .813 .893
interest .941 .16 .274 1 .46 .63 1 .71 .83 1 .68 .81 1 .68 .81
money-fx .974 .262 .413 1 .617 .763 1 .766 .867 1 .766 .867 1 .773 .872
ship .8 .047 .089 .929 .153 .263 .933 .165 .28 .933 .165 .28 .933 .165 .28
trade .964 .241 .386 .984 .563 .716 .988 .714 .829 .988 .714 .829 .988 .714 .829
wheat .857 .091 .164 .973 .545 .699 1 .788 .881 1 .864 .927 1 .864 .927
C = 10-3 & E = 4 C = 10-2 & E = 4 C = 10-1 & E = 4 C = 100=1 & E = 4 C=101 & E = 4
P R F1 P R P R F1 P R P R F1 P R
acquisition .994 .247 .396 .997 .516 .68 .998 .639 .779 .998 .669 .801 .998 .669 .801
corn .875 .146 .25 .938 .313 .469 .95 .396 .559 .955 .438 .6 .955 .438 .6
crude .947 .112 .2 .978 .273 .427 .979 .286 .442 .979 .286 .442 .979 .286 .442
earn .984 .989 .986 1 .982 .991 1 .982 .991 1 .983 .991 1 .982 .991
grain .955 .157 .269 .985 .478 .643 .989 .679 .805 .989 .672 .8 .989 .672 .8
interest .955 .21 .344 1 .46 .63 .983 .59 .737 .982 .55 .705 .982 .55 .705
money-fx .977 .305 .465 1 .539 .7 1 .624 .769 1 .645 .784 1 .645 .784
ship .75 .035 .067 .833 .059 .11 .833 .059 .11 .833 .059 .11 .833 .059 .11
trade .944 .152 .262 .975 .348 .513 .98 .429 .596 .98 .429 .596 .98 .429 .596
wheat .889 .121 .213 .968 .455 .619 1 .697 .821 1 .697 .821 1 .697 .821
Tabelul 4.7 b) Rezultate obținute aplicând algoritmul LIBSVM pentru nucleul polinomial,
variind parametrul de regularizare C între 10-3 și 101 și gradul polinomului E luând valorile
2,3,4. Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.
P R F1 P R P R F1 P R P R F1 P R
acquisition .954 .946 .95 .985 .947 .966 .998 .935 .965 .998 .939 .968 .998 .95 .974
corn 1 .354 .523 1 .896 .945 1 .938 .968 1 .896 .945 1 .521 .685
crude .989 .54 .699 .987 .938 .962 .993 .944 .968 1 .944 .971 1 .596 .747
earn .989 .99 .989 .998 .993 .996 1 .992 .996 1 .99 .995 1 .981 .99
grain .985 .5 .663 1 .933 .965 1 .978 .989 1 .978 .989 1 .754 .86
interest .955 .21 .344 1 .78 .876 1 .8 .889 1 .7 .824 1 .48 .649
money-fx .986 .482 .648 1 .872 .932 1 .858 .924 1 .837 .911 1 .553 .712
ship .962 .294 .45 .984 .729 .838 .984 .718 .83 .984 .718 .83 1 .282 .44
trade 1 .554 .713 1 .92 .958 .99 .92 .954 .99 .902 .944 1 .554 .713
wheat 1 .318 .483 1 .939 .969 1 .939 .969 1 .939 .969 1 .758 .862
Tabelul 4.8 a) Rezultate obținute aplicând algoritmul SMO pentru nucleul gaussian (rbf),
variind parametrul de regularizare C între 100 și 103 și parametrul gamma între 10-5 și 100.
Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.
LIBSVM C = 1 & = 10-4 C = 1 & = 10-3 C = 1 & = 10-2 C = 1 & = 10-1 C=1& =1
RBF KERNEL P R F1 P R F1 P R F1 P R F1 P R F1
acquisition .5 .002 .003 .946 .953 .95 .987 .955 .971 1 .031 .06
corn 1 .208 .345 1 .479 .648
crude .988 .491 .656 1 .478 .647
earn .578 1 .733 .669 .996 .8 .989 .989 .989 .999 .979 .989 1 .761 .865
grain 1 .44 .611 1 .694 .819 1 .052 .099
interest .95 .19 .317 1 .39 .561 1 .12 .214
money-fx .983 .411 .58 1 .475 .644 1 .092 .169
ship 1 .224 .365 1 .188 .317 1 .012 .023
trade 1 .509 .675 1 .446 .617
wheat 1 .273 .429 1 .652 .789 1 .061 .114
-4 -3 -2 -1
C=10 & = 10 C=10 & = 10 C = 10 & = 10 C = 10 & = 10 C=10 & =1
P R F1 P R P R F1 P R P R F1 P R
acquisition 1 .002 .003 .953 .946 .949 .985 .95 .968 .998 .953 .975 1 .056 .106
corn 1 .354 .523 1 .854 .921 1 .521 .685
crude .989 .54 .699 1 .932 .965 1 .602 .752
earn .67 .998 .802 .989 .99 .989 .998 .993 .996 1 .981 .99 1 .784 .879
grain 1 .5 .667 1 .933 .965 1 .754 .86 1 .09 .164
interest .955 .21 .344 1 .72 .837 1 .48 .649 1 .14 .246
money-fx .985 .468 .635 1 .851 .92 1 .539 .7 1 .099 .181
ship .962 .294 .45 .984 .729 .838 1 .282 .44 1 .012 .023
trade 1 .545 .705 1 .893 .943 1 .563 .72
wheat 1 .318 .483 1 .924 .961 1 .758 .862 1 .061 .114
2 -4 2 -3 2 -2 2 -1 2
C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =1
P R F1 P R P R F1 P R P R F1 P R
acquisition .954 .946 .95 .984 .947 .965 .998 .944 .97 .998 .95 .974 1 .056 .106
corn 1 .354 .523 1 .896 .945 1 .896 .945 1 .521 .685
crude 1 .547 .707 .993 .938 .965 1 .944 .971 1 .596 .747
earn .989 .99 .989 .998 .993 .996 1 .99 .995 1 .981 .99 1 .784 .879
grain 1 .5 .667 1 .933 .965 1 .978 .989 1 .754 .86 1 .09 .164
interest .955 .21 .344 1 .77 .87 1 .76 .864 1 .48 .649 1 .14 .246
money-fx .986 .482 .648 1 .865 .928 1 .851 .92 1 .553 .712 1 .099 .181
ship 1 .294 .455 .984 .729 .838 .984 .718 .83 1 .282 .44 1 .012 .023
trade 1 .554 .713 1 .911 .953 .99 .902 .944 1 .554 .713
wheat 1 .318 .483 1 .924 .961 1 .939 .969 1 .758 .862 1 .061 .114
3 -5 3 -4 3 -3 3 -2
C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10-1
3
P R F1 P R P R F1 P R P R F1 P R
acquisition .954 .946 .95 .985 .947 .966 .998 .935 .965 .998 .939 .968 .998 .95 .974
corn 1 .354 .523 1 .896 .945 1 .938 .968 1 .896 .945 1 .521 .685
crude .989 .54 .699 .987 .938 .962 .993 .944 .968 1 .944 .971 1 .596 .747
earn .989 .99 .989 .998 .993 .996 1 .992 .996 1 .99 .995 1 .981 .99
grain .985 .5 .663 1 .933 .965 1 .978 .989 1 .978 .989 1 .754 .86
interest .955 .21 .344 1 .78 .876 1 .8 .889 1 .7 .824 1 .48 .649
money-fx .986 .482 .648 1 .872 .932 1 .858 .924 1 .837 .911 1 .553 .712
ship .962 .294 .45 .984 .729 .838 .984 .718 .83 .984 .718 .83 1 .282 .44
trade 1 .554 .713 1 .92 .958 .99 .92 .954 .99 .902 .944 1 .554 .713
wheat 1 .318 .483 1 .939 .969 1 .939 .969 1 .939 .969 1 .758 .862
Tabelul 4.8 b) Rezultate obținute aplicând algoritmul LIBSVM pentru nucleul gaussian (rbf),
variind parametrul de regularizare C între 100 și 103 și parametrul gamma între 10-5 și 100.
Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.
4.4 Concluzii
acquisition .97 .97 .97 .966 .975 .937 .136 .801 .966 .966 .965 .965 .97 .97 .975 .975
corn .979 .979 .79 .909 .492 .759 .339 .6 .945 .945 .968 .968 .945 .945 .685 .685
crude .965 .965 .678 .851 .388 .639 .21 .442 .962 .962 .968 .968 .971 .971 .752 .752
earn .996 .996 .994 .996 .993 .993 .997 .991 .996 .996 .996 .996 .996 .996 .99 .99
grain .989 .989 .889 .932 .647 .893 .497 .805 .965 .965 .989 .989 .989 .989 .86 .86
interest .901 .901 .78 .851 .649 .83 .577 .737 .876 .876 .889 .889 .864 .864 .649 .649
money-fx .928 .928 .867 .915 .7 .872 .569 .784 .932 .932 .928 .928 .92 .92 .712 .712
ship .838 .838 .377 .677 .11 .28 .045 .11 .838 .838 .838 .838 .838 .838 .44 .44
trade .963 .963 .828 .924 .532 .829 .301 .596 .958 .958 .954 .954 .944 .944 .72 .72
wheat .977 .977 .872 .961 .68 .927 .505 .821 .969 .969 .969 .969 .969 .969 .862 .862
Tabelul 4.9 Analiză comparativă a celor mai bune rezultate obținute prin aplicarea
algoritmului SMO și algoritmului LIBSVM (prescurtat SVM în tabel). Valorile subliniate
sugerează că respectivul algoritm a obținut o valoare mai mare a măsurii F1. Pentru cazul de
egalitate nicio valoare nu este subliniată.
87 | P a g i n a
Din punct de vedere al comparării rezultatelor obținute între nucleul liniar și cele
neliniare (polinomial și gaussian), se poate observa că nucleul liniar și cel gaussian (rbf) sunt
asemănătoare cu foarte mici diferențe în favoarea unuia sau altuia. Rezultatele obținute
aplicând nucleul polinomial încep să descrească în performanțe invers proporțional cu
creșterea gradului polinomului. Cele mai bune performanțe pentru acest nucleu s-au obținut
prin aplicarea algoritmului LIBSVM (vezi tabelul 4.9).
Ceea ce am obținut nu a fost decât o confirmare a faptului subliniat de Hsu el al.
(2003) , că atunci când numărul de instanțe folosite în procesul de învățare este mai mic
decât cel al atributelor, se recomandă folosirea nucleului liniar pentru obținerea celor mai
bune rezultate.
AIZERMAN, M.A., BRAVERMAN E.M. and ROZONOÉR L.I. (1964). Theoretical foundations of
the potential function method in pattern recognition learning. Automation and Remote
Control 25:821–837.
ANDREW, Y.NG. (2010). Lecture notes. Part V – Support Vector Machines. Stanford
University. PDF available at http://www.stanford.edu/class/cs229/notes/cs229-
notes3.pdf
BEN-HUR, A., ONG, C.S., SONNENBURG, S., SCHÖLKOPF, B. and RÄTSCH, G. (2008). Support
Vector Machines and Kernels for Computational Biology. PLoS Comput Biol 4(10):
e1000173. doi:10.1371/journal.pcbi.1000173
BOSER, B.E., GUYON, I.M. and VAPNIK, V.N. (1992). A training algorithm for optimal margin
classifiers. In D. Haussler, editor, Proceedings of the 5th Annual ACM Workshop on
Computational Learning Theory (COLT) ACM Press, pp. 144–152.
BOUCKAERT, R. R., FRANK, E., HALL, M. A., HOLMES, G., PFAHRINGER, B., REUTEMANN, P.,
WITTEN, I. H. (2010). WEKA−Experiences ith a Java Open-Source Project. Journal of
Machine Learning Research 11 , 2533-2541.
89 | P a g i n a
BREIMAN, L., FRIEDMAN, J., OLSHEN, R. and STONE, C. (1984). Classification and Regression
Trees. Wadsworth International.
CHANG, C.-C. and LIN, C.-J. (2001). LIBSVM : a library for support vector machines. Software
available at http://www.csie.ntu.edu.tw/~cjlin/libsvm
DRUCKER, H., VAPNIK, V., and WU, D. (1999). Automatic text categorization and its
applications to text retrieval. IEEE Trans. Neural Netw. 10, 5, 1048–1054.
DUMAIS, S. T., PLATT, J., HECKERMAN, D., and SAHAMI, M. (1998). Inductive learning
algorithms and representations for text categorization. In Proceedings of CIKM-98, 7th
ACM InternationalConference on Information and Knowledge Management (Bethesda,
MD, 1998), 148–155.
FAN, R.-E., CHEN, P.-H. and LIN, C.-J. (2005). Working set selection using second order
information for training SVM. Journal of Machine Learning Research 6, 1889-1918.
GLASMACHERS, T. and IGEL, C. (2006). Maximum-gain working set selection for SVMs.
Journal of Machine Learning Research, 7:1437–1466.
HALL, M., FRANK, E., HOLMES, G., PFAHRINGER, B., REUTEMANN, P., WITTEN, I. H.
(2009).The WEKA Data Mining Software: An Update; SIGKDD Explorations, Volume 11,
Issue 1.
HAYES, P.J., ANDERSON, P.M., NIRENBURG, I.B., and SCHMANDT, L.M. (1989). A Shell for
Content-Based Text Categorization. IEEE Conference on Artificial Intelligence Applications.
HAYES, P.J. and WEINSTEIN, S.P. (1990). A System for Content-Based Indexing of a Database
of News Stories. Second Annual Conference on Innovative Applications of Artificial
Intelligence.
HERTZ, J., KROGH, A. and PALMER, R.G. (1991). Introduction to the Theory of Neural
Computation. Addison-Wesley.
HSU , C.-W., CHANG, C.-C. and LIN, C.-J. (2003). A practical guide to support vector
classification. Technical report, Department of Computer Science, National Taiwan
University, http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf.
JOACHIMS, T. (1998). Text categorization with support vector machines: Learning with many
relevant features. In Proceedings of ECML-98, 10th European Conference on Machine
Learning (Chemnitz, Germany, 1998), 137–142.
JOACHIMS, T. (1999). Transductive inference for text classification using support vector
machines. In Proceedings of ICML-99, 16th International Conferenceon Machine Learning
(Bled, Slovenia, 1999), 200–209.
KLINKENBERG, R. and JOACHIMS, T. (2000). Detecting concept drift with support vector
machines. In Proceedings of ICML-00, 17th InternationalConference on Machine Learning
(Stanford, CA), 487–494.
KNIGHT, K. (1999). Mining online text. Commun. ACM 42, 11, 58–61.
LEWIS, D.D. (1991). Representation and Learning in Information Retrieval. Technical Report
91--93.
LEWIS, D.D., and RINGUETTE, M. (1994). A Comparison of Two Learning Algorithms for Text
Categorization. In Symposium on Document Analysis and Information Retrieval (Univ. of
Nevada, Las Vegas), 81-93.
MERKL, D. (1998). Text classification with selforganizing maps: Some lessons learned.
Neurocomputing 21, 1/3, 61–77.
OSUNA, E., FREUND, R., GIROSI, F. (1997). Improved Training Algorithm for Support Vector
Machines, Proc. IEEE NNSP ’97.
PLATT, J. C. (1998). Sequential minimal optimization: A fast algorithm for training support
vector machines, in B. Scholkopf, C. Burges, and A. Smola, editors, Advances in Kernel
Methods - Support Vector Learning. MIT Press
PORTER, M.F. (1980). An algorithm for suffix stripping, Program, 14(3) pp 130−137.
QUINLAN, J.R. (1993). C4.5: Programs for Machine Learning. Morgan Kauffmann.
RIPLEY, B. D. (1996). Pattern Recognition and Neural Networks, Cambridge University Press.
ROSENBLATT, F. (1958). The perceptron: a probabilistic model for information storage and
organization in the brain, Psychological Review 65: 386-408.
SALTON, G., WONG, A. and YANG C. S. (1975). A Vector Space Model for Automatic
Indexing. Communications of the ACM, vol. 18, nr. 11, pages 613–620.
SHAPIRE, R., and SINGER, Y. (1998). Boostexter: A system for mulit-label text categorization.
VAN RIJBERGEN, C.V. (1979). Information Retrieval. London; Boston. Butterworth, 2nd
Edition.
VAPNIK, V.N. (1979). Estimation of dependencies based on empirical data (in Russian),
Nauka, Moscow.
VAPNIK, V.N. (1996). The Nature of Statistical Learning Theory, Springer, New York.
VAPNIK, V.N. (1999) The Nature of Statistical Learning Theory. Springer, 2nd edition.
VAPNIK, V. and CHERVONENKIS, A.J. (1964). A note on one class of perceptrons. Automation
and Remote Control, 25.
VAPNIK, V.N. and CHERVONENKIS, A.J. (1974). Theory of Pattern Recognition (in Russian),
Nauka, Moscow.
WEISS, S. M., APTE, C., DAMERAU, F. J., JOHNSON, D. E., OLES, F. J., GOETZ, T., and HAMPP,
T. (1999). Maximizing text-mining performance. IEEE Intelligent Systems 14, 4, 63–69.
WITTEN, I.H. and FRANK, E. (2005). DataMining: PracticalMachine Learning Tools and
Techniques. Morgan Kaufmann, 2nd edition.
Resurse adiționalei
i
http://en.wikipedia.org/wiki/Classification_(machine_learning)
http://www.scholarpedia.org/article/Text_categorization
http://en.wikipedia.org/wiki/Document_classification
http://www.ercim.eu/publication/Ercim_News/enw62/novovicova.html
http://en.wikipedia.org/wiki/Kernel_methods
http://www.daviddlewis.com/resources/testcollections/reuters21578/readme.txt
http://weka.wikispaces.com/ARFF+(book+version)