Sunteți pe pagina 1din 6

Invat, are Automata - Laboratorul 1

Grupare. Algoritmul K-Means


Tudor Berariu
tudor.berariu@gmail.com
Laboratorul AIMAS
Facultatea de Automatica s, i Calculatoare
Universitatea Politehnica Bucures, ti

23 februarie 2016

1 Scopul laboratorului
Scopul laboratorului l reprezinta nt, elegerea s, i implementarea unei metode de nvat, are ne-
supervizata pentru grupare (engl. clustering): algoritmul K-Means.
Structura documentului este urmatoarea. Sect, iunea 2 prezinta contextul teoretic s, i for-
malizeaza problema ce se dores, te rezolvata. Sect, iunea 3 descrie n detaliu algoritmul K-
Means. Sect, iunea 4 enumera cateva dintre limitarile algoritmului K-Means s, i ofera cateva
solut, ii simple pentru depas, irea acestora. Una dintre aceste probleme se refera la important, a
centroizilor init, iali, iar Sect, iunea 5 descrie cateva metode avansate pentru alegerea acestora.
Sect, iunea 7 cont, ine cerint, ele ce trebuie rezolvate n cadrul laboratorului, datele folosite
pentru testare fiind descrise n Anexa B.

2 Problema
Una dintre problemele fundamentale ale nvat, arii automate o reprezinta identificarea grupu-
rilor (engl. clusters) ntr-un set de obiecte astfel ncat obiectele din acelas, i grup sa prezinte
un grad mare de similaritate. Aceasta problema de nvat, are nesupervizata se numes, te cluster
analysis.
Problema gruparii se poate formaliza n diferite feluri, existand mai multe abordari.
In acest laborator vom rezolva problema gruparii bazate pe centroizi (engl. centroid-based
clustering).
Se considera un set de date X = {x1 , . . . xN } ce cont, ine N exemple ntr-un spat, iu D-
dimensional. Scopul este obt, inerea unei partit, ii a setului de date n K grupuri reprezentate
prin K vectori prototip ck , 1 k K, numit, i centre sau centroizi, astfel ncat distant, a

1
totala de la fiecare exemplu la cel mai apropiat centroid (Formula 1) sa fie minima.
N X
X K
J= ini,k ||xi ck ||2 (1)
i=1 k=1

1 daca k = argmin||xi cl ||2
ini,k = l (2)
0 altfel

3 Algoritmul K-Means
Algoritmul K-Means [M+ 67] pornes, te de la un set de K centroizi ales, i aleator din setul de
obiecte. Se repeta alternativ urmatorii doi pas, i pana cand algoritmul converge:

1. Se parcurg toate obiectele din setul de date s, i fiecare dintre acestea este alocat grupului
corespunzator celui mai apropiat centroid.

2. Se recalculeaza centroidul fiecarui grup.

Algoritmul converge atunci cand n urma unei iterat, ii nu s-a modificat component, a gru-
purilor.

Algoritmul 1 Algoritmul K-Means


1: funct, ia K-Means(X, K)
2: pentru k 1 . . . K executa
3: ck rand(X) . centroizii init, iali se aleg aleator din setul de date
4: repeta
5: pentru i 1 . . . N executa
1 daca k = argmin||xi cl ||2
6: ini,k l . exemplul este asociat celui mai
0 altfel
apropiat grup
7: pentru k 1 . . . K executa
N
X
ini,k xi
i=1
8: ck N
. ck devine media tuturor exemplelor din grupul k
X
ini,k
i=1
9: pana cand algoritmul converge

Pentru a nt, elege de ce algoritmul K-Means gases, te un minim al expresiei J (Formula 1),
trebuie observat ca cei doi pas, i optimizeaza succesiv parametrii ini,k s, i ck .

1. Fixand ck , se recalculeaza ini,k conform ecuat, iei 2.

2
2. Fixand ini,k , un minim al expresiei J se gases, te n punctul n care derivata este zero:
N
X
ini,k (xi ck ) = 0 (3)
i=1

4 Limitari ale algoritmului K-Means


Algoritmul K-Means prezinta cateva limitari importante.

1. Numarul de grupuri K trebuie cunoscut a priori.

Daca acest numar nu este cunoscut, se poate rula algoritmul pentru diferite valori
ale lui K s, i se poate alege o partit, ie convenabila. Altfel, se poate alege o alta
metoda de grupare, de exemplu o strategie de grupare ierarhica.

2. Algoritmul converge catre un minim local.

Nu exista o metoda tractabila care sa garanteze un minim global. In practica


se obis, nuies, te rularea algoritmului de mai multe ori s, i pastrarea celui mai bun
rezultat.

3. Rezultatul algoritmului depinde de alegerea centroizilor init, iali.

Exista mai multe strategii pentru alegerea centroizilor init, iali (ck , 1 k K),
doua dintre acestea fiind descrise n Sect, iunea 5.

5 Alegerea centroizilor init, iali


In algoritmul clasic K-Means cei K centroizi init, iali se aleg aleator din mult, imea obiectelor
din setul de date. In continuare sunt descrise doua ret, ete mai bune pentru acest pas.

5.1 Algoritmul K-Means++


Algoritmul K-Means++ [AV07] reprezinta o varianta mbunatat, ita a algoritmului K-
Means n care centroizii init, iali sunt ales, i dupa cum urmeaza. Primul centroid c1 se alege
aleator din setul de date. Urmatorii K 1 se aleg succesiv dintre obiectele din setul de date
cu o probabilitate
D(xi )2
pi = X
D(x)2
xX

