Documente Academic
Documente Profesional
Documente Cultură
n cursul de investigare a probleme diferenelor stilistice ntre texte, apar adesea probleme de clusterizare pe orice criterii.Ca criterii pot fi, de exemplu, evenimente cum ar fi : apariia unor anumite elemente n text fraze constnd dintr-un numr mare de cuvinte,anumite combinaii de litere,cuvinte,anumite pri de vorbire etc. Dezvoltarea spectaculoas a clusterizrii n ultimii cincizeci de ani a permis cercetrilor n domeniu s ncerce utilizarea mai eficient a algoritmilor pentru rezolvarea unor probleme din ce n ce mai dificile,din ce n ce mai apropiate de complexitatea problemelor soluionale de om a dus la apariia unui nou domeniu al stiinei lingvistice ca: Data Mining,care este parte component din alt domeniu mare sub numele de Information retrieval. n primele dou capitole se explic amnunit istoria apariiei i bazele clusterizrii , primele ncercri de a crea metode i programe de acest tip au inceput n jumtatea secolului trecut, posibilele metode de mbuntire ale acestuia precum i importana acestui domeniu nu numai n ntrebuinarea de ctre om dar chiar i de calculator n diferite domenii ale lingvisticii. Tot in aceste capitole se descriu avantajele i dezavantajele clusterizrii ierarhice si partiionare, sunt descrise majoritatea metodelor i componentele acestor metode, precum i importana sa n dezvoltarea domeniului clusterizrii, care la moment se gsete ntr-o continu dezvoltare. Vom analiza cei mai des folosii algoritmi de clusterizare a textelor. Ultimul capitol se axeaz pe descrierea programului i dezvluie att metodele care au fost folosite n crearea i afiarea programului experimental, dar descrie i explic interfaa programului i modul de utilizare a aplicaiei.n anexele A i B este artat codul surs al programului i a interfeei. Metodele folosite n elaborarea algoritmului programului sunt: K-means i K-Nearest Neighbourn. Aceste metode ajuta la perceperea mai bun a temei date n domeniul dat. Data mining este un domeniu care se ocup ci studiul i crearea sistemelor de calcul i a programelor de cutare n baze de date mici i mari. Domeniile acesteia includ : Recunoaterea formelor, Analiza de date spatiale, Prelucrarea imaginilor, Cercetri economice, Text mining,
10
n aceste condiii, dezvoltarea de metode speciale de documente text clustering, adic partiie de matrice text de pe sistem (eventual ierarhic) subseturi similare devine important, fr de care lucrul efectiv cu informaii textuale este imposibil. Clusterzarea matricei text v permite de a organiza colectarea i mai nguste n domeniul de aplicare al instrumente. Dac este necesar, pot fi grupate n al doilea nivel, aplicnd aceeai procedur pentru a grupurilor de partiiei obinute n prima etap, i aa mai departe. Astfel, o persoan primete un instrument pentru rezolvarea problemelor asociate cu analiza unor cantiti mari de informaii textuale Caracterul urgent al dezvoltarea de metode de clustering i a crescut odat cu apariia conceptului de "penetrare informaii. Acest concept descrie diferitele metode de analiz a informaiilor n baze de date pentru a gsi relaii, anomalii i tendinele, fr a clarifica sensul semantic de nregistrri. Cele mai populare de astzi, i, probabil, n viitorul apropiat este clusterizarea semantic (sau, cu alte cuvinte, tematice), gruparea de documente de tip text. Acest tip de grupare implic divizia de colecii text n seturi de texte (n continuare - clustere), astfel c textul n acelai cluster similare reciproc n sensul, n timp ce textele aparinnd grupuri diferite au sensuri diferite. n cazul n care gruparea semantic a textelor poate "etichet" clustere alocate de descriptori tematice. Este o grupare semantic (denumit n continuare "pur i simplu grupare) de texte luate n considerare n aceast lucrare. Pn n 1980 principalele metode de texte de clusterizare sunt expert (manual) metode bazate pe utilizarea de evaluri ale experilor pentru a determina obiectul de documente. n timp ce utilizarea de abordare de la egal la egal este paradigma numai c ne permite de a dezvolta metode aplicabile pe scar larg de clustering text. Astzi, aceast abordare rmne n vigoare pentru rezolvarea problemelor care necesit soluii non-triviale de alocare de texte diferite la acelai cluster. Un exemplu este gruparea de nregistrri pacienilor n bazele de date ale instituiilor medicale ca cele mai bune de separare a pacienilor pe grupe tematice ar trebui s ia n considerare factori care se bazeaz pe povetile de bolile lor poate dezvlui doar un medic cu experien.Cu toate acestea, n acelai timp, metode manuale de grupare au caracteristici i special limiteaz posibilitatea al utilizrii lor: clusterizarea manual se aplic numai pentru colecii relativ mici de documente;
metode manuale au nevoie de o lung perioad de timp pentru a lucra, deoarece expertului
i trebuie ceva timp pentru a lua o decizie cu privire la fiecare text. Aceste caracteristici ale metodelor manuale de clusteriyare a textelor a fcut reale domeniile de dezvoltare a semi-automat i, mai trziu, metode automate de clusterizare a textelor. n prezent exist multe probleme a cror rezolvare este aproape imposibil fr utilizarea unor metode automate de clusterizare:
11
servicii pentru clieni de la diferite companii se confrunt cu sarcina de structurare i analiz a reclamaiilor feedback sau a unui client pentru a determina cele mai puternice surse de nemulumire lor, si depistare precoce a noi motive de nemulumire lor; servicii operaionale, companiile de producie trebuie s efectueze clusterizarea de rapoarte cu privire la situaiile de urgen pentru organizarea gestionare mai eficient a unei producii, pentru a identifica tendine periculoase, care ar putea duce la o cretere a accidentelor poteniale; cercettori i oameni de tiin s monitorizeze publicaii pe tema muncii lor de a identifica noi idei i tendine; atunci cnd se lucreaz cu baze de date pentru a reduce cantitatea de regsire informaii actualizate periodic este adesea necesar pentru compresie, care pot fi efectuate de ctre gruparea sale: n cazul n care eantionul iniial de excesiv de mari, putei s l salvai, lsnd un reprezentant cele mai tipice pentru fiecare cluster. O caracteristic a acestor i al multor alte exemple de probleme de clusterizare de texte este ca documentele care sunt clusterizate , nu sunt prezentate ca o matrice, dar ca un flux de texte primite, ceea ce face ca sarcina efectiv i mai complex de urmrire a dinamicii de distribuie a documentelor pe clustere n timp. Acest tip include, de exemplu, problema de clusterizare automat a fluxului de tiri. Partiionarea corect a fluxul de tiri, n conformitate cu structurele sale tematice este important nu numai pentru furnizorii de tiri (ca un factor care sporete confortul i atractivitatea de servicii pentru consumatori), dar i pentru utilizatorii finali folosind lenta de noutai. n acest caz, metode alternative pentru clusterizare automate, clusterizare-manual produse de experi - n multe cazuri, devine opiune mai puin atractiv. Aceasta nu este doar caracteristicile de mai sus-menionat a metode manuale de clustering, dar costul tot mai mare de munc manual i dependen puternic a rezultatelor obinute de la opinia experilor subiective. Istoria lucrri n domeniu OOP(Programare orientat pe obiecte) evoluiaz din a doua jumtate a secolului XX.Trebuie remarcat c metodele de grupare a textelor dezvoltat n paralel cu alte metode de procesare de text: regsirea de informaii, de clasificare a coleciilor text, de alocare automata a entitilor (uniti de informaii structurate n text, care corespunde cu un model special i obiecte de identificare sau a proprietilor), etc. De-a lungul acestor linii de cercetare constituie zona de cercetare numit analiz aprofundat textual, sau Text Mining de cercetare de baz n dezvoltarea de metode de clusterizare a informaii textuale,determinarea dezvoltrii lor n continuare sunt prezentate mai jos. Teoria este luata din [13]
12
13
Toate aceste fapte indic faptul c cercetarea n mbuntirea metodelor de rezolvare a clasterizrii automat al coleciilor de texte continu s fie o problem important.
2. PROCESUL DE CLUSTERIZARE
14
Figura 2.1.1 Reprezentarea unui set de date bidimensionale[5] Fiercare grup este un cluster. Sarcina clusterului este de a gsi cei trei clusteri ascuni n seturile de date .Cu toate c este uor ca o persoan s observe clusterele ntr-un spaiu bidimensional sau tridimensional, devine foarte greu, dac nu chiar imposibil, s detectm clusterele doar vizual, cnd dimensiunea crete. Mai mult dect att, n multe aplicaii, clusterele nu sunt att de bine definite sau bine delimitate ca n figura de mai sus. Prin urmare, trebuie utilizate tehnici matematice pentru gruparea n clustere. Clusterizarea este una dintre tehnicile fundamentale din analiza datelor care organizeaza un set de obiecte dintr-un spaiu multi-dimensional n grupuri coezive, cum au fost denumite i mai sus clustere. Au fost propuse multe utilizri pentru clusterizare n procesul de regsire a informaiei. Mai ntai, pe baza ipotezei de cluster, clusterizarea poate crete eficiena si eficacitatea n recuperare. Ulterior, clusterizarea poate fi folosit, fiind un mecanism puternic, pentru navigarea ntr-o colecie de documente (pentru a le separa sau grupa) sau pentru prezentarea rezultatelor
http://faculty.chass.ncsu.edu/garson/PA765/cluster.htm 15
recuperrii. Alte aplicaii de clusterizare includ exapansiunea interogarilor, urmarirea documentelor similare si acordarea de ranguri rezultatelor recuperarii. Analizele cluster mpart datele n grupuri (clusters) care au un anumit nteles, o anumit utilitate, sau ambele. Dac ntelesul este scopul, atunci clusterele trebuie s capteze structura natural a datelor. n unele cazuri, clusterizarea este un punct de nceput folositor pentru alte scopuri, ca de exemplu sumarizarea datelor. Fie pentru nelegere, fie pentru utilitate clusterizarea a jucat un rol important n mai multe domenii: psihologie i alte tiine sociale, biologie, statistic, recunoaterea formelor, regsire informaiei, nvarea automat i data mining.2 Clasele, sau grupuri de obiecte cu neles conceptual care mbuntaesc caracteristici comune, joaca un rol important n analizarea i descrierea lumii. ntradevr fiintele umane sunt ndemnatice la mpartirea obiectelor n grupuri (clusterizare) i asignarea obiectelor particulare la aceste grupuri (clasificare). n contextul acesta al ntelegeri, clusterele sunt potenial clase i clusterizarea este o tehic automat pentru gsirea automat a claselor. De exemplu n economie se colecteaz o mare cantitate de date despre clieni. Clusterizarea poate fi folosit la segmentarea clienilor n grupuri mai mici pentru analize adiionale i activiti de marketing. Termenul de clusterizare este folosit n mai multe comuniti de cercetare pentru a descrie metode pentru gruparea datelor neetichetate. Aceste comunitai au terminologii i presupuneri diferite pentru clusterizare i contextul n care este folosit. Clusterizarea este o tehnica de grupare a irurilor,care atribuie valori similare peste un numar de variabile. Este o tehnica de cercetare deosebita care ajut pentru a ntelege organizarea pe grupe a datelor. Pentru a ilustra necesitatea procesului de clusterizare ma jos va fi prezentat un exemplu n cadrul cruia are loc procesul de clusterizare: Exemplu: Zi de zi, ageniile de tiri din jurul lumii transmit un numr mare de articole de tiri. Dac un site web dorete s adune aceste articole de tiri pentru a asigura un serviciu integrat de tiri, trebuie s organizeze articolele adunate n funcie de subiectul pe care l trateaz. ntrebarea este: ce subiecte trebuie s aiba i cum trebuie organizate? O posibilitate ar fi angajarea unui grup de editori care s ndeplineasc misiunea. Cu toate acestea, organizarea manual este costisitoare i necesit mult timp, ceea ce face misiunea imposibil i nepotrivit pentru tiri sau alte informaii care sunt dependente de timp. A prezenta tirile cititorilor fr o organizare clar, nu constituie o opiune. Cu toate c o clasificare poate organiza articolele de tiri n funcie de anumite subiecte predefinite, aceast metod nu poate fi aplicat n acest caz, deoarece clasificarea
2
http://www.en.wikipedia.org/wiki/Cluster_analysis 16
necesit date de antrenare, care trebuie s fie organizate manual prin ierarhizarea subiectelor. Din moment ce subiectele de tiri se schimb n mod constant i rapid, seturile de date de antrenare vor trebui, de asemenea, s se modifice constant, ceea ce nu este fezabil prin etichetarea manuala. Gruparea n clustere este soluia ideal pentru aceast problem pentru c vor fi grupate n mod automat o serie de articole de tiri bazate pe asemanrile de coninut. Algoritmii de grupare ierarhic n clustere pot, de asemenea, organiza i grupa documente (de exemplu, fiecare subiect poate conine subsubiecte i aa mai departe). Ierarhizrile n funcie de subiect sunt n special folositoare pentru texte . Exemplul de mai sus indic faptul c procesul de grupare n clustere necesit o funcie care msoar gradul de asemnare dintre dou obiecte. Adeseori se folosete metrica euclidian, sau mai general, metrica lui Minkowski Aa cum a fost deja menionat, pentru a clusteriza documentele, trebuie ntai ales tipul caracteristicilor sau atributelor documentelor pe care va fi bazat clusterizarea si reprezentarea lor. Cel mai des folosit model este Vector Space Model. Clusterizarea este apoi efectuat folosind ca intrare, vectorii care reprezint documentele i un algoritm de clusterizare a documentelor. Vector Space Model Modelul cel mai folosit in clusterizare este Vector Space Model [18]aici fiecare obiect (de exemplu, un document) este caracterizat de un set de proprieti (termeni), care indic importana fiecrei trsturi pentru fiecare obiect. Selectarea celor mai potrivite trsturi i construirea noilor trsturi nainte de clusterizare sunt aspecte importante care pot influena calitatea rezultatului, care nu trebuie s fie subestimat. n Vector Space Model fiecare document este reprezentat ca vector de caracteristici, a carui lungime este egala cu numrul de atribute unice ale documentului din colecie. Fiecare component din vector are o pondere care indic importana fiecrui atribut n caracterizarea documentului. De obicei, aceste atribute sunt termeni care sunt extrai din document. Faza de extragere a termenilor care caracterizeaz un document este numit indexarea documentului. Apoi, n faza de ponderare a termenilor, acestor termeni le sunt atribuite ponderi, indicnd semnificaia lor n caracterizarea documentului. Aceste ponderi pot fi binare, indicnd existena (1) sau nu (0) a termenilor n document. De obicei, este mult mai raspandit folosirea frecvenei de ntalnire a termenului n document sau un algoritm apartinnd familiei Tf*Idf. Frecventa de ntalnire a termenului este bazata pe statistica termenului n document i este cel mai simplu mod de a asigna ponderi unui termen. Tf*Idf este o msur folosit n coleciile de documente care favorizeaz termenii care sunt frecveni n documente relevante, dar puin
17
frecveni n colecie ca ntreg. Tf reprezint frecvena de ntlnire a termenului n document, iar Idf este inversul frecvenei de ntlnire a termenului n ntreaga colecie. Idf = log(nk / N) unde nk este numrul de documente care conin termenul, iar N este numrul total de documente Dup ce s-a ncheiat ponderarea termenilor, trebuie aleasa o msura de similaritate pentru calculul asemnarii dintre doua documente (sau clustere). Considernd c fiecare document este reprezentat de un vector de ponderi, similaritatea poate fi gsita, n cel mai simplu mod, calculnd produsul termenilor si. Oricum, aceasta msura de similaritate nu este folosit niciodat. Cea mai cunoscut masur de similaritate este cea a coeficienilor cosinus, care masoar cosinusul unghiului dintre doi vectori de caracteristici. Alte msuri sunt cele ale coeficienilor Jaccard i ale coeficienilor Dice, ambele fiind versiuni normalizate ale potrivirii simple a coeficientilor. Algoritmii de clusterizare existeni difer n multe privine, cum ar fi tipul atributelor cheie pe care i folosesc pentru a caracteriza documentele, masura de similaritate folosit, reprezentarea clusterelor, etc. Pe baza caracteristicilor sau atributelor din documente folosite de algoritmul de clusterizare, abordrile pot fi categorisite astfel :
bazate pe text clusterizarea este bazat pe coninutul documentului; bazate pe link-uri bazat pe structura de link-uri a paginilor n colecie; hibride care iau n considerare att coninutul, ct si link-urile .
Cteva cerine tipice de clusterizare: Scalabilitate algoritmilor: sunt necesari algoritmi care s nu fie afectai de problema dimensiunii datelor adic s fie scalabili. Abilitatea de a trata cu diverse tipuri de atribute; Capacitatea de a descoperi clustere de forme arbitrare: cei mai muli algoritmi de clusterizare determin clustere pe baza distanei euclidiene sau pe baza distanei Manhattan. Algoritmii construii pe aceste msuri ale distanei tind s gseasc clustere sferice cu dimensiuni i densiti asemntoare. Cerine minime de determinare a parametrilor iniiali: foarte muli algoritmi de clusterizare cer utilizatorilor s specifice anumii parametrii iniiali, cum ar fi numrul dorit de clustere. Abilitatea de a prelucra date zgomotoase: datele din lumea real conin att date eronate i nregistrri greite ct i date lips. Algoritmii ar trebui s fie insensibili la asemenea date. Insensibilitatea la ordinea prezentrii datelor de intrare; Interpretabilitate.
18
n cazul majoritii problemelor formulate n cazul clusterizrii, informaia disponibil despre datele observate este n general neglijabil. Metodologiile de clusterizare sunt n particular utile n determinarea interconexiunilor dintre datele observate, precum i a structurii acestora. n general, clusterizarea formelor presupune efectuarea urmtoarelor operaii primitive asupra datelor (Jain, Murtay, Flynn, 1999): Reprezentarea caracteristicilor) Definirea unei msuri de proximitate pe domeniul datelor observate Clusterizarea (gruparea) datelor Abstractizarea datelor (dac este necesar) Estimarea rezultatelor (dac este necesar). formelor (eventual extragerea caracteristicilor i/sau selecia
ascendeni (de agregare, de sintez) clasele sunt construite prin agregarea succesiv a
elementelor, se obine astfel o ierarhie de partiii, de clase.
19
Metodele de partiionare din analiza cluster au ca idee esenial aceea c se poate porni de la o partiie oarecare a mulimii de obiecte i se poate ajunge, prin migrarea obiectelor ntre clase, la o partiie care ndeplinete un criteriu de optim. Majoritatea metodelor au drept criteriu de optim obinerea partiiei care minimizeaz suma ptratelor erorilor (apare la distana Ward). Eroarea este distana de la un obiect la centrul clusterului su.[6] Tehnicile de clusterizare reprezint tehnici speciale de aranjare a datelor de intrare pe baza dispunerii a vectorilor corespunztori. Pentru a studia asemnarea/deosebirea dintre elementele unei mulimi, n vederea gruprii, fiecare dintre aceste elemente este definit printr-un vector, ale crui componente sunt chiar caracteristicile/atributele reprezentative ale vectorului respectiv. Stabilirea numrului de componente/atribute i definirea acestora se face n funcie de scopul studiului, datele disponibile i, nu n cele din urm, n funcie de experiena analistului. n faza urmtoare, pentru determinarea asemnrii/deosebirii dintre elementele implicate se calculeaz distana dintre vectorii corespunztori. n cadrul unui astfel de proces, vectorii de intrare sunt grupai n funcie de distana care separ punctele reprezentative. n urma procesului de clusterizare rezult una sau mai multe grupe (clustere), n funcie de situaia, care reprezint poziionarea spaial a proprietilor considerate pentru elementele supuse gruprii. n interiorul unei asemenea grupe (cluster) punctele sunt mai apropiate ntre ele sau n raport cu un centru comun, dect n raport cu centrele altor grupe. Acest lucru este exemplificat n figura 2.2.1
Figura 2.2.1 Exemplu de clusterizare a unor elemente[5] n figura 2.2.1 pot fi identificate cu uurin 3 grupe (clustere) n care elementele sunt grupate, criteriul de similaritate fiind caracterizat de distana msurat ntre vectorii corespunztori
20
ai elementelor. Astfel, dou sau mai multe elemente aparin aceleai grupe dac sunt mai apropiate n raport cu o anumit distan. Aceasta este clusterizarea bazat pe distan. Un alt gen interesant de clusterizare este gruparea conceptual. n cadrul acestei grupri, dou sau mai multe elemente aparin aceleai grupe dac aceasta definete un concept comun tuturor elementelor. Altfel spus, elementele sunt grupate n conformitate cu potrivirea la conceptele descriptive i nu n conformitate cu msurile de similaritate . n general, analiza datelor reprezint baza evalurii multor aplicaii, fie n cadrul etapei de proiectare, fie n operaiile de conducere on-line, n cazul unor procese complexe. In cadrul unor asemenea procese, multitudinea tehnicilor utilizate pentru reprezentarea datelor, pentru msurarea asemnrii dintre elementele reprezentative, n vederea gruprii, poate fi derutant n ceea ce privete alegerea celor mai potrivite metode de grupare. Este deosebit de important de a nelege diferena dintre clusterizare care este un proces nesupravegheat i analiza discriminant, care este un proces de clasificare supravegheat. n cadrul clasificrii supravegheate, sunt stabilite deja o serie de grupe iniiale, care conin elemente preclasificate (cu eticheta grupei), problema const n a eticheta un nou element ntlnit, dar nc neetichetat. In mod practic, elementele etichetate sunt folosite pentru descrierea grupelor/claselor respective. n cazul clusterizrii, plecnd de la elemente iniiale neetichetate, se ajunge la una sau mai multe grupe semnificative, n funcie de situaie. Clusterizarea se utilizeaz pe scara larg n diferite analize, n explorarea datelor, n probleme de luare a deciziilor, situaii de nvare asistat, inclusiv recondiionarea documentelor, segmentarea imaginilor, clasificarea modelelor etc. Clusterizarea poate fi utilizat n special pentru cercetarea legturilor dintre date, n scopul unor evaluri (preliminare) a structurii acestora, definirea unor elemente/modele reprezentative. Termenul de clusterizare este folosit n numeroase domenii de cercetare tiinific pentru a descrie procesul de grupare a unor modele neetichetate. Aceste domenii folosesc deja diferite terminologii, tehnici i ipoteze, care se refer la etapele procesului de clusterizare, specifice problemelor abordate.
21
evaluarea rezultatelor. Stabilirea elementelor supuse procesului de clusterizare este o etap principal care uneori mai include stabilirea numrului de clase/grupe (clustere), tipul i scara caracteristicilor/atributelor disponibile algoritmului de clusterizare. Selectarea caracteristicilor este procesul de identificare a celor mai utile i reprezentative atribute/caracteristici utilizate n procesul de clusterizare. Selectarea acestor caracteristici se refer la modalitatea de a efectua una sau mai multe transformri ale datelor de intrare, n scopul obinerii unor noi caracteristici dominante. Proximitatea elementelor este msurat de obicei printr-o funcie de distan definit de perechi de elemente. Msurile de asemnare pot fi folosite i pentru a caracteriza similitudinea conceptual dintre dou sau mai multe elemente. n literatura de specialitate au fost definite o mulime de sisteme de msurare a distanelor. Cea mai utilizat este distana Euclidian, care poate reflecta similitudinea dintre dou elemente, dup ce n prealabil s-a definit o metric pentru fiecare atribut al vectorilor. Procesul de clusterizare poate fi realizat n mai multe feluri. Datele de ieire ale acesteia pot fi hard (separarea elementelor n grupe clar determinate) sau fuzzy (unde fiecare element are un grad variabil de apartenen la fiecare din grupele rezultate). Extragerea rezultatelor este procesul de obinere a rezultatelor sub o form ct mai simpl i reprezentativ. n acest caz, simplitatea este privit fie din perspectiva analizei automate (astfel nct un calculator s poat efectua mai departe procesarea datelor ntr-un mod eficient) sau din persectiva uman (astfel nct reprezentarea obinut pentru rezultate s fie mai uor de neles de ctre om). n cadrul gruprii spaiale, extragerea unor rezultate reprezint, de fapt, o descriere concis a fiecrei grupe obinute, de obicei prezentate sub forma unor elemente reprezentative. n principiu, toi algoritmii de clusterizare ar trebui s ne conduc la obinerea unor grupe/clase pentru orice mulime de date de intrare. Dac n urma procesului de clustering, utiliznd un anumit algoritm, nu se obine gruparea elementelor, atunci poate fi aplicat un alt algoritm care poate furniza rezultate mai bune dect cel utilizat anterior. Astfel, evaluarea rezultatelor unui proces de grupare spaial are mai multe aspecte. Analiza validitii grupelor face o evaluare a rezultatelor procesului de clusterizare i utilizeaz, de obicei, un criteriu de optimizare. Aceast analiz este obiectiv i se efectueaz pentru a se determina dac rezultatele clusterizrii sunt corecte. Un cluster (un grup) este validat dac nu a rezultat accidental sau dintr-un capriciu al algoritmului folosit.
22
Stabilirea elementelor
Procesul de clusterizare
23
sensibilitatea tehnicilor de clusterizare la modificri care pot afecta structura mulimii de date. Pn n momentul de fa nu exist o analiz critic a algoritmilor de clusterizare care s poat rspunde unor ntrebri importante precum: cum trebuie normalizate datele? ce msur a similitudinii este adecvat unei situaii date?
cum pot fi folosite cunotinele din domeniu la rezolvarea unei anume probleme de
clusterizare? cum poate fi clusterizare un set foarte mare de date, de ordinul a unui milion, de exemplu, n mod eficient? De asemenea, nu exist o tehnic de clusterizare universal aplicabil la determinarea varietilor de structuri prezente n spaiile multidimensionale. Este evident c oamenii pot asimila uor rezultatele clusterizrii bidimensionale, dar majoritatea problemelor reale implic clusterizarea multidimensional, ale cror rezultate nu pot fi interpretate intuitiv de mintea uman.
24
centroid, poate fi o bun reprezentare a clusterului. Algoritmul pornete prin a alege k centroizi de clustere. Apoi este calculat distana cosinus dintre fiecare document din colecie i centroizi si documentul este asignat clusterului cu centroidul cel mai apropiat. Apoi sunt recalculai centroizii noului cluster i procedura continua iterativ pana este atins un anumit criteriu. Alt algoritm de clusterizare partiionala este algoritmul celei ma apropiate vecinatati (k - nearest neighbor). Clusterizarea ierarhic. Algoritmii de clusterizare ierarhica produc o secventa de partitii de acelasi fel. De obicei, similaritatea dintre fiecare pereche de documente este stocata ntr-o matrice de similaritate n x n. La fiecare pas, algoritmul fie unete doua clustere (metode aglomerative), fie mparte un cluster n doua (metode divizive). Rezultatul unei clusterizri poate fi vizualizat ntr-o structur sub forma de arbore, numit dendograma, cu un cluster n vrf care conine toate documentele coleciei i multe clustere la baza, fiecare coninnd un singur document. Alegand nivelul convenabil pentru dendograma, obinem o partiionare n cte clustere dorim. Aproape toti algoritmii ierarhici folositi pentru clusterizarea documentelor sunt aglomerativi (HAC). Un algoritm HAC tipic pornete prin a asigna fiecare document din colecie unui singur cluster. Similaritatea dintre toate perechile de clustere este calculat si stocat n matricea de similaritate. Apoi, cele mai apropiate (similare) clustere sunt unite si matricea de similaritate este updatat pentru a reflecta schimbarea n similaritate dintre noul cluster si clusterele originale. Procesul este repetat pana cand ramane un singur cluster sau pan cnd este atins un prag. Metodele de clusterizare ierarhic aglomerativ difer prin modul n care calculeaza similaritatea dintre doua clustere. Metodele existente sunt metoda legaturii singulare (single link), metoda legaturii complete (complete link), metoda mediei de grup (group average), metoda Ward si metoda centroidului (mediana). Clusterizarea bazat pe grafuri. Documentele care urmeaza sa fie clusterizate pot fi vzute ca un set de noduri i muchiile dintre noduri reprezint relaiile dintre ele. Fiecare muchie are o pondere, care denot gradul acelei relaii. Algoritmii bazai pe grafuri se bazeaza pe partitionarea grafului, adic pe identificarea clusterelor prin tierea muchiilor din graf astfel nct muchiile tiate (suma ponderilor muchiilor taiate) sa fie minimizate. De vreme ce muchiile din graf reprezint similaritatea dintre documente, tind muchiile cu suma minim a ponderilor, algoritmul minimizeaz similaritatea dintre documentele din clustere diferite. Ideea de baz este ca ponderile muchiilor din acelasi cluster vor fi mai mari decat ponderile muchiilor dintre clustere. Astfel, clusterul rezultat va conine documentele strans legate. Cei mai importani algoritmi bazai pe grafuri sunt Chameleon, ARHP (Association Rule Hypergraph Partitioning) si cel propus de Dhillon.
25
Clusterizarea bazat pe reele neurale. SOM (caracteristica Self-Organizing Maps a lui Kohonen) este un model de reea neurala nesupervizat des folosit. Const din doua straturi: stratul de intrare cu n noduri de intrare, corespunztor celor n documente i stratul de ieire cu k noduri de ieire, care corespunde celor k regiuni de decizie. Fiecrei din cele k unitti de ieire i este asignat un vector de ponderi. n timpul unui pas de nvatare, un document din colecie este asociat cu un nod de ieire care are cel mai similar vector de ponderi. Vectorul de ponderi a nodului castigator este apoi adaptat n asemenea fel nct va deveni i mai similar cu vectorul care reprezint acel document. Ieirea algoritmului este aranjamentul documentelor de intrare ntr-un spaiu 2dimensional n asemenea fel nct similaritatea dintre doua documente de intrare este oglindit n termenii distanei topografice dintre cele k regiuni de decizie. Alt abordare propusa este modelul hrii caracteristicilor ierarhice (hierarhical feature map), care este bazat pe organizarea ierarhic a mai mult de o harta de caracteristici cu auto-organizare. Clusterizarea Fuzzy. Toate abordrile de mai dinainte produc clustere ntr-un mod n care fiecare document este asignat unui singur cluster. Abordrile clusterelor fuzzy, pe de alta parte, sunt non-exclusive, n sensul c fiecare document poate aparine de mai mult de un singur cluster. Algoritmii fuzzy de obicei ncearc s gseasc cea mai bun clusterizare prin optimizarea unei anumite funcii criteriu. Faptul c un document poate aparine de mai mult de un singur cluster este descris de o funcie de membru. Funcia de membru calculeaz pentru fiecare document un vector de membru, n care al i-lea element indic gradul de apartenen a documentului la al i-lea cluster. Cel mai utilizat algoritm de clusterizare fuzzy este Fuzzy c-means, o variaie a algoritmului partiional k-means. Alt abordare fuzzy este algoritmul Fuzzy Clustering si Fuzzy Merging. Clusterizarea probabilistic. Alt mod de a trata incertitudinea este folosirea algoritmilor de clusterizare probabilistic. Aceti algoritmi folosesc metode statistice pentru a calcula similaritatea dintre date n loc de anumite msuri predefinite. Ideea de baz este asignarea de probabilitai pentru membrii unui document ntr-un cluster. Fiecare document poate aparine mai multor clustere n funcie de probabilitatea de apartenen la fiecare cluster. Abordrile de clusterizare probabilistic sunt bazate pe modelari de amestec finit (finite mixture). Doi algoritmi probabilistici des utilizai sunt maximizarea asteptrii (expectation maximization) si AutoClass. Ieirea algoritmilor probabilistici este setul de valori ale parametrilor funciei de distribuie i probabilitatea de membru a fiecrui document pentru fiecare cluster. Teoria este luat din [22]
26
27
Figura 2.6.1 Clasificarea algoritmilor de clusterizare b) n funcie de modul cum sunt proiectate clusterele avem 3 tipuri diferite de algoritmi:
Algoritmi iterativi:
multe formule.
nivelul
rdcin, unde ntregul set de date constitue primul cluster. Folosind anumite criterii l va d) O alt clasificare se poate face n funcie de restriciile de apartenen a unei instane la unul sau mai multe clustere:
28
Figura 2.6.2 Categoriile de metode pentru clasterizare. Figurile sunt luate din [24]
, adic reuniunea tuturor subseturilor trebuie s acopere n ntregime setul de date D. Dac , oricare ar fi i,j [1,k],vom avea partiii disjuncte ale setului de
date. n funcie de algoritmii de partiionare folosii un cluster poate fi disjunct sau cu o funcie
29
probabilistic de distribuie a instanelor. n continuare vom prezenta noiunile de baz a algoritmilor de clusterizare prin partiionarea setului de date. [23]
30
Pas 6: Algoritmul este reluat de la pasul 2 cu noile centre de clustere .Criteriul de oprire: instanele vor fi repartizate succesiv n acelai cluster. Un cluster are urmtorii parametrii care pot fi evaluai: centroidul clusterului, raza clusterului i diametrul clusterului. Pentru evaluarea distanei dintre clustere avem: distana dintre centroide, distana dintre cele mai apropiate dou instane i distana dintre cele mai deprtate dou instane. n continuare vom furniza o formul de calcul pentru evaluarea parametrilor unui cluster. Centroidul clusterului reprezint o medie a tuturor instanelor plasate n acel cluster, i poate fi calculat folosind formula:
(2.7.1.1) Unde: I: reprezint o instan din setul de date N: reprezint numrul de instane din clusterul k k : reprezint numrul clusterului Raza unui cluster poate fi calculat ca o sum a distanelor dintre instanele care au fost clasificate n acel cluster. Astfel raza unui luster k poate fi calculat folosind formula :
(2.7.1.2) Unde: I: reprezint o instan din setul de date N: reprezint numrul de instane din clusterul k k : reprezint numrul clusterului Centroid k: reprezint centroidul clusterului Diametrul unui cluster poate fi calculat dup formula urmtoare:
(2.7.1.3) Unde:
31
I: reprezint o instan din setul de date N: reprezint numrul de instane din clusterul k k : reprezint numrul clusterului Formulele sunt luate din [24]
(2.7.1) Distana Manhattan Folosind notaiile de mai sus, distana Manhattan se calculeaz folosind formula:
(2.8.3) Partiionarea setului folosind eroarea ptratic Eroare ptratic este unul dintre cele mai folosite criterii de construire a unei clusterizri, deoarece este uor de calculat i produce rezultate de o calitate ridicat att pentru clustere izolate ct i pentru clustere compacte. Eroarea ptratic pentru un cluster se calculeaz folosind formula:
32
(2.8.4) Unde:
33
Figura 2.7.3.1 Paii algoritmului K means.[24] Fiecare cluster are o distribuie distinct, guvernat de legi diferite. Toate instanele din setul de date aparin unui singur cluster i n mod obligatoriu unui cluster. Problema ce trebuie rezolvat este determinarea clusterului la care aparine fiecare instan. De asemenea, dimensiunea clusterelor va diferi, modelul mixtur oferind i o distribuie de probabilitate care va fi folosit pentru calculul populaiei relativ a clusterelor. Un exemplu de algoritm de partiionare probabilistic este: Expectation-Maximization (EM).
34
Pas5: Centrul clusterului va fi nlocuit cu centroid-ul calculat la pas 4. Pas6: Algoritmul este reluat de la pasul 2. Procesul este oprit atunci cnd instanele sunt repartizate succesiv n acelai cluster de mai multe ori. n acest caz se consider c s-au stabilizat clusterele. n funcie de implementare parametrul k este predefinit sau este introdus de utilizator. Deoarece instanele sunt repartizate n clusterul de a crui centru este mai aproape centrele se vor stabiliza pe un minim. Pentru a elimina acest neajuns, algoritmul se va rula succesiv pe aceleai date, de fiecare alegnd alte centre de clustere iniiale. Un dezavantaj al algoritmului k-means este c procesul de clusterizare este greoi. La fiecare pas algoritmul trebuie s efectueze un numr mare de calcule pentru a determina distana dintre fiecare instan i fiecare centru. n plus algoritmul trebuie s efectueze un numr mare de iteraii: dup ce au fost alctuite clusterele, sunt recalculate centrele lor iar procesul este reluat. Din aceast cauz algoritmul este foarte lent. Pentru a diminua ct mai mult acest dezavantaj au fost gsite diverse metode de a scdea numrul de iteraii necesare i numrul de calcule efectuate. Una dintre aceste metode este folosirea proieciei setului de date,sau divizarea setului dup anumite axe pentru a nu mai folosi n calcul fi instan n parte, ci cu diviziunile respective. Aceste mbuntiri n sensul creterii vitezei au neajunsul scderii calitii clasificrii.
Figura 2.7.4.1 Influena alegerii numrului de grupe (K) asupra rezultatului final.[5] Totui, datorit simplitii sale i a eficienei sporite legate de minimizarea funciei eroare ptratic, algoritmul K-medii este folosit deseori cu rezultate bune, mai ales atunci cnd setul de date descrie o mulime de puncte care formeaz grupe liniar separabile i relativ ndeprtate una fa de alta. Metoda de clusterizare Kmedii este convenabil pentru seturi de date mari de sute de mii de nregistrri.
35
Esena metodelor non-ierarhice de clusterizare const n corelarea prevederilor dispoziiilor din centrele de clustere multidimensionale n semne din spaiu i ajustarea gradual a acestor centre. n algoritmi de baz pentru perioada iniial de centre i numrul de clustere, de obicei, definite de utilizator, modificai i mai compleci, unele dintre aceti parametri pot fi detectai automat. Metode Nonierarhice, spre deosebire de ierarhic, permite ca unul si acelai text s reprezinte mai muli clusteri. Avantajele unor metode non-ierarhice este complexitatea liniar a (O(N),unde N este numrul de texte), precum i posibilitatea de a relaiona probabilitatea de texte pentru clustere. Dezavantajul este mai mult srac, n comparaie cu metodele ierarhice, n reprezentarea rezultatului.[11] Acest algoritm are o aplicaie mai larga, de cele mai multe ori este folosit ca instrument de analiza n explorarea datelor. Pentru date unidimensionale este o modalitate potrivit de a separa variabilele n K grupe neuniforme. De asemenea este utilizat la alegerea paletei de culori pe dispozitivele vechi de afiare grafic. Deseori utilizat ca o form de segmentare a imaginii. Rezultatele segmentrii sunt utilizate pentru detectarea frontierii i recunoasterea obiectului. n acest context obinuita Distana Euclidian este deseori insuficient pentru formarea clusterilor, de aceea sunt frecvent folosite i alte metode ca msurarea ponderii folosind coordonatele pixelilor, metoda de colorare RGB sau textura imaginii.
algoritmi de clusterizare ierarhic aglomerativ . algoritmi de clusterizare ierarhic fragmentar sau prin diviziune .
Algorimii aglomerativi realizeaz o analiz de tip bottom-up, pornind de la nivelul fiecare instan este un cluster individual. Procesul de frunz al arborelui nivel la care,
36
clusterizare urmrete aglomerarea clusterelor n clustere noi, prin unirea a dou sau mai multe clustere formate n pasul precedent. Fr o condiie de oprire corespunztoare procesul de clusterizare aglomerativ se va opri cnd toate instanele au fost introduse ntr-un singur cluster final. Condiia de oprire trebuie s precizeze clusterizare. Algoritmii fragmentari realizeaz o analiz de tip top-bottom. Ei pornesc de la nivelul rdcin al arborelui i realizeaz fragmentri succesive, n clustere noi. Fr o condiie de oprire, algoritmul mparte setul de date n clustere formate dintr-o singur instan, obinnd un numr de clustere egal cu numrul de instane din setul de date. Condiia de oprire are scopul de a opri algoritmul cnd un numr suficient de clustere a fost atins sau cnd gradul de fragmentare este atins. n figura 2.8.1.1 este prezentat un exemplu grafic de clusterizare ierarhic. Se consider un set de date cu 7 instane (A..G) cu proprietile: instanele A i B sunt suficient de similare, C, D, E i F de asemenea, iar G distinct de celelalte. Astfel se dorete o clusterizare n 3 clustere a acestui set de date. n figura .x.a. este ilustrat procesul de clusterizare agomerativ ce pornete de la nivelul instan, iar n figura .x.b. clusterizarea fragmentar. Linia punctat reprezint momentul n care trebuie oprit clusterizarea pentru a se obine rezultatul dorit.[17] gradul de granularitate satisfctor pentru
37
Figura 2.8.2.1 Distana minim (legatura unica) dintre dou grupe. n acest caz este calculat distana dintre fiecare pereche posibil de elemente (i,j), unde elementul i este din grupa r i elementul j este din grupa s. Valoarea minim a acestei distane se consider a fi distana dintre grupele r i s. Cu alte cuvinte distana dintre dou grupe este dat de valoarea celei mai scurte legturi dintre grupele respective. La fiecare stadiu din gruparea spaial ierarhic, grupele r i s, pentru care D(r,s) este minim sunt grupate (unite).
38
b. Clusterizare prin metoda legaturii complete (complete link) Metoda legturii complete, numit metoda celui mai ndeprtat vecin este opus celei precedente.n metoda de clusterizare pe baza legturii complete (distanei maxime, distana) D(r,s) se calculeaz: D(r,s) = max {d(i,j)} (2.8.2.2) unde elementul i este din grupa r, iar elementul j este din grupa s. n acest caz distana dintre dou grupe este dat de valoarea celei mai lungi legturi dintre grupe, Fig 2.7.2.2 XX. La fiecare etap a gruprii ierarhice spaiale, grupele r i s, pentru care D(r,s) este maxim, sunt grupate (unite).
Figura 2.7.2.2 Distana maxim (legtura complet) dintre dou grupe. c. Clusterizare prin metoda bazat pe distana medie n cadrul acestei metode distana dintre dou grupe este definit ca media distanelor dintre toate perechile de elemente/obiecte, unde fiecare pereche conine cte un obiect din fiecare grup. Astfel, distana D(r,s) se determin cu relaia: D(r,s) = Trs / ( Nr Ns) Nr, Ns - dimensiunile grupei r, respectiv s. La fiecare etap a gruprii spaiale ierarhice, grupele r i s pentru care D(r,s) este minim, sunt grupate. Fig. 2.8.2.3 ilustreaz modul de definire a distanei medii. (2.8.2.3) unde: Trs - suma tuturor distanelor posibile dintre elementele grupei r i cele ale grupei s;
39
Figura 2.8.2.3 Definirea distanei medii dintre dou grupe. d. Clusterizare prin metoda Ward Ward propune un procedeu de clustering (grupare spaial) cutnd s formeze partiiile Pn, Pn-1,, P1 ntr-o manier care s minimizeze pierderile de informaii asociate fiecrei grupri i s msoare aceste pierderi ntr-o form uor de interpretat. La fiecare pas din analiz sunt combinate dou grupe a cror fuziune conduce la rezultate minime n creterea informaiei pierdute. Informaia pierdut este definit de Ward n condiiile criteriului suma patratric a erorii (SPE). Argumentarea propus de Ward poate fi ilustrat mult mai simplu considernd date unidimensionale. S presupunem pentru exemplu, 10 elemente cu o singur caracteristic (6, 5, 6, 2, 2, 2, 2, 0, 0, 0). Pierderea de informaie care va rezulta din gruparea celor 10 elemente ntr-o singur grup, cu o medie de 2,5, este reprezentat de SPE, dat de : SPE un grup = (2 - 2,5)2 + (6 - 2,5)2 + ....... + (0 - 2,5)2 = 50,5 grupe: {0,0,0}, {2,2,2,2}, {5}, {6,6} (2.8.2.4) (2.8.2.5) Pe de alt parte, dac cele 10 elemente sunt grupate dup caracteristicile lor, n patru SPE poate fi evaluat ca sum ptratic a patru erori separate: SPE un grup = SPE grup1 + SPE grup2 + SPE grup3 + SPE grup4 = 0 Deci prin dispunerea celor 10 elemente n 4 grupe, gruparea se face fr pierderi de informaie. Algoritmnul de clusterizare ierarhic are urmtorii pai. Se da o mulime de N elemente ce urmeaz a fi clusterizate (grupate), i o matrice distan (sau matrice de similaritate) de dimensiune N*N .: 1. Se atribuie fiecrui element un cluster, aadar dac avem N elemente, vom avea la acest nivel N clustere, fiecare coninnd cte un unic element. Vom presupune c distanele dintre clustere sunt acelei ca i distanele dintre elementele pe care acestea le conin.
40
2. Se determin cea mai apropiat (cea mai similar) pereche de clustere i le vom combina (uni) ntr-un singur cluster, avnd aadar cu un cluster mai puin. 3. Se calculeaz distana (similaritatea) dintre noul cluster i fiecare dintre vechile clustere. 4. Se repet paii 2 i 3 pn cnd toate elementele sunt grupate ntr-un singur cluster de dimensiune N.[5] Figurile sunt luate din [11]
41
abordri. Att clusterizrile ierarhice ct i cele fragmentare au avantaje i dezavantaje. n cercetarea de fa vom alege algoritmul de clusterizare k means, deoarece are avantajul unei viteze de procesare ridicate pe de o parte, iar pe de alt parte deoarece vom analiza snippet-uri de rezultate a unei cutri care vor alctui un spaiu de cutare de o dimensiune moderat.[23]
Analiza de date spatiale: procesul const n analiza concomitent a mai multor tipuri de
informaii ale datelor vizate: informaii topologice, informaii geometrice, informaii geografice. Algoritmii folosii n acest procedeu trebuie s fie capabili s prelucreze
42
structuri complexe de date. Cel mai comun exemplu de analiz de date spaiale este cartografierea galaxiilor.
Prelucrarea imaginilor: este procedeul n care inputul este reprezentat de o imagine sau un
set de imagini consecutive (video) iar outputul reprezint caracteristici ale acelor imagini. Outputul poate lua orice forma: numerica, literal, o alt imagine. Algoritmii cu baz grid, algoritmii ierarhici conglomerativi i algorimii fuzzy au fost folosii cu succes n prelucrare de imagini
Text mining: este procesul de extragere a unor informaii cu grad nalt calitativ dintr-un text
scris. Are la baz procesul de recunoatere a patternurilor din date, care este specific clusterizrii. Aplicaii:
Biologie, n domeniul tiinelor vieii obiecte de analiz sunt forme de via, cum ar fi
plante, animale i insecte. Analiza prin clusterizare poate dezvolta taxonomii complete de clasificare a speciilor n subspecii. Aceste subspecii, la rndul lor pot fi clasificate n subspecii.
Biblioteci, pentru ordonarea crilor dup anumite criterii. Internet, pentru mprirea documentelor n funcie de tematic. Medicin, tehnicile de Clusterizare au fost aplicate pentru o gam larg de probleme de
cercetare. Hartigan (1975) ofer o excelent sintez a mai multor studii publicate raportnd rezultatele analizei prin grupare. De exemplu n domeniul medicinei, gruparea bolilor, a tratamentelor diferitor boli, sau a simptomelor poate duce la o taxonomie (tiina legilor de
43
clasificare) foarte util. n domeniul psihiatriei, o diagnostic corect a gruprii simptomelor, cum ar fi paranoia, schizofrenie, etc este esenial pentru succesul tratamentului. n arheologie, cercettorii au ncercat s stabileasc taxonomii ale uneltelor de piatr, obiectelor funerare, etc, prin aplicarea tehnicilor de clusterzare analitic. n general, ori de cte ori este nevoie pentru a clasifica un "munte" de informaii n grupuri manevrabile, usor de neles, clusterizarea analitic este de mare ajutor
Luarea deciziilor, clusterizarea este utilizat pe scar larg luarea deciziilor politice,
prelucrarea informaiei. S-au dezvoltat variate aplicaii cu scopul efecturii sondajelor pieelor, studiul produselor, programe de studiu de vnzari, voturilor pe teme politice.
3.DESCRIEREA PROGRAMULUI
44
pare a fi simpl nsa codul surs n care sunt implementai doi algoritmi nu este uor. Aplicaia este oformat n aa fel ca s fie uor neleas de utilizator , i sa fie uor aplicabil n practic pe termen scurt. Putem efectua clusterizarea dup un singur cluster, dar si a mai multor clusteri. Neajunsurile in program reiese din algoritmii de lucru K-means i KNN(single linkage,K-nearest neighbourn,vecinului apropiat),aceti algoritmi lucreaza cu baze mici de texte, i calitatea clusterizrii este mic, pentru mrirea capacittii clusterizrii i eficiena acestora unii specialiti imbuntesc algoritmul introducnd formuli matematice de masurare a distanei, de msurare a diametrului etc. Orice utilizator poate veni cu baza lui de texte i s efectuieze clusterizarea acestora cu ajutorul acestui program . n ultimul timp aplicatii de genu clusterizrii sunt multe i sunt efectuate n diverse domenii, cele mai des ntilnite sunt cele cu imagini. De cnd a inceput sa fie folosit mai des internetul , a aprut i aplicaii pentru clusterizarea textelor, astzi clusterizarea textelor este foarte intrebuieat in cautarea informaie, i algoritmi sunt folosii in cele mai populare motoare de cutare gigante ca google,yahoo etc Programatorii acestor companii lucreaza pentru mbuntirea calitii cautrii dupa criteriul clusterizrii care permite ca rezultatul finit sa fie mult mai precis. Pentru a mbuntai acest program este necesar de mai mult timp, si mai multe cercetri n acest domeniu care vor permite avansarea la un nivel mai nalt a acestei aplicaii. Programe care efectuiaz clusterizarea la nivel nalt le putem enumera pe degete deoarece nu sunt att de multe.Acestea sunt : Carrot2,weka,textanalisis toate fiind open source.
45
Pas 2: Caut cel mai apropiat vecin ) s fie cea mai mic; Pas 3: dac distana ( = Altfel dac distana( , ) prag: , )
,:
={ }
Se poate produce o comanda de obiecte, care pot fi informative pentru afiarea datelor. Clustere mai mici sunt generate, care poate fi de ajutor pentru descoperire. Dezavantaje Nici o dispoziie poate fi fcut pentru o relocare de obiecte care ar putea s fi fost "incorect" grupate la un stadiu incipient. Rezultatul ar trebui s fie examinate cu atenie pentru a se asigura c are sens. Utilizarea de msurtori diferite la distan pentru msurarea distanelor ntre grupurile pot genera rezultate diferite. Efectuarea de experimente multiple i compararea rezultatelor, se recomand s susin veridicitatea rezultatelor originale.[6]
46
Procesul este oprit atunci cnd instanele sunt repartizate succesiv n acelai cluster de mai multe ori. n acest caz se consider c s-au stabilizat clusterele. n funcie de implementare parametrul k este predefinit sau este introdus de utilizator. Deoarece instanele sunt repartizate n clusterul de a crui centru este mai aproape centrele se vor stabiliza pe un minim. Pentru a elimina acest neajuns, algoritmul se va rula succesiv pe aceleai date, de fiecare alegnd alte centre de clustere iniiale. Un dezavantaj al algoritmului k-means este c procesul de clusterizare este greoi. La fiecare pas algoritmul trebuie s efectueze un numr mare de calcule pentru a determina distana dintre fiecare instan i fiecare centru. n plus algoritmul trebuie s efectueze un numr mare de iteraii: dup ce au fost alctuite clusterele, sunt recalculate centrele lor iar procesul este reluat. Din aceast cauz algoritmul este foarte lent. Pentru a diminua ct mai mult acest dezavantaj au fost gsite diverse metode de a scdea numrul de iteraii necesare i numrul de calcule efectuate.
limbaj interpretat si compilat. Un limbaj este interpretat daca instructiunile unui program
scris in acel limbaj sunt procesate linie cu linie si traduse in cod masina. Un limbaj este compilat daca un program scris in acel limbaj este tradus in cod masina (singurul limbaj pe care-l cunoaste un procesor). Programele interpretate sunt mai lente decat cele compilate, insa cele compilate sunt de obicei dependente de platforma respectiva. Rezultatul compilarii programelor Java (fisierelor cu extensia .java) sunt fisiere cu extensia .class ce contin cod executabil (Java bytecodes) pe masina virtuala java (JVM, Java Virtual Machine). Masina virtuala java este implementabila pe orice sistem de operare. Interpretorul java apeleaza masina virtuala pentru a traduce codul masina java in cod masina al procesorului de pe masina gazda.
47
limbaj orientat pe obiecte. Java cuprinde toate aspectele legate de programarea orientata obiect (Object Oriented Programming, OOP): obiecte, transmitere de parametri, incapsulare, clase, biblioteci, mostenire si modificatori de acces.
limbaj simplu. Simplitatea este o caracteristica primara a limbajului Java, in care se poate
face programere fara un antrenament foarte indelungat. Programatorii pot fi productivi chiar de la inceput. In comparatie cu cel mai puternic limbaj nativ orientat pe obiecte, C + +, este mai simplu prin urmatoarele trasaturi: elimina dificultatile de manipulare a sirurilor prin crearea unei clase dedicate. elimina dificultatile (si pericolele) legate de lucrul cu pointerii. alocarea si dealocarea memoriei se face automat printr-un mecanism de colectare a datelor si obiectelor nefolosite (garbage collection) si nu ca in C++ prin apel de functii. Eliberarea memoriei este executata intr-un fir de executie separat.
limbaj distribuit. Java este distribuit deoarece permite atat utilizarea obiectelor de pe
masina locala cat si de pe alte masini din reteaua mondiala printr-un mecanism numit RMI (Remote Method Invocation). Limbajul Java ofera posibilitatea dezvoltarii de aplicatii Internet, capabile sa ruleze pe platforme distribuite si eterogene. Java respecta standardul IEEE (eng. Institute of Electrical and Electronics Engineers) pentru structurile de date, cum ar fi folosirea intregilor, numerelor in virgula flotanta si sirurilor de caractere.
limbaj performant. Interpretorul Java este capabil sa execute un fisier cu extensia .class
aproape la fel de repede ca un cod compilat. Colectorul automat de obiecte si date neutilizate (The automatic garbage collector) ruleaza ca un fir de executie de prioritate scazuta asigurand, cu mare probabilitate, ca memoria este disponibila atunci cand este nevoie de ea, conducand astfel a o mare performanta a aplicatiilor Java.
limbaj dinamic si sigur. Limbajul si a sistemului de executie Java este dinamic in faza de
editare a legaturilor. Clasele sunt legate numai daca este necesar. Java este proiectat pentru a crea programe foarte sigure. El asigura verificari extensive in timpul etapei de compilare, urmate de un al doilea nivel de verificari care se fac chiar in timpul executiei.
48
limbaj robust cu trasaturi de securitate intrinseci. Java este proiectat pentru a opera in
medii distribuite, ceea ce inseamna ca securitatea este de maxima importanta. Cu trasaturi de securitate intrinseci limbajului si sistemului de executie (run-time system), Java permite construirea de aplicatii ce nu pot fi atacate (invadate) din exterior. In mediul de retea, aplicatiile scrise in Java sunt sigure in fata codurilor neautorizate care incearca sa se strecoare in spatele scenei si creaza virusi sau invadeaza sistemul de fisiere. Programele Java nu pot accesa memoria heap, stiva, memoria de cod, sau alte sectiuni protejate de memorie, deoarece Java nu foloseste pointeri si aloca memorie doar la executie. Inainte ca interpretorul sa execute codul Java, se verifica daca este un cod Java valid prin cercetarea accesului la date, conversiilor de date nepermise, valori si parametri incorecti, depasirea stivei, etc. Structura lexicala a limbajului Limbajului Java lucreaza n mod nativ folosind setul de caractere Unicode. Acesta este un standard international care nlocuieste vechiul set de caractere ASCII si care foloseste pentru reprezentarea caracterelor 2 octeti, ceea ce nseamna c se pot reprezenta 65536 de semne, spre deosebire de ASCII, unde era posibila reprezentarea a 256 de caractere. Primele 256 caractere Unicode corespund celor din ASCII, referirea la celelate facndu-se prin \uxxxx, unde xxxx reprezint codul caracterului.
49
Figura 3.5.1. Interfaa programului n figura de mai sus este arat interfaa simpl a programului.
50
Figura 3.5.2. Colecia de texte cu fisiere txt. n figura 3.5.2 este afiat colecia de texte cu care va lucra programul, este format din operele lui Mihai Eminescu i Ion Creang.
51
Figura 3.5.3. Rezultatele programului cu cei doi algoritmi n figura 3.5.3 este afiat rezultatul clusterizrii textelor folosind metoda K-means i KNN. n prima metoda K-means sunt luate cite 2 texte ai autorilor si se introduce clusterii dup care si clusterizeze textele. n a doua metod se efectuiaz clusterizarea automat a tuturor textelor din baz vizualizind numia clusterii intilnii cel mai des in texte dup fregven. Programul ncepe a lucra cnd este apasat butonul Start(startButton.setText("Start"); startButton.setBounds(5, 110, 100, 20);).n fereastra de mai sus este introdus ntrun anumit stil denumirea textelor care sunt ncrcate , autorul, si clusterii dup care s-i grupeze.
Algoritmul K-means descris pe pai n program: Pas1: Se precizeaz cte clustere va avea mprirea: acesta este parametrul k
52
Codul care prelucraez introducerea textelor i clusterilor pentru metoda K-means: for (int x = 0; x < mainMessage.length; x++) { //imparte fiecare linie dupa separatorul : parseEncoding = mainMessage[x].split(":"); // indentifica ce texte trebuie sa fie parsate files = parseEncoding[0].split(","); filesContent = new String[2]; Pas2: Sunt alese aleator k puncte care vor fi desemnate centrele clusterelor: C1,...,Ck //parseaaza lista de clustere introduse wordsList = parseEncoding[3].split(","); Dup ce a fost introduse datele se face ncrcarea textelor i cautarea clusterilor. Pas3: Instanele sunt repartizate n clusterul cu cel mai apropiat centru corespunztor distanei folosite.
// ciclul cauta in texte centrul textelor fiecarui cluster for (int i = 0; i < files.length; i++) { listOfAllFiles[y] = files[i]; try { //deschiide si citeste fisiere file = new FileReader("java/" + files[i] + ".txt"); bf = new BufferedReader(file); while ((line = bf.readLine()) != null) { filesContent[i] += line; } listOfAllFilesContent[y++] = filesContent[i]; } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e3) { e3.printStackTrace(); } }
Dup numarul de apariii ai clusterilor care au fost gsii n texte se introduc in variabila creat,si se afieaz ,se alege cel mai des intilnite, i grupreaz textele dupa clustere. Pas4: Pentru fiecare cluster format dup repartizarea tuturor instanelor se va calcula centorid-ul care este media instanelor din acel cluster // introduce in variabila cuvintele necesare care au fost detectacte in text
53
simpleWord = "Aceste cuvinte se repeta in toate textele a lui " + parseEncoding[1] + ". Aceste cuvinte Sunt : "; //parseaza lista de cuvinte care are acest text for (int i = 0; i < wordsList.length; i++) { Pas5: Centrul clusterului va fi nlocuit cu centroid-ul calculat la pas 4. // introduce in array toate cuvintele listofAllWords[h++] = wordsList[i]; access = false; for (int j = 0; j < filesContent.length; j++) { Pas6: Algoritmul este reluat de la pasul 2. //detecteaza daca acest text are aceste cuvinte if (filesContent[j].contains(wordsList[i])) { access = true; } else { access = false; } } // introduce datele in variabila if (access == true) { simpleWord += wordsList[i] + "\n"; } } ferest.sourcesText2.append(simpleWord); filesContent = null; } Pentru metoda Knn caut clusterii din lista introdus n toate textele din baz. Se consider distan dintre dou clustere ca fiind egal cu cea mai scurt distan dintre orice element al unui cluster i orice element al celuilalt cluster. Dac datele constau din similariti, se consider c similaritea dintre un cluster i altul este egal cu cea mai mare similariate dintre orice membru al unui cluster i orice element al celuilalt cluster. Calitatea clusterizrii metode KNN este cea mai mic din taote posibile. Algoritmul K-NN descris pe pai n program: Pas 1: primul cluster va fi format din prima instan i clusterizarea va conine 1 cluster. Pentru fiecare instan I din setul de date: //cauta clusterii in toate textele simpleWord = "\nIn urmatoarele texte au fost gasite coencidenta";
54
ferest.sourcesText2.append(simpleWord); y = 0; Pas 2: Caut cel mai apropiat vecin ) s fie cea mai mic; Pas 3: dac distana ( = Altfel dac distana( , ) prag: ,: ={ } , ) prag atunci instana Ii va fi inclus n clusterul ( , ) al instanei , astfel nct distana de la ( ,
Pas 4: se creaz un nou cluster: k = k + 1, alctuit din instana introdus in text for (int i = 0; i < listofAllWords.length; i++) { if(listofAllWords[i] == null) continue; mainSimpleList[i] = listofAllWords[i] + " : "; for (int j = 0; j < listOfAllFilesContent.length; j++) { if(listOfAllFilesContent[j] == null ) continue;
// ciclul executa fiecare cluster si cauta in fiecare text, in caz daca il gaseste el este
if(listOfAllFilesContent[j].indexOf(listofAllWords[i]) > 0 listOfAllFilesContent[j].contains(listofAllWords[i])){ mainSimpleList[i] += listOfAllFiles[j]+","; } } y++; } Afisarea rezulatelor pentru ambele metode:
||
55
Figura 3.5.8 Afiarea rezultatelor pentru metoda K-means //afisarea tututot rezultatelor for (int i = 0; i < mainSimpleList.length; i++) { if(mainSimpleList[i] == null) continue; mainSimpleList[i] = mainSimpleList[i].replace("null,",""); ferest.sourcesText2.append("\n"+mainSimpleList[i]); } } }); } } Aceast aplicaie a fost creat pe platforma java i are urmtoarele avantaje si dezavantaje. n continuare voi prezenta punctele forte i punctele slabe ale aplicaiei noastre. Avantajele aplicaiei sunt : Este uor manipulabil. Interfaa este simpl i poate fi uor neleas de utilizator. Are o vitez rapid de prelucrare a datelor. Se efectuiaz un control simplu a datelor. Afisarea errori in caz daca nu a fost depistat rezultatul. Dezavantajele aplicaiei sunt : Nu poate prelucra o baz de texte foarte mare n cazul algoritmului k-means. Calitatea clusterizrii este mic. Clusterizarea se face dup coordonate precise , coordonatele fiind cuvintele introduse,i clusterizarea fcnduse fr coordonatele care au acelai sens dar au preficse sau suficse .
Nu proceseaz n unele cazuri textele, din cauza ca un algoritm este foate lent si cellalt
rapid.
56
Acest program are anse mari s evolueze n viitor, cauza fiind modernizarea programului la nivel de analiz a cuvintelor pe care el l necesit , controlul erorilor care l va face s fie mai rapid i eficient n gruparea textelor.
57
CONCLUZII
Clusterizarea este o procedur foarte complex, depinznd de colecia creia i este aplicat, ct i de alegerea valorilor diferitor parametri. Clusterizarea textelor este atrgtoare prin aceea c scutete companiile i nu numai de necesitatea gruprii manuale a textelor i documentelor care poate fi destul de costisitoare sau imposibil de realizat din cauza restriciilor de timp sau a volumului prea mare de documentelor. Desi cercetare n domeniul clusterizrii documentelor este destul de dezvoltat mai sunt nca probleme deschise care necesit nca multa cercetare. Acestea includ dobndirea de raporturi mari bune calitate-complezitate, precum i efort n a trata cu dezavantajele fiecrei metode. Procesul de clusterizare are o gam larg de utilizare ncepnd de la explorarea datelor, cercetarea legturilor dintre date, segmentarea imaginilor, terminnd cu cercetarea stiinific n numeroase domenii precum biologie, marketing, etc. Ca scop de baza n elaborarea acestui proiect s-a atins urmtoarele puncte: Am studiat i analizat amnunit teoria din domeniu,cercetrile efectuate n domeniu i aplicaiile care deja sunt n spatiu internetului.. Am analizat algoritmii cei mai des folosii, i am comparat avantajele i dezavantajele clusterizrii ierarhice i partiionare. Am adaptat algoritmii K-means i K-NN din algoritmi pentru grafic n cei pentru text. Am elaborat un softul pentru a ntelege mai amnunit procesul de clusterizare , softul lucreaz cu un volum mic de texte. Pasul urmtor a proiectului are drept scop optimizarea algoritmilor i clusterizarea Web a documentelor n ciclul al II de studiu.
58
BIBLIOGRAFIE (n ordinea apariiei) 1. KRISHNA K, MURTY M. Genetic K-means algorithm. IEEE Transactions on Systems, Man and Cybernetics - Part B: Cybernetics. 1999;29:433439. doi: 10.1109/3477.764879. 2. COCIANU C., Supervised and Unsupervised Classification for Pattern Recognition Purposes, Revista Informatica Economic, nr.4 (40)/2006. 3. BANCILA E., RETELE INTERCONECTATE DE CALCULATOARE. Web mining., UNIVERSITATEA POLITEHNICA BUCURESTI, februarie 2007. 4. HARTIGAN, JOHN (1975). Clustering Algorithms. JOHN WILEY & Sons, Inc., New York. 5. CHRISTOPHER D. MANNING, PRABHAKAR RAGHAVAN AND HINRICH SCHTZE, Introduction to Information Retrieval, Cambridge University Press. 2008. 6. ANALIZA CLUSTER IN STUDII DE PROXIMITATE A SOMAJULUI NREGISTRAT LA NIVELUL JUDEELOR ROMNIEI LA NCEPUTUL CRIZEI ECONOMICE , Babucea Ana-Gabriela, Constantin Brncui din Trgu Jiu 2009. 7. CLOCOTICI VALENTIN, Intoducerea in statistica multivariat, Univeristatea Ioan Cuza Iai, 2007. 8. HARTIGAN, J. A. (1975). Clustering Algorithms. New York: Wiley. 9. Crin, Gh., Grigora, Gh.: Tehnici moderne de optimizare. Aplicaii n energetic (Modern Optimization Techniques. Applications in Power Systems), Casa de Editur VENUS, Iai, 2002. 10. MURTAGH, F. (1985). Multidimensional Clustering Algorithms, in COMPSTAT Lectures 4. Wuerzburg: Physica-Verlag (for algorithmic details of algorithms used). 11. ANDERBERG, M. R. (1973). Cluster Analysis for Applications. Academic Press: New York. 12. How Much Information?", UC-Berkley,2003,
13.
2006,
, , . 14. . , , Chip1. Ukraine, #10, 2003 15. Joshua Zhexue Huang, Michael Ng, Liping Jing, "Introduction to Text Clustering", 2006 J. Quinlan, "C4.5: Programs for Machine Learning", Morgan Kaufman, 1993. surse internet:
59
16. http://www.statistics.com/resources/glossary/h/hclusteran.php accesat la 04.03.2011 17. http://faculty.chass.ncsu.edu/garson/PA765/cluster.htm accesat la 06.03.2011 18. http://www.crmportals.com/hierarchical_cluster_analysis.pdf accesat la 06.03.2011 19. http://www.resample.com/xlminer/help/HClst/HClst_intro.htm accesat la 07.03.2011 20. http://www.improvedoutcomes.com/docs/WebSiteDocs/Clustering/Agglomerative_Hierarc
hical_Clustering_Overview.htm accesat la 08.03.2011
21. http://www.nlp.stanford.edu/IR-book/information-retrievalbook.html accesat la 09.03.2011 22. http://www.en.wikipedia.org/wiki/Cluster_analysis accesat la 014.04.2011 23. http://www.scribd.com/doc/55433625/16/ALGORITMUL-K-NEAREST-NEIGHBOURK-NN accesat la 17.04.2011
60