Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE DIPLOMǍ
Conducător ştiinţific
Prof. univ. dr. Czibula Gabriela
Absolvent
Codrean Florina
2012
Cuprins
Introducere .............................................................................................................................................. 4
1. Învățarea automată .............................................................................................................................. 6
1.1. Problematica învățării automate................................................................................................... 6
1.2. Învățarea supervizată ................................................................................................................... 7
1.2.1. Rețele neuronale.................................................................................................................... 8
1.2.2. Arbori de decizie ................................................................................................................... 9
1.2.3. Învățarea Bayesiană .............................................................................................................. 9
1.3. Învățarea prin întărire ................................................................................................................... 9
1.4. Învățarea nesupervizată .............................................................................................................. 11
1.4.1. Clustering ............................................................................................................................ 12
1.4.2. Rețele cu auto-organizare (SOM) ....................................................................................... 13
1.4.3. Învățarea Hebbiană ............................................................................................................. 14
2. Clustering .......................................................................................................................................... 15
2.1. Descriere .................................................................................................................................... 15
2.2. Formalizarea problemei ............................................................................................................. 16
2.3 Clasificarea tehnicilor de clustering ............................................................................................ 18
2.4. Măsuri de similaritate ................................................................................................................ 20
2.5. Metoda K-means ........................................................................................................................ 23
2.6. Metoda Fuzzy C-means ............................................................................................................. 25
2.7. Măsuri de calitate ....................................................................................................................... 27
3. Aplicații ale Analizei Cluster ............................................................................................................ 31
3.1. Domenii de aplicații ................................................................................................................... 31
3.1.1. Electroenergetică................................................................................................................. 31
3.1.2. Segmentarea pieței .............................................................................................................. 31
3.1.3. Probleme de recunoaștere de imagini ................................................................................. 31
3.1.4. Medicină ............................................................................................................................. 32
3.1.5. Web mining ......................................................................................................................... 32
3.2. Îmbunătățiri aduse tehnicilor de clustering. Hibridizare. ........................................................... 32
3.2.1. Clustering și agenți inteligenți în web mining .................................................................... 32
3.2.2. Clustering folosit în sisteme predictive ............................................................................... 33
3.2.3. Clustering în cadrul GIS (Geographical Information System) ............................................ 33
4. Prezentarea aplicației ........................................................................................................................ 35
4.1. Motivație .................................................................................................................................... 35
Concluzii ............................................................................................................................................... 36
Bibliografie ........................................................................................... Error! Bookmark not defined.
Introducere
1. Învățarea automată
Învăţarea nu se poate face pe baza unui set foarte mare de cunoştinţe, atât din cauza
costurilor mari, presupuse de acumularea unor baze de informaţii mari cât şi din cauza
complexităţii memorării şi prelucrării unui volum mare de informaţii. În acelaşi timp însă,
învăţarea trebuie să ducă la formularea de suficiente „reguli” atât cât să permită rezolvarea
unor probleme dintr-un spaţiu mai larg decât cel pe baza căruia s-a făcut învăţarea. Adică
învăţarea trebuie să îmbunătăţească performanţa unui sistem nu doar în rezolvarea repetată a
unui acelaşi set de probleme, ci şi în rezolvarea unor probleme noi. Acest lucru presupune o
generalizare a unei metode de rezolvare pentru a acoperi un număr cât mai mare de instanţe
posibile, dar şi păstrarea unei specializări suficiente pentru a fi identificate corect instanţele
acceptate. Aceasta se poate face fie inductiv, generalizând o problemă plecând de la un set de
exemple, fie deductiv, plecând de la o bază de cunoştinţe suficiente asupra universului
problemei şi extrăgând date şi reguli esenţiale. Pentru a putea face acest lucru, un algoritm de
învăţare trebuie să fie capabil să selecteze acele elemente semnificative pentru rezolvarea
unei instanţe viitoare a problemei. Aceasta alegere se face pe baza unor criterii de selecţie
numite diagonale inductive. [2][3]
În cadrul învățării automate se pot distinge trei mari direcții de cercetare și de tipuri
de învățare. Prima dintre ele este reprezentată de învățarea supervizată, care presupune
construirea unui model al datelor inițiale în care o parte dintre ele sunt explicative, etichetate,
iar una sau mai multe sunt neetichetate, considerate date de test. Cel de-al doilea tip de
învățare automată este învățarea prin întărire, care presupune oferirea unei recompense sau a
unei pedepse simulate, în funcție de anumite tipuri de comportamente ale sistemului, cu
ajutorul cărora sistemul învață un comportament așteptat. Ultima categorie, cea a învățării
nesupervizate, se aplică cel mai bine pe anumite probleme din viația reală, deoarece nu
necesită nicio etapă de antrenare, aplicându-se direct pe datele neetichetate. În continuare vor
fi prezentate cele trei tipuri de învățare. [4]
Scopul învăţării este construirea unei funcţii de tip şablon care să clasifice corect
instanţele date ca exemplu, iar pentru un x pentru care nu se cunoaşte f(x) să propună o
aproximare cât mai corectă a valorii f(x). Astfel, învățarea supervizată este echivalentă cu
optimizarea unei funcții de eroare care măsoară diferența dintre răspunsurile care ar trebui să
le producă sistemul și cele pe care le produce efectiv. [4]
Un arbore de decizie este una din cele mai utilizate structuri de reprezentare utilizate
în învăţarea automată. Pentru o instanţă specificată de un set de proprietăţi, arborele verifică
anumite proprietăţi pentru a naviga în interiorul său şi ajunge la o frunză care va fi eticheta
acelei instanţe. Fiecare nod intern al arborelui reprezintă un test făcut asupra uneia sau mai
multor proprietăţi ale instanţei, iar ramurile descendente din acel nod sunt identificate de
posibilele rezultate ale acelui test. Astfel, un arbore de decizie construieşte pentru o instanţă o
conjuncţie logică ce se verifică pentru proprietăţile instanţei şi formează un fel de
demonstraţie a clasificării făcute pe baza acelor proprietăţi. [4]
Totodată este necesar să încerce şi noi acţiuni care s-ar putea dovedi mai productive
decât cele testate până în prezent. În consecinţă, dilema explorare-exploatare se rezumă la
faptul că un sistem trebuie să exploateze cunoştinţele deja acumulate pentru a maximiza
recompensa, dar trebuie şi să exploreze noi acţiuni care s-ar putea dovedi mai bune decât cele
deja efectuate. Sistemul trebuie să încerce o varietate de acţiuni şi progresiv să le favorizeze
pe cele care par a fi mai bune. [2]
1.4.1. Clustering
Domeniul în care învăţarea nesupervizată s-a dovedit însă mai utilă este cel al
identificării automate de clase în mulţimi neclasificate de instanţe. Această problemă
presupune existenţa unei mulţimi de obiecte negrupate şi a unor mijloace de a găsi şi măsura
similarităţi între aceste obiecte. Scopul unui algoritm de identificare a unor clase de obiecte
este de a grupa obiectele într-o ierarhie de clase după criterii cum ar fi maximizarea
similarităţii obiectelor din aceeaşi clasă. Ierarhia de clase este reprezentată de obicei ca un
arbore, fii unui nod reprezentând categorii distincte dar incluse în categoria părinte. [6]
Metodele de clustering pot fi clasificate după modelele pe care sunt bazate, fiecare
dintre acestea putând genera diferite rezultate. În general, aceștia sunt împărțiți în două mari
categorii: tehnici bazate pe metode partiționale și tehnici bazate pe metode ierarhice. Totuși,
s-a ajuns în a se determina șapte clase principale în care pot fi clasificate problemele de
clustering, acesea fiind:
1) Metode ierarhice: care pot fi aglomerative sau divizive.
2) Metode partiționale: algoritmi de relocare, clustering probabilistic, metoda K-
means, metoda K-medoids, algoritmi bazați pe densități.
3) Metode bazate pe grid.
4) Clustering bazat pe constrângeri.
5) Metode evolutive de clustering: folosind algoritmi genetici.
6) Algoritmi scalabili de clustering.
7) Algoritmi bazați pe rețele neuronale.
Pentru a face acest lucru, apartenența la o anumită clasă este definită de anumiți
vectori de intrare care împărtășesc aceleași caracteristici, iar rețeaua trebuie să identifice
caracteristicile date în sfera vectorilor respectivi. Neuronii vor tinde să se ordoneze ca și cum
rețeaua neuronală ar ar reprezenta un sistem de coordonate pentru vectorii de intrare. Astfel,
este construită o hartă topografică artificială care învață prin auto-organizare într-o manieră
inspirată din neurobiologie. Obiectivul principal al unui SOM este de a transforma un model
de semnal de intrare de dimensiune arbitrară în una sau două hărţi dimensionale discrete.
Astfel, în cursul învățării, neuronii constituenți vor alege anumite modele sau clase de vectori
de intrare, iar locațiile lor vor deveni sisteme de coordonate pentru caracteristicile de intrare.
[2]
O altă tehnică folosită în învățarea nesupervizată este bazată pe legea lui Hebb,
formulată în 1949. Aceasta presupune tot existența unei rețele neuronale artificiale
nesupervizate, care însă este descrisă prin două condiții care privesc modul de declanșare a
neuronilor în cadrul realizării calculelor. Prima condiție se referă la faptul că dacă doi neuroni
sunt activați în același timp de către un stimul conținut în vectorul datelor de intrare atunci
poderea conexiunii dintre ei crește, iar ce-a de-a două condiție afirmă că dacă doi neuroni
sunt activați în contratimp, atunci ponderea conexiunii dintre ei scade. [2]
2. Clustering
2.1. Descriere
Prin clustering, termen provenit de la cuvantul din limba engleza cluster, care în
traducere înseamnă îngrămădire, sau fascicul, se înțelege metoda de a segmenta un set de date
(care pot fi înregistrări, vectori, instanțe) în mai multe grupuri (clusteri), pe baza unei anumite
similarități.[7] Tehnicile de clustering pot fi privite ca forme de învățare nesupervizată în care
datele de test sunt compuse dintr-un set de vectori de intrare cărora inițial nu le corespund
niciun set de vectori de ieșire [9]. Astfel, algoritmul primește doar date neetichetate, iar
sarcina acestuia este aceea de a găsi o reprezentare adecvată a distribuției datelor, urmând a fi
grupate în clusteri relevanți. Deosebirea dintre clustering și clasificare este aceea că aceasta
din urmă partiționează setul de date în grupuri care au fost definite anterior.
C i X
i 1
Există numeroase tipuri de clustering, bazate pe diferite metode, fiecare dintre acestea
putând genera ca și rezultat diferite moduri de a grupa datele. O posibilă clasificare este aceea
de a împărți algoritmii de clustering în două mari categorii: tehnici de clustering bazate pe
partiționarea datelor și tehnici de clustering bazate pe metode ierarhice. De asemenea, există
și algoritmi mai noi care se pot grupa în algoritmi bazați pe densitate, bazați pe grid sau
bazați pe modele. Clasificarea algoritmilor de clustering nu este simplă, deseori se ajunge la
concluzia că unele categorii de algoritmi se suprapun. Pe lângă tehnicile enumerate mai sus,
se pot aminti: algoritmi de clustering bazați pe constrângeri, bazați pe grafe, algoritmi
scalabili, algoritmi speciali pentru date cu multe dimensiuni. În cadrul învățării automate, au
apărut și metode evloutive de clustering și unele care folosesc rețele neuronale. [6]
Algoritmii ierarhici structurează setul de obiecte creând o ierarhie. Există două tipuri
de abordări: aglomerativă și divizivă. În cadrul abordării aglomerative, sau “bottom-up”,
fiecare obiect este asignat unui cluster, iar apoi clusterii se unesc pe baza unor măsuri de
similaritate până când o anumită condiție este îndeplinită și s-au găsit un anumit număr de
clusteri. Abordarea divizivă este una de tipul “top-down”, unde la început se consider că toate
entitățile aparțin unui singur cluster, iar la fiecare iterație care urmează, fiecare cluster se
divide în clusteri mai mici până când o condiție e satisfăcută.
Pentru a determina similaritatea dintre două obiecte se pot utiliza diferite tipuri de
măsuri de similaritate, alese în funcție de natura datelor și de scopul propus. [7]
Pentru p=1 se obține distanța Manhattan (taxi cab sau city block):
2. Măsura cosinus (Cosine): este relativă la cosinusul unghiului dintre cei doi
vectori:
3. Măsura Tanimoto:
4. Măsura Mahalanobis:
Fiind dată o mulțime de instanțe, fiecare dintre ele fiind caracterizată de un set de
atribute și având la dispoziție o măsură de similaritate, se pune problema de a le împărți în
grupuri astfel încât: obiectele care aparțin aceluiași cluster sunt asemănătoare între ele, iar
obiectele care aparțin unor clusteri diferiți sunt mai puțin asemănătoare. [6]
Pe lângă aspectul măsurării distanței (similarității) dintre obiectele care trebuie
clasificate, mai există și problema maximizării distanței inter-clustere, astfel avem nevoie de
definirea unei distanțe între două clustere. Pentru a rezolva această problemă se pot folosi
următoarele metode:
- Legătura unică (single linkage – nearest neighbor): distanța între două clustere
reprezintă minimul distanței între oricare două obiecte din acele clustere;
- Legătura medie (average linkage – unweighted pair-group average): distanța
dintre două clustere e dată de media distanțelor dintre obiectele celor două
clustere luate perechi;
- Legătura completă (complete linkage – furthest neighbor): dată de maximul
distanței dintre oricare două obiecte care aparțin celor două clustere.
- Centroid method (unweighted pair-group centroid): distanța dintre clustere
este dată de distanța dintre centroizii lor (centrele lor de greutate).
- Ward’s method: distanța este evaluată prin analiza dispersiilor.
Tehnica celor K-medii, cunoscută și sub denumirea K-means este unul dintre cei mai
simpli algoritmi de învățare nesupervizată care rezolva bine problemele de clustering.
Procedeul urmează o cale simplă și ușoară pentru a clasifica setul datelor de intrare într-un
număr de K grupuri (clustere). Varianta clasică a acestui algoritm presupune ca numărul K de
clusteri să fie cunoscut dinainte. Ideea de bază este aceea de a defini K centre de greutate,
numite centroizi, câte unul pentru fiecare cluster. Aceste centre de greutate trebuie fixate
rațional, deoarece locații diferite pot conduce la rezultate diferite. Alegerea cea mai bună este
să le fixăm cât mai depărtate unele de altele. Următorul pas este luarea pe rând a fiecărui
element din setul de date de intrare și asocierea acestuia celui mai apropiat centroid. Prima
etapă a grupării se termină atunci când nu mai există elemente negrupate. În acest moment e
necesar să fie calculate noii K centroizi pentru clusterii determinați în pasul anterior. Procesul
continuă până în momentul în care pozițiile noilor centroizi nu se mai modifică
semnificativ.[6]
K-means este unul dintre cei mai simpli algoritmi din învățarea nesupervizată, cu
rezultate bune obținute în urma rezolvării unor binecunoscute probleme de clustering. În
procedura clasică, setul de date se dorește a fi împărțit în K grupuri fixate dinainte. Ideea
principală este aceea de a defini K centroizi, câte unul pentru fiecare cluster. În acest caz,
modul de plasare a centroizilor în spațiul de căutare este crucial, deoarece plasarea lor în
diferite locații poate genera rezultate diferite.[7] Privind setul de date inițial ca un grup de
entități, vom avea entitățile, împreună cu vectorii de caracteristici corespunzători care se vor
clasifica în cele k grupuri diferite. O entitate i, i 1, n va fi atribuită unui grup Cj, j 1, k cu
centroidul Kj care este cel mai apropiat de acest vector, iar Kj este actualizat după fiecare
1
atribuire, folosind formula: K j K j ( z i K j ) , unde nrj reprezintă numărul de entități
nr j
care aparţin grupului Cj (dimensiunea clusterului). În problema clasică în care se folosește
K-means cei k centroizi se inițializează fie cu valori generate aleator, din domeniul de
definiție al problemei, fi cu k dintre entitățile setului de date, alese tot în mod aleator.
Algoritmul prezintă unele dezavantaje, dintre care cele mai importante sunt:
- Modul în care se face inițializarea celor K centroizi nu este specificat.
O metodă simplă de inițializare este alegerea în mod aleator a K puncte
din spațiul multidimensional de care aparțin datele de intrare, dar din
cauza acestui fapt, între aplicări succesive ale algoritmului se pot obține
rezultate foarte diferite.
- Numărul de clusteri trebuie cunoscut dinainte, fapt care în aplicarea
practică este puțin probabil. Pentru evitarea acestei probleme se pot
folosi anumite euristici care aproximează numărul de clusteri pe baza
unor caracteristici ale setului de date de intrare.
- Rezultatul final depinde de pozițiile inițiale ale celor K centroizi și se
poate întâmpla ca din această cauză rezultatele generate să nu fie cele
optime. O soluție clasică pentru eliminarea acestui dezavantaj o
reprezintă alegerea repetată a mai multor variante de poziționare a
centroizilor inițiali.
- Căutarea tinde să rămână în jurul optimului local, găsirea optimului
global fiind o problemă NP-completă.
- Se poate întâmpla ca în cadrul unui cluster, elementele să fie foarte
apropiate de centroid, iar poziția acestuia să nu mai poată fi modificată.
- Rezultatul final depinde foarte mult de metrica folosită la măsurarea
distanței. Acest fapt se poate elimina prin încercarea de a normaliza
fiecare variabilă, însă acesta nu reprezintă întotdeauna un lucru
oportun.
- Rezultatul final depinde de numărul K de clusteri
Tehnica fuzzy a celor c medii (Fuzzy C-means) este o tehnică de clustering care
permite unui element din setul de date să aparțină cu un anumit grad de apartenență, la una
sau mai multe grupe. În analiza non-fuzzy, sau hard clustering, informația este divizată în
clustere crisp, unde fiecare entitate aparține unui singur cluster.[6] Asocierea unui obiect cu
un cluster se face cu ajutorul gradelor de apartenență:
unde: X {x1 , x2 ,..., xn } este mulțimea entităților, fiecare având câte m caracteristici;
K {K1 , K 2 ,..., K k } este mulțimea centroizilor, unde k este numărul de clusteri; orice metrică
folosită pentru calculul distanței dintre un element și centroidul unui cluster se notează cu
; m – gradul de fuzzyficare, cu o valoare cuprinsă în intervalul , folosit
pentru a controla diferențele dintre gradele de apartenență. Nu există nici o bază teoretică
unde
3) Calcularea centroizilor Kj folosind formula:
Astfel, entitățile din setul de date de intrare sunt atașate unui cluster prin intermediul
valorii medii corespunzătoare funcției de apartenență. Din această cauză se folosește matricea
U, a cărei elemente sunt numere între 0 și 1, care reprezintă gradul de apartenență dintre o
entitate și un anumit centroid. [6]
unde nri este numărul de elemente determinate pentru clusterul Ci, iar nr –
numărul real de elemente din acel cluster.
- Precizia: este probabilitatea ca o entitate să fie plasată în clusterul
corespunzător. [13]
unde C este clusterul curent, nrC reprezintă numărul de entități din cluster, K
este centroidul lui C și xi o entitate. Astfel, această măsură exprimă gradul de
similaritate dintre elementelor unui cluster. Compactitatea se mai numește și
distanță intra-cluster și poate lua valori din intervalul , cu cât valoarea
sa e mai mică, cu atât rezultatul este mai bun.
unde este distanța dintre cei doi clusteri, care poate fi considerată
la alegere, de exemplu .
Acest index caută echilibrul între compactitate și separabilitate, astfel încât
gradul de împrăștiere a datelor în cadrul spațiului de căutare să fie mic,
căutându-se minimizarea lui.
- Indexul Dunn: se bazează pe ideea de a identifica seturi de clusteri, care sunt
compacte şi bine separate. Scopul principal al măsurii este de a maximiza
distantele inter-cluster şi a minimiza distantele intra-cluster:
Chiar dacă aceste tipuri de măsuri interne ale calității se folosesc destul de mult,
acest domeniu de cercetare este încă la început, datorită faptului că rezultatele pot varia destul
de mult. În anumite cazuri, aceste metrici pot ignora tendințele majoritare de grupare a
entităților în clusteri, descoperind doar entități izolate care pot schimba uneori radical măsura
de calitate generală. [6][13]
3. Aplicații ale Analizei Cluster
Analiza cluster este folosită în numeroase domenii academice, precum bilogia (în
cadrul grupării speciilor de animale), lingvistica (gruparea dialectelor), medicină,
neuroștiințe, segmentarea pieței, marketing, sisteme de recomandare sau cercetare
educațională.
3.1.1. Electroenergetică
3.1.4. Medicină
Pentru a elimina limitările anumitor tehnici de clustering, cum ar fi Fuzzy C-Means, s-a
încercat dezvoltarea unor algoritmi hibrizi. Astfel, s-a combinat Fuzzy C-Means, care e un
algoritm rapid, însă e sensibil la datele de inițializare, la fel ca si K-Means, cu Rețele
Neuronale multistrat și cu Algoritmi Genetici. Modelul rezultat, Genetic Fuzzy Neural
Network (GFNN) a fost folosit pentru crearea unui model utilizat la predicția falimentului
unor instituții și investitori, pe baza analizelor financiare. Rata de predicție corectă a
sistemului bazat pe algoritmul hibrid fiind de 98.33%.[17]
Sistemul GIS (Geographical Information System) a fost introdus în anul 1960 și este
utilizat la studiul căilor de comunicație, planificarea dezvoltării managementului localităților,
managementul datelor spațiale, a rețelelor publice de apă, canalizare, electricitate, dar putând
fi folosit și la localizarea și monitorizarea vehiculelor publice. Conceptual, GIS reprezintă o
stivă de hărți, în cadrul căreia fiecare strat este corelat cu celelalte. Acest tip de sisteme dețin
baze de date hibride, unde informațiile sunt atât atribute de diverse tipuri, cât și informații
spațiale.
Bazele de date folosite în cadrul GIS sunt complexe și foarte mari din perspectiva
numărului de obiecte existente, atribute sau caracteristici spațiale. Un astfel de sistem este
conceput în așa fel încât să poată accesa o bază de date sub formă de hărți, care pot fi
suprapuse, combinate sau analizate, fiind caracterizate de obiecte geometrice. Legăturile
dintre obiectele care sunt situate în același strat sau în straturi diferite pot fi extrem de
complexe mai ales datorită atributelor care implică proprietăți geometrice, topologice sau
semantice. Este imposibil ca un utilizator să poată identifica anumite informații greu de
descoperit în interiorul unei astfel de baze de date din cauza complexității acesteia, iar acesta
este motivul pentru care au fost introduse metode de clustering pentru identificarea unor
atribute necunoscute anterior, în scopul generalizării acestora. Acest tip de abordare este
relativ nou, introdus mai întâi de Jiang în lucrarea [18].
Jiang a utilizat tehnici de clustering pentru identificarea caracteristicilor cartografice
necesare întocmirii unui sistem GIS. Atributele elementelor inițiale au fost coordonatele
geometrice x și y, astfel încât procesul de generalizarea a implicat doar proprietățile
geometrice ale elementelor. Baza de date a cuprins 179 de obiecte, iar pentru determinarea
caracteristicilor necesare pentru procesul de generalizare s-au folosit două tehnici de
clustering: K-means și clustering ierarhic. În urma aplicării metodei K-means au fost obținute
100 de grupuri, iar modelele rezultate în urma procesului de determinare de caracteristici
generale au respectat poziționarea spațială a obiectelor din baza de date. În urma aplicării
clusteringului ierarhic, pentru baza de date inițială s-a observat că cea mai bună metodă
metodă a fost cea a distanței medii (average linkage), iar cea mai bună măsura pentru a
reflecta dinstanța dintre obiecte a fost distanța Euclidiană. [11]
4.1. Motivație
3. Nilsson, Nils J. Introduction to Machine Learning: an early draft of a proposed textbook. Stanford :
s.n., 1998.
4. Russel, Stuart J. și Norvig, Peter. Artificiall Inteligence A Modern Approach. New Jersey : Alan Apt,
1995.
5. Analyzing Animated Movie Contents for Automatic Video Indexing. Ionescu, B., și alții. 2011,
Machine Learning Techniques for Adaptive Multimedia Retrieval: Technologies Applications and
Perspectives.
6. Gan, G., Ma, C. și Wu, J. Data Clustering: Theory, Algorithms and Applications. Philadelphia :
SIAM, 2007.
9. Hapgood, Adrian A. Intelligent Systems for Engineers and Scientists. Boca Raton, Florida : CRC
Press LLC, 2000.
10. Pop, Horia F. Sisteme inteligente în probleme de clasificare. Cluj-Napoca : Mediamira, 2004.
12. SciKits. 4.2. Clustering - scikits.learn v0.8 documentation. scikit-leanr: machine learning in
Python. [Interactiv] 1 January 2011. [Citat: 23 May 2012.] http://scikit-
learn.org/0.8/modules/clustering.html.
13. Ongoing Research in Document Classification at the "Lucian Blaga" University of Sibiu.
Crețulescu, R. G. Delft : s.n., 2011. the 5th International Symposium on Intelligent Distributed
Computing IDC2011.
15. Frank, A și Asuncion, A. UCI Machine Learning Repository: Iris Data Set. UCI Machine Learning
Repository. [Interactiv] 2010. http://archive.ics.uci.edu/ml.
16. Park, Jung-Eun și Oh, Kyung-Whan. Multi-Agent Systems for Intelligent Clustering. s.l. : World
Academy of Science, Engineering and Technology, 2005.
17. Martin, A., și alții. A hybrid model for bankruptcy prediction using Genetic Algorithm, Fuzzy C-
Means and MARS. International Journal on Soft Computing ( IJSC ). Bhangalore : s.n., 2011.
18. Jiang, B. Spatial Clustering forMining Knowledge in Support of Generalization Processes in GIS.
Leicester : ICA, 2004.