Sunteți pe pagina 1din 5

Rezolvarea exercitiului 43-ML,Clusterizare

Nicoria Alexandru-Florin
December 2020

1 Enuntul exercitiului 43
43. a) Sa consideram situatia in care K = 3 si ne sunt date 4 instante, notate
cu x1 = 1, x2 = 2, x3 = 5, x4 = 7. Care este clusterizarea optima pentru acest
set de date? Care va fi valoarea corespunzatoare functiei obiectiv J.
b) Am putea fi tentati sa credem ca in cazul d = 1 algoritmul K-means
converge in mod cert la valoarea minima (globala) a criteriului J. Considerand
din nou instantele date la punctul a, aratati ca exista o asignare suboptimala
a lor la clustere, pe care algoritmul K-means n-o poate imbunatati. (Indicati
asignarea, aratati de ce este suboptimala si explicati de ce anume ea nu va putea
fi imbunatatita.)
c) Presupunem ca sortam instantele noastre astfel ı̂ncât x1 ≤ x2 ≤ ... ≤
xn . Demonstrati ca orice asignare optima a acestor instante la clustere are
proprietatea ca fiecare cluster [LC: nevid] corespunde unui anumit interval“ de
instante. Adica, pentru fiecare cluster [LC: nevid] j exista i1 , i2 ∈ {1, ..., n}, cu
i1 ≤ i2 , astfel incat clusterul acesta consta din instantele xi1 , xi1+1 ,..., xi2 .
d) Concepeti un algoritm de clusterizare de tip programare dinamica avand
complexitatea O(Kn2 ), ca inlocuitor pentru algoritmul K-means in cazul uni-
dimensional. Indicatie: Dat fiind rezultatul de la punctul c, ceea ce trebuie să
optimizam“ / setam sunt cele K − 1 granite / margini (engl., boundaries) ale
clusterelor, marginea cu numarul de ordine i fiind cea mai mare instanta din
clusterul i.

2 Rezolvarea subpunctului a)
Pentru rezolvarea acestui subpunct, va trebui mai intai sa reprezentam in-
stantele date pe axa reala:

Din punct de vedere geometric, se poate observa pe reprezentarea grafica


de mai sus ca punctele x1 si x2 sunt cele mai apropiate, cunoscand faptul ca

1
K = 3 , x1 si x2 ar trebui sa apartina aceluiasi cluster, iar x3 si x4 sa formeze
clustere singleton pentru obtinerea unei clusterizari otpimale. Totodata, faptul
ca instantele x1 si x2 sunt cele mai apropiate poate fi demonstrat si in maniera
analitica, avand in vedere ca metrica folosita este distanta euclidiana, vom cal-
cula distantele dintre fiecare doua instante:
p
d(x1 , x2 ) = (1 − 2)2 = 1, d(x1 , x3 ) = 4, d(x1 , x4 ) = 6, d(x2 , x3 ) = 3,
d(x2 , x4 ) = 5, d(x3 , x4 ) = 2

Drept urmare, x1 si x2 sunt cele mai apropiate puncte, folosind o euristica


naturala de clusterizare, si anume cea bazata pe gruparea celor mai apropiate
puncte in acelasi cluster, in cazul in care numarul de puncte, notat cu n, este mai
mare decat K, se obtine solutia optimala pentru instantele date, caracterizata
de 3−conf iguratia (1.5, 5, 7) si 3−partitia {{1, 2}, {5}, {7}}. Pentru calculul
criteriului J, vom enunta mai intai definitia acestuia:

Pn
J = i=1 j∈{1,...,K} min ||xi − µj ||2

Pentru solutia enuntata mai sus, criteriul J va avea valoarea, 0.5, deoarece
J = (1 − 1.5)2 + (2 − 1.5)2 + (5 − 5)2 + (7 − 7)2 = 0.5.

3 Rezolvarea subpunctului b)
In cadrul rezolvarii acestui subpunct vom incepe din nou cu reprezentarea grafica
a instantelor pe axa reala, pentru a avea o imaginea mai clara din punct de
vedere geometric:

O solutie care nu este optimala poate fi caracterizata prin 3 − partitia


