Documente Academic
Documente Profesional
Documente Cultură
Prin clusterizare se identifică grupările naturale ale datelor. Cea mai mare parte a lucrărilor
publicate în analiză de cluster menționează posibilitatea utilizării următoarelor tipuri de algoritmi:
- algoritmi ierarhici;
- algoritmi de partiționare (kMeans)
- algoritmi de tip grid (OptiGrid , OCluster)
- algoritmi bazați pe densitate - DBSCAN, DENCLUE, EM (Expectation Maximization)
În Oracle Data Mining sunt implementați algoritmii kMeans și OCluster.
Algoritmul K-Means
K-Means [MacQueen] este un algoritm de clasificare nesupervizată bazat pe o idee simplă,
pornind de la un număr prestabilit de grupe (k). Ideea constă în a defini de la început, k centrii de
grupă, câte unul pentru fiecare grupă. Modul în care sunt aleși acești centrii este important,
deoarece influențează numărul de iterații ulterioare. După alegerea inițială a centrilor urmează un
proces iterativ de ajustare a pozițiilor acestora astfel încât fiecare centru să grupeze în jurul său cele
mai apropiate instanțe. Funcția obiectiv urmărită la fiecare iterație este:
Min d x , c ,
n
F 2
i hi
h i 1
unde xi este instanța clasificată, n este numărul de instanțe, hi este grupa în care se repartizează
instanța xi, c hi este centrul grupei hi, iar d 2 xi , chi este distanța dintre centrul grupei hi şi instanța
xi.
Algoritmul este unul de tip Greedy şi cuprinde următorii pași:
Pasul 1. Alegerea celor k centrii de grupă inițiali
Pasul 2. Crearea celor k grupe prin alocarea fiecărei instanțe acelei grupe, fată de centrul căreia
este cel mai aproape
Pasul 3. Recalcularea centrilor în raport cu noua componență a grupelor
Pasul 4. Reluarea algoritmului cu pasul 2 dacă centrii s-au deplasat
La pasul 4 se calculează distanța dintre centrii noi și centrii vechi astfel:
k
D d (c rj c rj 1 ) ,
j 1
Procedure KMeans(X,k;h)
array X(n,m),h(n),G(k,m),C(k,m)
// X - matricea de observatii
// n - numărul de instanțe, m - numărul de variabile
// k - numărul de clustere
// G și C - matrice ale centrilor de cluster
// h - vectorul ierarhie, h(i) reprezintă clusterul din care va face parte instanța i
// Se calculează matricea centrilor inițiali
call InitCenters(X;C)
do
// Se determina clusterii in conformitate cu centrii existenți
call Clusters(X,C;h)
// Se recalculeaza centrii
call Centers(X,h;G)
// Se calculeaza deplasarea centrilor
call dist(G,C;d)
C=G
while d>eps
return
end
Procedure BisectingKMeans(X,k;L)
// L este lista-ierarhie alcătuita din vectori de numere naturale, câte un vector pentru fiecare cluster,
fiecare vector conținând indicii indivizilor aparținători clusterului
List[] L
array X(n,m)
// Primul cluster adăugat listei este clusterul format din intreaga colectivitate
call Add(L,{1,2,...,n})
// La fiecare pas un cluster este spart in doua clustere
for i=1,k-1
// Aplicarea unui principiu de extragere a clusterului divizat. Rezultatul, l, este un vector
// din L reprezentând clusterul selectat
call Select(X,H;l)
// Se selectează matricea de observații Y formată din acele linii din X care corespund
clusterului l
call SelectTable(X,l;Y)
//Se aplică algoritmul kMeans clasic pentru divizarea clusterului l în două clustere
call kMeans(Y,2;h)
//Sunt determinați vectorii de indici ai celor două clustere pe baza vectorului partiție h
call split(h;l1,l2)
// Este eliminat clusterul l
call remove(L,l)
//Sunt adăugate noile clustere
call add(L,l1);call add(L,l2)
endfor
return
end
Algoritmul O-Cluster face parte din categoria algoritmilor de clusterizare de tip grid. Este
o implementare perfecționata a algoritmului OptiGrid [Alexander Hinnerburg, Daniel Kleim,
1999] si se bazează pe conceptul de proiecție a datelor (contracting projection) într-un spațiu
unidimensional sau bidimensional. Algoritmul construiește recursiv partiții ale datelor cu ajutorul
unor plane despărțitoare care traversează setul de date in zone de mică densitate. Zonele de mică
densitate, denumite văi (valleys) sunt intercalate de zone de densitate mare denumite vârfuri
(peaks).
Specificități O-Cluster [Boriana L. Milenova, Marcos M. Campos, 2001] :
- Propune utilizarea testelor statistice pentru validarea calității planelor despărțitoare;
- Operează pe un set mai mic de date, obținute ca eșantion la setul de bază. Acest lucru este
implementat cu ajutorul unui buffer a cărui dimensiune poate fi parametrizată.
Figura 1. Proiecție pe o axă fără identificare de puncte vale
Un plan despărțitor, numit și hiperplan, este un hiperplan m-1 dimensional (m este dimensiunea
y1
m
spațiului) format din toate punctele y = care verifică ecuația hiperplanului
... wi yi =1.
y m i 1
Pentru identificarea celui mai bun hiperplan (identificarea valorilor wi, i = 1,m), O-Cluster
calculează histogramele pentru toate intervalele de grupare, identificând astfel ariile de joasă
densitate și cele de înaltă densitate. Punctele vale sunt încadrate de două puncte vârf. O-Cluster
încearcă să găsească o pereche de vârfuri cu o vale între ele, pentru care diferența dintre vârfuri și
vale este semnificativă statistic. Semnificația statistică este testată utilizând un test χ2, astfel:
2o e
2
χ=
2
2 ;1 ,
e
unde χ valoarea calculată, o este valoarea histogramei pentru punctul vale, e este media dintre
2
punctul vale si cel mai mic dintre punctele vârf iar 2;1 este 2 critic calculat pentru un grad de
libertate și un prag de semnificație α.
Un punct vale valid este calculat pentru o anumită valoare a pragului de semnificație. De exemplu,
χ2 calculat mai mare decât 02.05;1 . O partiție este considerată activă dacă are puncte vale valide.
Numai partițiile cu puncte vale valide pot fi divizate și vor fi divizate după punctul vale cu cea mai
mare valoare χ2. Dacă o partiție nu are puncte vale active, dar are puncte vale cu χ2 calculat pentru
o valoare mai mare a pragului de semnificație (de exemplu 02.1;1 ), aceasta este considerată
"ambiguă". Punctele vale respective sunt numite puncte vale candidat. Algoritmul funcționează pe
un eșantion în conformitate cu bufferul stabilit prin parametrizare. Pentru a putea fi divizată, o
partiție ambiguă este completată cu noi instanțe din afara eșantionului. Partițiile care nu sunt nici
active nici ambigue sunt eliminate din bufferul de prelucrare.
Fluxul de prelucrare O-Cluster este următorul:
Încarcă buffer
Efectuare proiecție
DA
Exista puncte
Divizare
vale valide?
DA
Exista puncte
vale candidat? Reîncarcă buffer
În tabelul următor sunt sintetizate diferențele și asemănările dintre cei doi algoritmi de
clusterizare implementați în Oracle Data Miner.
Caracteristici K - Means O-Cluster
Caracteristici Calculele utilizează distanțe Se identifică zone de mică
ale metodei de dintre indivizi densitate în spațiul indivizilor
grupare
Număr de Nedefinit Mai mare de 500
instanţe
Număr de Mai potrivit tabelelor cu Număr mare de atribute
atribute număr mic de atribute
Număr de Specificat de utilizator Detectat de algoritm
clustere
identificate
Algoritm Da Da
ierarhic
Atribuire Da Da
probabilistică
la clustere