Klasteryzacja
Marcin Orchel
1 Wstęp
1.1 Algorytm EM
Zakładamy, że rozkład prawdopodobieństwa analizowanych cech daje się opisać za pomo- cą rozkładu prawdopodobieństwa będącego mieszaniną K rozkładów odpowiadających podziałowi na K skupień. Gęstość tego rozkładu
f (x) =
K
X
k=1
πkf (x; θk) (1)
gdzie f (x; θk) są gęstościami prawdopodobieństwa odpowiadającym poszczególnym sku- pieniom, a πk to parametry takie, że
K
X
k=1
πk= 1 (2)
gdzie π1, . . . , πk ≥ 0. Przykładowo dla p-wymiarowego rozkładu normalnego θk = (µk, Σk).
Oznaczamy ψ = {πk, θk: k = 1, . . . , K} zbiór wszystkich parametrów. Zastosujemy metodę największej wiarygodności do ich estymacji
L (ψ; x1, . . . , xn) = log
n
Y
i=1 K
X
k=1
πkf (xi; θk) (3) Do maksymalizacji powyższej funkcji używamy algorytmu EM. Najpierw zapisujemy ją w postaci
L (ψ; x1, . . . , xn) =
n
X
i=1 K
X
k=1
ψiklog πk+
n
X
i=1 K
X
k=1
ψiklog f (xi; θk) −
n
X
i=1 K
X
k=1
ψiklog ψik (4) gdzie
ψik= πkf (xi; θk) PK
l=1πlf (xi; θl) (5)
Zapis ten wynika z następującej zależności:
logX
k
ak=X
k
ak P
iai log ak−X
k
ak P
iai log ak P
iai (6)
Dowód:
= 1
P
iai
X
k
aklog ak−X
k
aklog ak
P
iai
!
(7)
= 1
P
iai
X
k
ak
log ak− log ak P
iai
!
(8)
= 1
P
iai
X
k
aklogakPiai ak
!
(9)
= 1
P
iai X
k
aklogX
i
ai
!
(10)
= 1
P
iai
logX
i
ai
! X
k
ak
!
(11)
= logX
i
ai (12)
Zapis ten umożliwił zapisanie obu parametrów πk i θk w osobnych składnikach.
Punkty przyporządkowujemy skupieniom w ten sposób, że punkt należy do skupienia dla którego mamy maksymalną wartość wyrażenia
ψik
ψk (13)
gdzie
ψk=
n
X
i=1
ψik (14)
Algorytm EM, ustalamy początkowe wartości π1, . . . , πK oraz θ1, . . . , θK. Obliczamy ψik (krok E). Następnie znajdujemy wartości parametrów πk, θk maksymalizujące L (krok M). Powtarzamy oba kroki, dopóki wartość L zmienia się istotnie.
Dla rozkładów normalnych maksymalizujemy L wyznaczając πk= 1
n
n
X
i=1
ψik (15)
µk = 1 nπk
n
X
i=1
ψikxi (16)
Σk= 1 nπk
n
X
i=1
ψik(xi− µk) (xi− µk)0 (17) Macierz kowariancji możemy zapisać w postaci
Σk= λkDkAkDTk (18)
gdzie λk = |Σk|1/m, Ds to macierz ortogonalna, której kolumnami są wektory wła- sne odpowiadające uporządkowanym malejąco wartościom własnym macierz Σk, Ak to macierz diagonalna taka, że |As| = 1 i której elementy to uporządkowane malejąco war- tości własne macierzy Σk. Macierz A odpowiada za kształt, skalar λk za wielkość, a Dk za orientację. Modele: E - oznacza takie same, V, że klasy różnią się, I oznacza w przypadku orientacji brak orientacji lub równoległa do osi układu, a w przypadku kształtu, kształt sferyczny. Modele EII (λI), VII(λkI), EEI(λA), VEI(λkA), EVI(λAk), VVI(λkAk), EEE(λDADT), EEV(λDkADTk), VEV(λkDkADTk), VVV((λkDkAkDTk)).
1.2 Metody hierarchiczne
Definiujemy pojęcie odmienności między dwoma zbiorami punktów. W metodzie aglo- meracyjnej startujemy z n jednopunktowych skupień, następnie łączy się dwa najmniej odmienne w oparciu o macierz odmienności w jedno skupienie. Otrzymujemy n − 1 sku- pień. W każdym kroku liczba skupień maleje o 1. Obliczenia dokonujemy, aż do momentu otrzymania liczby zadeklarowanych skupień K.
Wyniki klasteryzacji reprezentowane są na wykresie zwanym dendogramem. Jest to drzewo binarne, węzły reprezentują skupienia, a liście to pojedyncze obiekty, liście znaj- dują się na poziomie zerowym, pozostałe węzły zaś na wysokości odpowiadającej mierze niepodobieństwa między skupieniami reprezentowanymi przez węzły potomki.
Definicje odmienności między skupieniami: odmienność typu najbliższego sąsiada (single linkage) - najmniejsza miara niepodobieństwa między dwoma obiektami należą- cymi do różnych skupień,
p (R, S) = min
i∈R,j∈Sp (xi, xj) (19)
Tworzy ona wydłużone skupienia.
Odmienność typu najdalszego sąsiada (complete linkage) - największa miara niepo- dobieństwa między dwoma obiektami należącymi do różnych skupień
p (R, S) = max
i∈R,j∈Sp (xi, xj) (20)
Tworzy ona zwarte skupienia.
Odległość średnia (average linkage) - średnia miara niepodobieństwa między wszyst- kimi parami obiektów należących do różnych skupień
p (R, S) = 1 nRnS
X
i∈R
X
j∈S
p (xi, xj) (21)
gdzie nRi nS to liczba obiektów wchodzących w skład skupień R i S odpowiednio.
Możemy wyznaczyć niepodobieństwo w następnym kroku, dla metody najbliższego sąsiada
p R, S ∪ S0= minp (R, S) , p R, S0 = 1
2 p (R, S) + p R, S0−p (R, S) − p R, S0
(22)
Drugie równanie wynika z faktu, że min (a, b) =1
2(a + b − |a − b|) (23)
dla metody najdalszego sąsiedztwa
p R, S ∪ S0= maxp (R, S) , p R, S0 = 1
2 p (R, S) + p R, S0+p (R, S) − p R, S0
(24) Drugie równanie wynika z faktu, że
max (a, b) = 1
2(a + b + |a − b|) (25)
dla metody średniej odległości
p R, S ∪ S0= nS
nS+ nS0p (R, S) + nS0
nS+ nS0p R, S0 (26) co bierze się ze wzoru, że
Pai+Pbi
n + m = n
n + m Pai
n + m
n + m Pbi
m (27)
Metoda najbliższego sąsiedztwa może być skonstruowana w ten sposób, że znajduje- my minimalne drzewo rozpinające i usuwamy najdłuższe krawędzie. Minimalne drzewo rozpinające możemy znaleźć za pomocą algorytmu Kruskala. Wybieramy krawędź o mi- nimalnej wadze, z pozostałych krawędzi wybieramy tę o najmniejszej wadze
W metodzie opartej na dzieleniu startujemy z jednego skupienia składającego się ze wszystkich punktów, szukamy dwóch najbardziej odmiennych podzbiorów, następnie wybieramy podział jednego z nich., która nie prowadzi do cyklu. Powtarzamy drugi krok.
1.3 Metoda k-średnich
Mamy macierz zmienności wewnątrz skupieni W (CK) =
K
X
k=1
X
Ck(i)=k
(xi− ¯xk) (xi− ¯xk)0 (28)
gdzie xk oznacza wektor średnich k-tego skupienia x¯k= 1
nk
X
CK(i)=k
xi (29)
gdzie nk jest liczebnością k-tego skupienia. Macierz ta będzie rozmiar p na p.
Metoda k-średnich minimalizuje ślad macierzy W (CK). Optymalny podział to CK∗ = min trW (Ck) = min
CK
K
X
k=1
X
CK(i)=k
p2(xi, ¯xk) (30)
gdzie p2 to kwadrat odległości euklidesowej.
Algorytm k-średnich. W losowy sposób rozmieszczamy n obiektów w K skupieniach.
Dla każdego z K skupień obliczamy wektory średnich xk. Rozmieszczamy ponownie obiekty w K skupieniach tak, że
CK(l)(i) = arg min
1≤k≤Kp2(xi, ¯xk) (31)
Powtarzamy dwa poprzednie kroki, dopóki dokonujemy zmian przyporządkowania.
1.4 Metoda k-median
W tej metodzie możemy mieć dane tylko odległości między punktami, bez współrzęd- nych. Środki klastrów wyznaczamy podobnie jak dla k-średnich
x¯k= 1 nk
X
CK(i)=k
xi= arg min
y∈Rp
X
CK(i)=k
p2(xi, y) (32)
Gdy wartości pochodzą ze zbioru V mamy mk= arg min
y∈Vp
X
CK(i)=k
p (xi, y) (33)
Środki skupienia będą należały do klastrów.
Algorytm k-median. Losowo rozmieszczamy n obiektów w K skupieniach. Dla każ- dego z K skupień obliczamy środki skupień. Rozmieszczamy ponownie obiekty w K skupieniach
CK(l)(i) = arg min
1≤k≤Kp (xi, mk) (34)
Powtarzamy dwa poprzedniego kroki dopóki jest zmiana przyporządkowania.
2 Zadania
2.1 Zadania na 3.0
• dla wygenerowanych danych dwuwymiarowych kilku klas z rozkładów normalnych zaznacz na wykresie dane treningowe, a także klasteryzację metodą EM (różne mo- dele), hierarchiczną oraz k-średnich. Dobierz rozkłady normalne tak, aby uzyskać klastry eliptyczne.
• wyświetlić funkcje gęstości
• wyświetlić dendogramy dla trzech typów odmienności
• wyświetlić w konsoli błędy klasteryzacji i porównać
• dla algorytmu k-średnich wyświetlić wykres zależności log trW (CK) od k.
• oblicz błąd klasteryzacji na zbiorze testowym dla wszystkich użytych metod kla- steryzacji
• wykonać klasteryzację danych z konspektu svm
• wykonać klasteryzację wybranego obrazu i dokonać analizy możliwości identyfikacji obiektów za pomocą metod klasteryzacji
Wskazówki do R
• generacja klastrów najlepiej ręczna, alternatywa https://www.rdocumentation.
org/packages/clusterSim/versions/0.36-1/topics/cluster.Gen,http://finzi.
psych.upenn.edu/library/clusterSim/html/cluster.Gen.html,
• wczytanie danych https://stat.ethz.ch/R-manual/R-devel/library/utils/
html/read.table.html
• pakiet mclusthttps://cran.r-project.org/web/packages/mclust/index.html, https://cran.r-project.org/web/packages/mclust/vignettes/mclust.html
• funkcja emhttp://svitsrv25.epfl.ch/R-doc/library/mclust/html/em.html,
http://svitsrv25.epfl.ch/R-doc/library/mclust/html/emE.html,http://svitsrv25.
epfl.ch/R-doc/library/mclust/html/me.html,http://svitsrv25.epfl.ch/R- doc/library/mclust/html/meE.html
• do metod aglomeracyjnychhttp://svitsrv25.epfl.ch/R-doc/library/mclust/
html/hc.html,http://svitsrv25.epfl.ch/R-doc/library/mclust/html/hcE.
html,http://svitsrv25.epfl.ch/R-doc/library/mclust/html/hclass.html
• http://svitsrv25.epfl.ch/R-doc/library/mclust/html/unmap.html
• http://svitsrv25.epfl.ch/R-doc/library/mclust/html/mclustBIC.html
• metoda EMhttp://svitsrv25.epfl.ch/R-doc/library/mclust/html/Mclust.
html
• http://svitsrv25.epfl.ch/R-doc/library/mclust/html/plot.mclustBIC.html
• http://svitsrv25.epfl.ch/R-doc/library/mclust/html/coordProj.html
• http://svitsrv25.epfl.ch/R-doc/library/mclust/html/classError.html
• http://svitsrv25.epfl.ch/R-doc/library/mclust/html/adjustedRandIndex.
html
• http://svitsrv25.epfl.ch/R-doc/library/mclust/html/mclustModelNames.
html
• obserwacje nietypowe, pakiet prabclus,https://www.rdocumentation.org/packages/
prabclus/versions/2.0-1/topics/NNclean
• http://finzi.psych.upenn.edu/library/mclust/html/clPairs.html
• http://stat.ethz.ch/R-manual/R-devel/library/stats/html/hclust.html
• http://finzi.psych.upenn.edu/library/densityClust/html/densityClust.
html Wskazówki
• http://www.mathworks.com/help/stats/cluster-data-from-mixture-of-gaussian- distributions.html
• http://www.mathworks.com/help/stats/gmdistribution.html
• http://www.mathworks.com/help/stats/clustering-using-gaussian-mixture- models.html
• http://www.mathworks.com/help/stats/gaussian-mixture-models-1.html
• http://www.mathworks.com/help/stats/fitgmdist.html, dla starszych wersji http://www.mathworks.com/help/stats/gmdistribution.fit.html
• http://www.mathworks.com/help/stats/gmdistribution.cluster.html
• http://www.mathworks.com/help/images/examples/color-based-segmentation- using-k-means-clustering.html
• http://www.mathworks.com/help/stats/kmeans.html
• http://www.mathworks.com/help/stats/linkage.html
• http://www.mathworks.com/help/stats/clusterdata.html
• http://www.mathworks.com/help/stats/cluster.html, a tutaj cluster dla me- tody EMhttp://www.mathworks.com/help/stats/gmdistribution.cluster.html 2.2 Zadania na 4.0
• powtórzyć zadanie na 3.0 dla danych trójwymiarowych
• porównać metody z zadania na 3.0 dodatkowo z k-median
• porównać błąd klasteryzacji na zbiorze testowym i treningowym, czy błąd na zbio- rze testowym będzie większy?
Wskazówki:
• http://www.mathworks.com/help/stats/kmedoids.html
2.3 Zadania na 5.0
• dla wybranych danych wielowymiarowych porównać jakość klasteryzacji na danych testowych z metodami klasyfikacji
• wykonać klastertyzację zdjęć twarzy z dodanymi cechami na podstawie rysunków wygenerowanych w zadaniu z konwolucją z różnymi jądrami konwolucji