{{}, {1, 2}, {5, 7}} si 3 − conf iguratia (0, 1.5, 6). Avand in vedere ca algoritmul
K − means asigneaza fiecarui centroid punctele cele mai apropiate de acesta
si formeaza un cluster cu aceste puncte, putem observa ca aplicarea algoritmu-
lui pe solutia enuntata mai sus, va produce acelasi rezultat. Deci algoritmul
K − means nu poate imbunatati aceasta solutie. Totodata, aceasta solutie este
suboptimala, deoarece valoarea functiei obiectiv J va fi mai mare pentru aceasta
clusterizare, decat valoarea criteriului J calculata pentru clusterizarea de la sub-
punctul a), si anume, 0.5 < 2.5. Valoarea criteriului J va fi 2.5 pentru aceasta
solutie, deoarece J = (1 − 1.5)2 + (2 − 1.5)2 + (5 − 6)2 + (7 − 6)2 = 2.5.

2
4 Rezolvarea subpunctului c)
Pentru rezolvarea acestui subpunct, vom enunta o definitie a unei asignari
optimale.
O asignare optimala reprezinta o atribuire a datelor la K clustere, astfel
incat suma celor mai mici patrate, denumita si ca criteriul J sau functia obiec-
tiv J, sa fie minima. Deci o asignare optimala minimizeaza suma patratelor
distantelor ce corespund instantelor din clusterul respectiv.
In cele ce urmeaza, vom presupune ca exista o asignare optimala, notata
cu A, care nu respecta conditia ce se doreste a fi demonstrata.
In asignarea A consideram 2 clustere, notate cu Ci si Cj , cu Ci 6= Cj , si un
interval xt1 ≤ xt1+1 ≤ xt1+2 ≤ ... xt2 , astfel incat:

xt1 si xt2 ∈ Cj
Restul valorilor y din acest interval apartin clusterului Ci

Dupa cum a fost mentionat mai sus faptul ca o asignare optimala mini-
mizeaza suma patratelor distantelor din fiecare cluster, atunci orice valoare y
din intervalul mentionat mai sus care apartine clusterului Ci nu va asigura o
suma minima pentru clusterul respectiv, deoarece aceste valori vor fi mai apropi-
ate de centroidul clusterului Cj , deci se va obtine o contradictie a faptului ca
asignarea A minimizeaza criteriul J, drept orice asignare optimala va trebui sa
aiba clusterele sub forma unor intervale. Totodata se poate observa ca punctele
y din intervalul respectiv vor fi asignate clusterului Cj la urmatoarea iteratie a
algoritmului K − means, deoarece aceste puncte se afla in apropierea centroidu-
lui µj , corespunzator lui Cj .

O demonstratie alternativa ce nu include definitia functiei obiectiv J va fi


explicata cu ajutorul faptului ca algoritmul K −means atribuie fiecarui centroid
punctele apropiate de acesta, si nu de orice alt centroid.
Consideram din nou clusterele si intervalul ce au fost descrise in cadrul
demonstratiei anterioare, iar cum datele sunt sortate, atunci si cei K centroizi
vor fi in ordine pe axa reala. Sa presupunem ca doar valorile xt1 si xt2 apartin
clusterului Cj , atunci centroidul acestui cluster va avea valoarea egala cu me-
dia celor 2 puncte, geometric vorbind, centroidul clusterului Cj va fi situat la
jumatatea intervalului. Cum xt1 nu apartine clusterului Ci , deducem faptul
ca distanta de la xt1 la µi va fi mai mare decat distanta de la orice punct y
din interiorul intervalului la µi , iar daca xt2 nu apartine clusterului Ci , atunci
deducem faptul ca distanta de la xt2 la µi va fi mai mare decat distanta de la
orice punct y din interiorul intervalului la µi . Cum centroizii vor fi in acelasi
timp in ordine, se vor forma doua cazuri, si anume µi > µj sau µi < µj . Atunci:

1. In cazul in care µi > µj ,vom avea, conform celor spuse mai sus:
d(y, µi ) ≤ d(xt2 , µi ) ≤ d(xt1 , µi ), avand in vedere o proprietate importanta a
distantei euclidiene, iar y ∈ [xt1 , xt2 ], vom avea d(y, µi ) = d(xt2 , µi ) + d(y, xt2 ),
atunci d(y, µi ) ≥ d(xt2 , µi ) (1). Bazandu-ne pe aceeasi proprietate, cu faptul

3
ca xt1 ≤ y, vom avea d(xt1 , µi ) = d(xt1 , y) + d(y, µi ), prin urmare d(xt1 , µi ) ≥
d(y, µi ) (2).
Din relatiile (1, 2) vom putea afla o noua relatie, si anume d(xt2 , µi ) ≤ d(y, µi )
≤ d(xt1 , µi ). Astfel obtinem o contradictie intre relatia obtinuta si relatia enun-
tata mai sus, drept consecinta, se poate evidentia faptul ca y va fi mai apropiat
de centroidul µj in acest caz.