pentru fiecare obiect xi X, unde D(x) este distant, a cea mai mica dintre obiectul x s, i un
centroid deja ales.

3
5.2 Metoda Kaufman
In [PLL99] s-au testat pe diferite seturi de date mai multe metode de init, alizare a centroizilor
pentru algoritmul K-Means. Rezultatele au aratat ca una dintre cele mai bune metode este
cea propusa de Kaufman. Se alege ntai cel mai central obiect din setul de date, iar apoi se
adauga succesiv acele obiecte care strang n jurul lor cel mai mare numar de elemente.

Algoritmul 2 Algoritmul Kaufman pentru alegerea centroizilor int, iali


1: funct, ia kaufman(X, K)
2: c1 cel mai central exemplu din X
3: pentru k 2 . . . K executa
4: pentru xi X executa
5: pentru xj X \ {x} executa
6: dj min ||cl xj ||
l1...k1
7: cij max(dj ||xi xj ||, 0)
X
8: gi cij
j

9: idx argmaxgi
i
10: ck xidx . se alege x pentru care G este maxim

6 Evaluarea unei grupari


Nu exista o ret, eta unica pentru evaluarea unei grupari realizate pentru un set de date.
In general, metricile t, in cont de faptul ca exemplele dintr-un grup trebuie sa fie cat mai
apropiate / similare, iar cele din grupuri diferite trebuie sa fie cat mai diferite.
Daca sunt cunoscute clasele reale (precum ntr-o problema de nvat, are supervizata),
atunci evaluarea se poate face mai us, or. Dintre metodele existente, este descrisa n continuare
Rand Index.

6.1 Rand Index


Fiind date o grupare C s, i valorile reale T ale claselor din care fac parte obiectele dintr-un
set de date, definim:
T P numarul de perechi i, j care sunt n acelas, i grup n C s, i au aceeas, i clasa n T ;
F P numarul de perechi i, j care sunt n acelas, i grup n C, dar sunt n clase diferite n T ;
F N numarul de perechi i, j care sunt n grupuri diferite n C, dar au aceeas, i clasa n T ;
T N numarul de perechi i, j care sunt n grupuri diferite n C s, i au clase diferite n T .
Metrica Rand Index este definita n Formula 4:
TP + TN
R= (4)
TP + FP + FN + TN
Evident, 0 R 1.

4
7 Cerint, e
In cadrul acestui laborator trebuie rezolvate urmatoarele cerint, e:

1. [6 puncte] Implementat, i ntr-un limbaj de programare la alegere algoritmul K-Means


descris n Sect, iunea 3.

2. [2 puncte] Implementat, i metrica Rand Index descrisa n Sect, iunea 6.1.

3. [2 puncte] Testat, i algoritmul implementat s, i eficient, a acestuia pe seturile de date din


arhiva. O descriere a acestora se gases, te n Anexa B. Explicat, i de ce pe unele seturi
de date rezultatele sunt nesatisfacatoare.

4. [2 puncte] Implementat, i unul dintre cei doi algoritmi prezentat, i n Sect, iunea 5:

metoda Kaufman pentru alegerea centroizilor init, iali sau


algoritmul K-Means++.

Comparat, i gruparile obt, inute astfel cu cele obt, inute cu algoritmul K-Means. Este
utila init, ializarea atenta a centroizilor?

Putet, i folosi funct, iile pentru citirea datelor s, i pentru afis, area grafica a unei grupari din
scheletul de cod (descris n Anexa ??).

A Seturi de date
In cadrul acestui laborator vet, i folosi seturile de date FCPS 1 (Fundamental Clustering
Problem Suite) ale Philipps Universitat Marburg. Acestea se gasesc n arhiva FCPS.zip.
Pentru fiecare set de date vet, i gasi urmatoarele fis, iere n subdirectorul 01FCPSdata:

<nume>.lrn - setul de date cu un id pentru fiecare obiect,

<nume>.cls - clasele reale ale obiectelor.

Coloanele sunt separate prin TAB.


De asemenea n directorul 02Documentation se gasesc reprezentari grafice ale seturilor
de date.

B Scheletul de cod
Funct, ia getArchive descarca arhiva FCPS.zip daca aceasta nu este n directorul curent s, i
ntoarce un obiect de tipul ZipFile.
Funct, ia getDataSet primes, te obiectul de tip ZipFile s, i numele setului de date dorit
(e.g. Atom) s, i ntoarce o matrice X cu datele s, i un vector T cu clasele adevarate.
1
http://www.uni-marburg.de/fb12/datenbionik/downloads/FCPS

5
Bibliografie
[AV07] David Arthur and Sergei Vassilvitskii. k-means++: The advantages of careful
seeding. In Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete
algorithms, pages 10271035. Society for Industrial and Applied Mathematics, 2007.

[M+ 67] James MacQueen et al. Some methods for classification and analysis of multivari-
ate observations. In Proceedings of the fifth Berkeley symposium on mathematical
statistics and probability, volume 1, pages 281297. California, USA, 1967.

[PLL99] Jose Manuel Pena, Jose Antonio Lozano, and Pedro Larranaga. An empirical com-
parison of four initialization methods for the i k/i-means algorithm. Pattern
recognition letters, 20(10):10271040, 1999.

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