2. In cazul in care µi < µj ,vom avea, conform celor spuse mai sus:
d(y, µi ) ≤ d(xt1 , µi ) ≤ d(xt2 , µi ), avand in vedere o proprietate importanta a
distantei euclidiene, iar y ∈ [xt1 , xt2 ], vom avea d(y, µi ) = d(xt1 , µi ) + d(y, xt1 ),
atunci d(y, µi ) ≥ d(xt1 , µi ) (3). Bazandu-ne pe aceeasi proprietate, cu faptul
ca xt2 ≥ y, vom avea d(xt2 , µi ) = d(xt2 , y) + d(y, µi ), prin urmare d(xt2 , µi ) ≥
d(y, µi ) (4).
Din relatiile (3, 4) vom putea afla o noua relatie, si anume d(xt1 , µi ) ≤ d(y, µi )
≤ d(xt2 , µi ). Astfel obtinem o contradictie intre relatia obtinuta si relatia enun-
tata mai sus, drept consecinta, se poate evidentia faptul ca y va fi mai apropiat
de centroidul µj si in acest caz.

In concluzie, pe baza argumentelor de mai sus, se poate observa o noua contra-


dictie, si anume ca asignarea A nu este optimala daca are structura cu care am
inceput demonstratia, deoarece punctele y sunt mai apropiate de centroidul µj
decat de µi , iar daca vom itera algoritmul K − means peste aceasta configuratie
vom obtine o solutie mai buna decat A in care fiecare cluster este format dintr-o
suita de numere reale.

5 Rezolvarea subpunctului d)
O definitie preliminara ce va fi de folosPrezolvarii acestui subpunct va fi definirea
p
unei functii f , f : D → R, f (t, p) = i=t (xi − µ)2 , unde D = {(a, b)|1 ≤ a ≤
b ≤ n} , n fiind numarul de instante, iar µ va fi media instantelor indexate de
la t pana la p.
O caracteristica importanta a programarii dinamice este faptul ca putem
imparti o problema in subprobleme, in cadrul acestui algoritm, aceste subprob-
leme vor fi reprezentate sub forma unei matrici de dimensiuni [n + 1, K + 1],
notate cu M , astfel incat:
M [i][j] = valoarea criteriului J minimal folosind primele i puncte si j clustere.
M [n][K] = valoarea minima a criteriului J pentru cele n instante si K clustere
dorite.

Matricea M se va construi in felul urmator:

M [0][j] = 0, iar j 6= 0
M [i][0] = 0, iar i 6= 0
M [i][i] = 0
M [i][j] = 0, pentru i < j, iar i 6= 0, deoarece acest caz se poate reduce la cal-

4
culul valorii M [i][i] si construirea a j − i clustere vide
M [i][1] = f (1, i), iar i 6= 0
M [i][j] = minjp=2 {M [p − 1][j − 1] + f (p, i)},pentru i > j, j > 1
Avand aceste notiuni la dispozitie, algoritmul va avea urmatoarea structura:

1) La intrare va primi valoarea k, iar apoi o lista de instante reprezentate ca


numere reale, separate prin virgula.
2) Se va sorta lista de instante in ordine crescatoare
3) Se va construi matricea dupa regulile de mai sus, cu o conditie suplimentara,
si anume fiecarui element din matrice is se va asigna o lista ce contine clusterele
formate in urma unei asignari optimale pentru primele i puncte si j clustere in
felul urmator:
Daca j = 0 si i 6= 0, elementului i se va asigna clusterul vid, sau daca i = 0 si
j 6= 0, elementului i se va asigna o lista de j clustere vide.
Daca i ≤ j, elementului i se va asigna lista de clustere [{x1 }, ..., {xn }], la care
vom concatena j − i clustere vide.
Daca i 6= 0 si j = 1, elementului i se va asigna clusterul {x1 , ..., xn }.
Daca i > j, iar j > 1, elementului i se va asigna lista de clustere a elemen-
tului din matrice ales in urma operatiei min, alaturi de un cluster format din
xp , ..., xi .
4) Se va afisa valoarea criteriului J si clusterele formate ale elementului de la
pozitia [n][k].
Exceptie) Se va arunca o exceptie in cazul in care K = 0.

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