Professional Documents
Culture Documents
Rozdz12 Klaster
Rozdz12 Klaster
(x ) (xi − x j ) = (xik − x jk )
N
d ij = x i − x j = i −xj
T 2
2
(12.4)
k =1
dij = (x − x ) S (x − x )
i j
T −1
i j (12.5)
W skrajnym przypadku używać można również normy maksimum (L∞), zgodnie z którą
267
dij = xi − x j
= max xik − x jk (12.7)
k =1, 2.. N
W analizie danych numerycznych ważną rolę odgrywa korelacja między danymi, będąca
również pewnym specyficznym rodzajem miary odległości między wektorami xi oraz xj .
Miarę tę wyraża współczynnik korelacji Pearsona definiowany w postaci [14,58,82]
(xik − mi )(x jk − m j )
N
rij = k =1
(12.8)
(xik − mi ) (x jk − m j )
N
2 2
k =1
w której mi, mj oznaczają wartość średnią elementów, odpowiednio wektora xi oraz xj.
W przypadku wektorów binarnych o wartościach zero-jedynkowych popularna jest
miara Hamminga, definiowana jako liczba bitów, o które różnią się oba wektory. Można ją
zapisać w postaci zależności
(12.9)
k =1
dla i=1, 2, …, nA, j=1, 2, …, nB. Jest mierzona jako minimalna odległość między najbliższymi
sobie reprezentantami obu klastrów.
• Odległość maksymalna
dmax ( A, B) = max(d (xi , x j )) (12.11)
dla i=1, 2, …, nA, j=1, 2, …, nB. Jest mierzona jako maksymalna odległość między najbardziej
skrajnymi reprezentantami obu klastrów.
• Odległość średnia
dmean ( A, B) = mean(d (xi , x j )) (12.12)
dla i=1, 2, …, nA, j=1, 2, …, nB. Jest mierzona jako średnia odległość między wszystkimi
możliwymi kombinacjami wektorów obu klastrów.
• Odległość centroidalna
268
Jest to odległość między wektorem opisującym centrum klastra A oraz wektorem punktu
centralnego klastra B. Punkt centralny obu klastrów wyznacza się jako średnią wektorów
1 nA 1 nB
wchodzących w skład odpowiednich klastrów, przy czym c A = xi , c B = xi . Przy
nA i=1 nB i=1
takich oznaczeniach odległość centroidalna określona jest wzorem
d cent ( A, B) = d (c A , c B )) (12.13)
Rys. 12.1 Ilustracja różnych miar odległości między klastrami: minimalnej dmin, maksymalnej
dmax oraz centroidalnej dcent
269
zbiór n obserwacji opisanych wektorami x1, x2, …, xn każdy o wymiarze N. Zadaniem
algorytmu K-means jest podział tych n obserwacji na K zbiorów (klastrów) S1, S2, …, SK przy
K<n w taki sposób, aby zminimalizować sumę kwadratów odległości między centrum ci a
pozostałymi wektorami xj wewnątrz każdego klastra.
K 2
arg min x j −ci (12.14)
S i =1 x j Si
Taki podział przestrzeni nosi nazwę mozaiki Voronoi’a składającej się z wieloboków, przy
czym każdy wielobok traktowany jest jako klaster reprezentowany przez swoje centrum.
Średnia wartość błędu reprezentowania wszystkich wektorów x przez odpowiednie centra
klastrów nosi nazwę błędu kwantyzacji wektorowej [55].
W rozwiązaniu algorytmu K-means stosuje się dwie wersje: bezpośrednią oraz
skumulowaną. W wersji bezpośredniej (on-line) tego algorytmu aktualizacja centrów
następuje po każdej prezentacji wektora x ze zbioru danych uczących. W wersji
skumulowanej (off-line) centra są jednocześnie aktualizowane dopiero po zaprezentowaniu
wszystkich składników zbioru. W obu przypadkach wstępny wybór centrów odbywa się
najczęściej losowo przy wykorzystaniu rozkładu równomiernego składowych wektora
wewnątrz obszaru określoności danych.
W wersji skumulowanej prezentowane są wszystkie wektory uczące x i każdy z nich
przyporządkowany jest odpowiedniemu centrum według kryterium odległościowego. Zbiór
wektorów przypisanych do jednego centrum twor5545]
1 ni
c i (k + 1) = xi (12.15)
ni i=1
gdzie ni oznacza liczbę wektorów x przypisanych w k-tym cyklu uczącym do i-tego centrum.
Uaktualnianie wartości wszystkich centrów odbywa się równolegle, a proces prezentacji
zbioru wektorów x oraz uaktualniania wartości centrów powtarzany jest wielokrotnie
(poczynając od wartości startowych, zwykle losowych) aż do ustalenia się pozycji centrów.
W wersji on-line po zaprezentowaniu j-tego wektora xj ze zbioru uczącego
selekcjonowane jest centrum najbliższe mu w sensie wybranej metryki. Tylko to centrum
podlega aktualizacji zgodnie ze wzorem [55]
c i (k + 1) = c i (k ) + x j − c i (k ) (12.16)
gdzie η jest współczynnikiem uczenia o wartości małej (zwykle η<<1), malejącej z iteracjami
do zera. Pozostałe centra nie ulegają zmianie. Każdy wektor uczący x jest pokazywany
270
wielokrotnie, aż do ustalenia wartości centrów. Tego typu adaptacja nosi również skrótową
nazwę WTA (ang. Winner Takes All).
Stosowana jest odmiana algorytmu, w której centrum zwycięskie adaptowane jest
według wzoru (12.16) a jeden lub kilka najbliższych mu centrów odpychane w przeciwnym
kierunku, przy czym realizacja tego procesu odbywa się zgodnie ze wzorem
c i (k + 1) = c i (k ) −1 x j − c i (k ) (12.17)
przy η1≤ η. Taka modyfikacja algorytmu pozwala na rozsunięcie centrów położonych blisko
siebie i lepszą penetrację przestrzeni danych.
Oba rozwiązania nie gwarantują jednak bezwzględnej zbieżności do rozwiązania
optymalnego w sensie globalnym, a jedynie zapewniają optymalność lokalną, uzależnioną od
warunków początkowych i parametrów procesu. Przy niefortunnie dobranych warunkach
początkowych pewne centra mogą utknąć w regionie, w którym liczba danych uczących jest
znikoma lub żadna i proces modyfikacji ich położeń może zostać zahamowany lub nawet
zastopowany całkowicie. Tego typu centra nazywane są „martwymi”. W ten sposób dane
wejściowe reprezentowane będą przez mniejszą liczbę centrów (część z nich martwa), w
efekcie ich błąd reprezentacji zwany błędem kwantyzacji, staje się większy. Istotnym
problemem staje się zatem uaktywnienie wszystkich centrów sieci.
Można to osiągnąć, jeśli w algorytmie uczącym będzie uwzględniona dotychczasowa
liczba zwycięstw poszczególnych centrów, a proces uczenia zostanie zorganizowany w taki
sposób, aby dać szansę zwycięstwa mniej aktywnym. Istnieje wiele mechanizmów
uwzględniających aktywność poszczególnych centrów w procesie uczenia.
Jedną ze skuteczniejszych metod eliminacji centrów martwych jest uwzględnienie
liczby zwycięstw każdego centrum w procesie wyłaniania zwycięzcy [55]. Odbywa się to na
etapie obliczania efektywnej odległości d(x,c) aktualnego wektora x od centrum c,
modyfikując ją proporcjonalnie do liczby zwycięstw danego centrum w przeszłości. Jeśli
oznaczyć liczbę zwycięstw i-tego centrum przez Ni, to modyfikację taką można przyjąć w
postaci [55]
d (x,c) N i d (x,c) (12.18)
Na początku każdemu centrum przypisuje się wartość startową Ni=1. W procesie uczenia
centra aktywne o dużej wartości Ni są karane sztucznym zawyżeniem tej odległości. Należy
zaznaczyć, że modyfikację odległości stosuje się jedynie przy wyłanianiu zwycięzcy. W
momencie uaktualniania wartości centrum bierze się pod uwagę odległość rzeczywistą.
Modyfikacja odległości ma za zadanie jedynie uaktywnić wszystkie centra przez
271
wprowadzenie ich w obszar o dużej liczbie danych. Po wykonaniu zadania (zwykle po dwóch
lub trzech cyklach uczących) wyłącza się ją, pozwalając na niezakłóconą konkurencję. Tego
typu odmiana K-means nosi nazwę CWTA (ang. Conscience Winner Takes All).
Innym rozwiązaniem tego problemu jest modyfikacja położeń wielu centrów na raz, ze
stopniowaniem wartości współczynnika uczenia dla każdego z nich. Tego typu modyfikację
stosuje się w sieciach samoorganizujących Kohonena i nosi nazwę WTM (ang. Winner Takes
Most). W tym podejściu centrum najbliższe aktualnemu wektorowi x jest modyfikowane
najbardziej, pozostałe coraz mniej w zależności od ich odległości względem wektora x.
Przykładem takiego rozwiązania jest algorytm gazu neuronowego, nazwany tak
przez autorów ze względu na podobieństwo dynamiki przesunięć centrów do ruchu
cząsteczek gazu [55]. W algorytmie tym wszystkie centra podlegają sortowaniu w każdej
iteracji w zależności od ich odległości od aktualnego wektora x. Centra są następnie
ustawiane w kolejności odpowiadającej narastającej odległości d0 < d1 < d2 ….< dn-1, gdzie
dm = x − c(m(i)) oznacza odległość wektora x od i-tego centrum, zajmującego w wyniku
272
iteracjach, zmieniając je w kierunku aktualnie podanego na wejście wektora xk, zgodnie z
uogólnioną regułą Kohonena [55]
w i (k + 1) = w i (k ) + i G (i, x k )x k − w i (k ) (12.21)
w której G(i,xk) jest funkcją sąsiedztwa przyporządkowaną i-temu centrum przy prezentacji
wektora xk, a współczynnikiem uczenia. Wartość współczynnika uczenia maleje z czasem,
osiągając wartość zerową na końcu procesu uczenia. Funkcja G(i,xk) określa zbiór centrów w
sąsiedztwie zwycięzcy podlegających adaptacji w procesie uczenia. W zależności od
przyjętego wyboru funkcji sąsiedztwa otrzymuje się różne strategie uczenia. Na przykład w
sąsiedztwie gaussowskim funkcja G(i,xk) przyjmuje wartość równą 1 dla zwycięzcy i wartości
z przedziału [0, 1] dla pozostałych centrów z sąsiedztwa, przy czym im dalej położone jest
centrum od zwycięzcy tym mniejsza wartość funkcji sąsiedztwa. Przykładowym
rozwiązaniem jest funkcja sąsiedztwa gaussowskiego zaproponowana przez Kohonena w
postaci [55]
d 2 (w i , w w )
G (i, x) = exp− (12.22)
w której odległość jest liczona między wagami centrum i-tego (wi) a centrum zwycięskiemu
(ww), d (w i , w w ) = w i − w w . Tego typu rozwiązanie jest typowe przy tworzeniu tzw. mapy
273
Rys. 12.2 Rozkład danych podlegających grupowaniu w przykładzie
Rys. 12.3 Podział przestrzeni danych z rys. 12.2 metodą K-means w wersji: a) WTA, b)
CWTA
274
W ten sposób centrum zainicjowane niefortunnie w obszarze pozbawionym danych,
nigdy nie wygra konkurencji w systemie WTA. Zastosowanie algorytmu CWTA przy
wartości startowej Ni=1 umożliwia po określonej liczbie iteracji wygranie konkurencji z
innymi centrami częściej wygrywającymi. Na rys. 12.3b przedstawiony wynik graficzny
segmentacji obszaru danych przy zastosowaniu tej metody uczenia. Tym razem wszystkie
klastry są aktywne i zawierają pewną liczbę danych, dla których określone centrum okazało
się zwycięskie. Zauważmy, że w obu metodach najgęstsze zgrupowania centrów znajdują się
w obszarze o dużej liczbie danych.
Metoda K-means pozwala uzyskać minimum funkcji celu wyrażającej błąd
kwantyzacji wektorowej. Rozpatrzy przypadek uproszczony dla danych jednowymiarowych,
gdzie x=x, w którym błąd E reprezentacji danych przez centra wyrażony jest w postaci normy
euklidesowej [58]. Błąd ten można wyrazić w postaci
K
E = (x − ci )
2
(12.23)
i =1 xci
W równaniu tym ci jest centrum i-tego klastra. Optymalne wartości liczbowe tych centrów
powinny odpowiadać minimum błędu E. Warunkiem wystąpienia minimum jest zerowanie się
pierwszej pochodnej funkcji względem centrów. W związku z powyższym mamy
E K K
= (x − ci ) = (x − ci )2 = − 2(x − ck ) = 0
2
(12.24)
ck ck i =1 xci i =1 xci ck xck
Jeśli założymy, że liczba zwycięstw k-tego centrum w klastrze wynosi Nk wówczas ostania
zależność upraszcza się do postaci
1
x = N c
xck
k k → ck =
Nk
x
xck
(12.25)
275
Ostatnia postać wyrażenia pozwala stwierdzić, że rozwiązaniem w tym przypadku jest
mediana zbioru punktów x należących do k-tego klastra Sk, co zapiszemy w postaci
ck = mediana x S k (12.28)
276
Proces podziału hierarchicznego jest zwykle przedstawiany graficznie w postaci tak zwanego
dendrogramu, obrazującego sposób podziału danych. Przykład dendrogramu dla 5 danych
przedstawiono na rys. 12.4a. W przypadku danych 2-wymiarowych bardziej przejrzystym
sposobem prezentacji grupowania hierarchicznego jest struktura zagnieżdżona klastrów,
zobrazowana na rys. 12.4b.
a)
b)
Rys. 12.4 Przykład reprezentacji podziału hierarchicznego za pomocą a) dendrogramu, b)
struktury zagnieżdżonej klastrów
277
• Uaktualnij macierz odległości między poszczególnymi klastrami i porównaj z
odległościami na poprzednim poziomie podziału.
• Wykonuj powyższe operacje łączenia aż do uzyskania jednego klastra.
• Po wykonaniu powyższych czynności wybierz odpowiedni dla danego zadania poziom
podziału danych na klastry.
Dla zilustrowania powyższego algorytmu rozważmy układ 6 dwuwymiarowych rekordów
danych przedstawiony na rys. 12.5 [58].
Na starcie każdy punkt danych stanowi jeden klaster. Macierz odległościowa między
poszczególnymi punktami przedstawiona jest w tabeli 12.1.
278
Z analizy odległości między-klastrowej wynika, że najbliżej siebie są położone klastry: Kl1 i
Kl6, jak również Kl2 i Kl6 oraz Kl3 i Kl5 (wszystkie odległości równe 0.28). Wobec wspólnego
klastra Kl6 w następnym etapie można jednocześnie połączyć tylko 2 pary klastrów. Niech
będą to klastry: Kl1 i Kl6, oraz Kl3 i Kl5. Tworzymy nową macierz odległości między
klastrami poszukując tych położonych najbliżej siebie. Aby uzyskać wiarygodne łączenie
klastrów należy wziąć pod uwagę odległości wszystkich elementów tworzących poszczególne
klastry. Łączymy ze sobą te klastry, dla których maksymalne odległości elementów są
najmniejsze. W tabeli 12.2 przedstawiono macierz maksymalnych odległości między
elementami klastrów branymi pod uwagę do połączenia.
Tym razem najmniejsza odległość równa 0.40 dotyczy tylko jednej pary: klaster Kl16 zostaje
połączony z klastrem Kl2. Pozostałe klastry pozostają nadal rozłączne, gdyż odległość między
nimi jest większa niż 0.40. W efekcie na następnym etapie tworzona jest nowa macierz
maksymalnych odległości między najdalej położonymi elementami klastrów, przedstawiona
w tabeli 12.3.
Klaster Kl35 jest teraz łączony z klastrem Kl4 tworząc większy klaster K354. W efekcie
procedura łączenia hierarchicznego dobiegła końca przy podziale danych na dwa klastry Kl162
oraz Kl354. Na rys. 12.6 przedstawiono dendrogram oraz strukturę zagnieżdżoną klastrów
ilustrujące proces grupowania hierarchicznego danych z przykładu.
279
a)
b)
Rys. 12.6 Ilustracja procesu grupowania danych z przykładu w postaci: a) dendrogramu, b)
struktury zagnieżdżonej klastrów
280
klastrów musi być równa 1. Położenie centrum klastra jest uzależnione od liczby i rozkładu
danych w określonym rejonie przestrzeni. Centra lokowane są w rejonach o dużej gęstości
danych. Przedstawimy tu dwie odmiany grupowania rozmytego: algorytm grupowania
górskiego oraz c-means.
g (c) = exp −
n
(12.29)
j =1 2 2
W równaniu tym n oznacza liczbę wektorów x poddanych grupowaniu. Współczynnik σ jest
stałą dobieraną indywidualnie dla każdego problemu, charakteryzującą szerokość funkcji
górskiej, natomiast b jest jej wykładnikiem (standardowo b=1). Wartość funkcji g(c) jest
miarą wysokości funkcji górskiej. Jest ona tym większa im więcej wektorów x jest
skupionych wokół potencjalnego centrum c. Mała wartość g(c) świadczy o tym, że centrum c
leży w obszarze, w którym znajduje się niewielka liczba wektorów x. Współczynnik σ ma
niewielki wpływ na ostateczne relacje zachodzące między kolejnymi wartościami g(c) stąd
przyjęcie arbitralne jego wartości nie jest krytyczne dla wyniku grupowania danych.
Po wyznaczeniu wartości g(c) dla wszystkich potencjalnych centrów wybieramy
centrum c1 reprezentujące największą wartość g(c). Aby wyznaczyć następne centrum, należy
najpierw wyeliminować c1 oraz węzły w bezpośredniej jego bliskości. Można to zrobić
redefiniując funkcję górską przez odjęcie od niej przeskalowanej funkcji Gaussa z centrum
położonym w c1. Oznaczając tę funkcję przez gnew(c) otrzymuje się
c − c1
2b
281
Rys. 12.7 ilustruje typowy proces grupowania górskiego dla obszaru
dwuwymiarowego [58], przy czym rys.12.7a pokazuje wykres startowy funkcji g(c), rys.
12.7b - funkcję gnew(c) po wyeliminowaniu pierwszego centrum w c1, rys. 12.7c - po
wyeliminowaniu drugiego centrum w c2, a rys. 12.7 d - po wyeliminowaniu trzeciego centrum
w c3. Jak widać eliminacja kolejnych centrów (maksimów funkcji górskich) odkrywa
następne centra i umożliwia w dalszej kolejności ich eliminację.
D(c i = x i ) = exp −
n
(12.31)
j =1 (ra / 2)2
Wartość współczynnika ra ustala wielkość sąsiedztwa. Tylko wektory xj znajdujące się w tym
sąsiedztwie wpływają w sposób istotny na wartość D(ci). Przy dużym zagęszczeniu punktów
wokół xi jako potencjalnego centrum wartość D(ci) jest duża. Mała wartość świadczy o tym,
282
że w otoczeniu xi znajduje się niewielka liczba danych. Taki punkt jest złym kandydatem na
centrum.
Po określeniu wartości funkcji górskiej dla każdego punktu danych, wyznaczany jest
wektor x dla którego miara gęstości D(ci=xi). jest największa. Stanowi on pierwsze
wyselekcjonowane centrum c1. Wyznaczenie następnego centrum jest możliwe po
wyeliminowaniu poprzedniego oraz wszystkich punktów należących do jego otoczenia.
Podobnie jak w grupowaniu górskim redefiniuje się funkcję górską, wprowadzając
Dnew(ci=xi) [89]
x −c
2b
283
1
ij = 2 (12.34)
M d ij m −1
k =1 d
kj
w której dij jest odległością euklidesową między centrum ci a wektorem xj, dij = ci − x j .
Wartość współczynnika m dobierana jest przez użytkownika. Najczęściej przyjmuje się m=2.
Wektor xj będzie przynależał do różnych grup, reprezentowanych przez centra ci, w stopniu
μij przy czym 0 ij 1 , a sumaryczny stopień przynależności wektora x do wszystkich grup
dla zadanego zbioru wektorów uczących xj osiągnąć minimum funkcji błędu (12.36) przy
jednoczesnym spełnieniu warunków ograniczenia 12.35). Jest to problem minimalizacji
funkcji nieliniowej z n ograniczeniami typu równościowego.
Rozwiązanie tak zdefiniowanego problemu sprowadzić można do minimalizacji
funkcji Lagrange'a zdefiniowanej w postaci [55]
M n
J = ijm c i − x j + j ij − 1
i =1 j =1
2 n
j =1
(
i =1
M
) (12.37)
oraz
1
ij = 2 (12.39)
M d ij m−1
k =1 d
kj
284
w której dij jest odległością euklidesową między centrum ci a wektorem xj. Wobec nieznanych
na początku dokładnych wartości centrów algorytm adaptacji jest algorytmem iteracyjnym.
Może być on przedstawiony w następującej postaci.
1. Dokonaj inicjalizacji położeń centrów ci przyjmując ich wartości wewnątrz przedziału
zmienności poszczególnych składowych wektorów x.
2. Określ wartości współczynników przynależności μij do centrów ci (i=1, 2,...., M) dla
wszystkich wektorów xj (j=1, 2,..., n) stosując wzór (12.39).
3. Wyznacz funkcję błędu E według wzoru (12.37). Jeśli jej wartość spadnie poniżej
założonego progu lub jeśli redukcja tej wartości względem ostatniej iteracji jest
pomijalnie mała - koniec obliczeń. Ostatnie wartości centrów stanowią wówczas
rozwiązanie. W przeciwnym przypadku idź do punktu 4.
4. Oblicz nowe położenia centrów ci według wzoru (12.38) i wróć do punktu 2
algorytmu.
Procedura iteracyjna powtórzona wielokrotnie prowadzi do minimum funkcji błędu które
niekoniecznie stanowi jej minimum globalne. Jakość otrzymanych centrów mierzona
wartością funkcji błędu w zasadniczym stopniu zależy od wstępnego doboru centrów ci.
Najlepsza reprezentacja centrów wymaga, aby były one wstępnie ulokowane w obszarach
zawierających największą liczbę danych wektorów xj. Rozpoczęcie procedury iteracyjnej
wyznaczania optymalnych wartości centrów powinno być zatem poprzedzone procedurą ich
inicjalizacji. Można do tego celu zastosować między innymi algorytm grupowania górskiego
lub grupowania różnicowego.
Algorytm c-means jest zaimplementowany w Matlabie w postaci funkcji fcm.m
(toolbox Fuzzy Logic) [49]. Podstawowe wywołanie tej funkcji ma postać
[C, U, OBJ_FCN] = fcm(X, K)
Dane podlegające grupowaniu rozmytemu zawarte są w macierzy X zawierającej n wektorów
obserwacji x, każdy o wymiarze N. Liczba klastrów zdefiniowana jest liczbą K. Wynik
grupowania w postaci macierzy C o wymiarze K×N zawiera położenia poszczególnych
centrów. Macierz U zawiera wartości współczynników przynależności każdego wektora
danych do poszczególnych klastrów reprezentowanych przez centra. Wartości tych
współczynników zawierają się między zerem i jeden. Zmienna wynikowa OBJ_FCN zawiera
wartości minimalizowanej funkcji celu w procesie grupowania. Proces grupowania kończy
się, gdy zostanie osiągnięta założona liczba iteracji lub gdy różnica funkcji celu w dwu
sąsiednich iteracjach jest mniejsza niż założona wartość tolerancji (obie wielkości mogą być
ustawiane poprzez dobór odpowiednich opcji).
285
Poniższy przykład w Matlabie ilustruje działanie algorytmu c-means oraz K-means na
tym samym zbiorze danych wygenerowanym losowo.
MATLAB Python
close all # !conda install -c conda-forge scikit-fda
#
# [1] Ramos-Carreño, et al. (2019).
# GAA-UAM/scikit-fda: Functional Data
# Analysis in Python
# [Computer software].
#https://doi.org/10.5281/zenodo.3468127
import numpy as np
import matplotlib.pyplot as plt
from skfda.ml.clustering import (FuzzyCMeans,
KMeans)
from skfda import FDataGrid
x=[2+0.5*randn(10,2); X = np.concatenate( (
-1+0.3*randn(7,2); 2+0.5*np.random.randn(10,2),
0.5+0.4*randn(7,2)] -1+0.3*np.random.randn(7 ,2),
0.5+0.4*np.random.randn(7 ,2)),
axis=0)
fd = FDataGrid(X)
legend('Klasa 1', 'Klasa 2', ... plt.legend(('Klasa 1', 'Klasa 2', 'Klasa 3',
'Klasa 3', 'cMeans', 'kMeans') 'cMeans', 'kMeans'))
hold off
286
Obie procedury grupowania stosują tę samą liczbę centrów równą trzy. W wyniku działania
programu uzyskano następujące położenia centrów (w każdej realizacji procesu wyniki mogą
być nieco inne):
• Algorytm c-means
C =
1.9788 1.9758
-1.1723 -0.8569
0.5621 0.5910
• Algorytm K-means
C_kmeans =
2.0036 1.8457
-1.1945 -0.8534
0.4772 0.5189
a)
Rys. 12.9 Przykładowe dane losowe z oraz centra reprezentujące rozmytą c-means oraz
reprezentację ostrą K-means w a) Matlabie i b) Pythonie
W przypadku algorytmu c-means każdy wektor danych jest przypisany do każdego klastra ale
z różnym współczynnikiem przynależności. Szczegółowe wyniki zawarte są w macierzy U
U=
0.9065 0.0200 0.0735
0.9723 0.0056 0.0221
0.9920 0.0014 0.0066
0.9712 0.0056 0.0232
0.9956 0.0007 0.0036
0.7306 0.0391 0.2303
287
0.6312 0.0606 0.3082
0.0058 0.9759 0.0184
0.0011 0.9948 0.0041
0.0206 0.8976 0.0818
0.0003 0.9989 0.0009
0.0028 0.9871 0.0101
0.0049 0.9793 0.0158
0.0021 0.9909 0.0070
0.0346 0.0195 0.9458
0.0813 0.1335 0.7853
0.0827 0.2532 0.6641
0.0343 0.0284 0.9373
0.0353 0.0292 0.9355
0.0067 0.0039 0.9894
0.0339 0.0185 0.9475
288
Rys. 12.9 Porównanie odwzorowania danych jednowymiarowych funkcji sinus przez
a) reprezentację rozmytą c-means, b) reprezentację ostrą K-means
289
oznacza, że przy zastosowaniu metod rozmytych grupowania każdy wektor x jest przypisany
jednoznacznie do klasy o najwyższym współczynniku przynależności.
Niezależnie od zastosowanego algorytmu grupowania pozostaje problem oceny
uzyskanego wyniku. Aby tego dokonać należy zdefiniować pewne miary jakości klastrów.
Można tu wyróżnić miary uwzględniające zwartość każdego pojedynczego klastra oraz miary
separacji między klastrami. Miary te będą różne dla danych nie posiadających z góry
przypisania do żadnej klasy oraz danych, z których każda reprezentuje z góry określoną
przynależność do klasy.
Mała wartość miary rozproszenia świadczy o dużym skupieniu wektorów tworzących klaster,
duża wartość tej miary świadczy o rozproszeniu danych.
Miary definiujące separację między klastrami można zdefiniować również na kilka
sposobów, uwzględniając bądź odległości między poszczególnymi wektorami tworzącymi
klastry bądź odległości między centrami klastrów [58.82].
290
• Miara separacji między klastrami reprezentowanymi przez centra na podstawie
rozkładu wektorów x w obu klastrach
Na tej podstawie definiuje się znormalizowany błąd kwantyzacji definiujący średni błąd
kwantyzacji przypadający na jedną daną. Przy n danych biorących udział w grupowaniu
definiuje się go w postaci
1 K
eq = d 2 (x, ci ) (12.46)
n i=1 xci
Mniejszy błąd jednostkowy kwantyzacji świadczy o małym rozproszeniu danych we
wszystkich klastrach (dane są położone bardzo blisko swoich centrów).
Istotnym problemem w grupowaniu danych jest ustalenie liczby klastrów na które
dzielona będzie przestrzeń danych. W przypadku danych dwu lub trzy-wymiarowych często
możliwa jest prosta ocena wzrokowa naturalnego rozkładu danych i na tej podstawie
estymacja liczby grup danych. W przypadku danych wielowymiarowych nie można ocenić
wzrokowo rozkładu danych i konieczne jest zastosowanie metody systematycznej opartej na
miarach numerycznych. Prostym rozwiązaniem może być wykorzystanie błędu kwantyzacji
291
dla różnej liczby klastrów K=1, 2, …, M. Dla każdej przyjętej liczby klastrów oblicza się błąd
kwantyzacji i wykreśla się jego wartość w funkcji K. Typowy przebieg takiego wykresu
przedstawia rys. 12.10.
Rys. 12.10. Typowy wykres błędu kwantyzacji wektorowej w funkcji liczby klastrów
Dla małej liczby klastrów każde zwiększenie ich liczebności w sposób istotny zmniejsza
wartość błędu. Przy pewnej liczbie (na rysunku jest to K=4 ) następuje wyraźne
ustabilizowanie się wartości błędu. Wartość K przy której następuje to zjawisko można uznać
za właściwą liczbę klastrów. Należy przy tym pamiętać, że metoda ta jest jedynie pewnym
przybliżeniem heurystycznym rozwiązania optymalnego, które nie zawsze jest możliwe do
zastosowania (w wielu przypadkach nie ma widocznego nasycania się krzywej błędu).
292
Na podstawie składu wektorów x w klastrze i ich przynależności do klas wyznacza się
wartości pij, estymujące wartości przynależności elementów j-tej klasy (j=1, 2, …, M) w i-tym
klastrze (i=1, 2, …, K) w postaci
nij
pij = (12.47)
ni
We wzorze tym nij oznacza liczbę elementów j-tej klasy wchodzących w skład i-tego klastra,
natomiast ni oznacza liczbę elementów i-tego klastra. Na tej podstawie można zdefiniować
różne wskaźniki jakości grupowania danych przypisanych do klasy.
• Precyzja klasowa klastra
Miara ta bazuje bezpośrednio na wartości pij. Oznacza prawdopodobieństwo sklasyfikowania
i-tego klastra jako reprezentanta j-tej klasy i jest dana wzorem
pr(i, j) = pij (12.52)
Im większa wartość miary pr(i,j) tym większe prawdopodobieństwo zaliczenia i-tego klastra
jako reprezentanta j-tej klasy.
• Entropia
Miara entropijna określa w jakim stopniu klaster składa się z elementów należących do jednej
klasy. Entropia klastra i-tego jest wówczas zdefiniowana zależnością
j =1
(12.48)
Mała, bliska zeru wartość stopnia przynależności różnych klas przy dominacji jednej,
świadczy o jednorodnym składzie klastra, dając małą wypadkową wartość entropii dla całego
klastra.
Całkowita entropia zbioru K klastrów jest sumą wagową entropii wszystkich klastrów,
z wagą uwzględniającą wielkość klastra. Przy oznaczeniu przez n liczby wszystkich
wektorów x miara entropijna zbioru danych określona jest wzorem
K ni
e= ei (12.49)
i =1 n
293
pi = max pij (12.50)
j
Dla zbioru K klastrów miara ta jest zdefiniowana jako suma wagowa miar wszystkich
klastrów
K ni
p= pi (12.51)
i =1 n
Im większa jest wartość p tym bardziej jednorodny jest skład poszczególnych klastrów.
294
Przy liczebności n wektorów x liczba takich kombinacji par po 2 jest równa m=n(n-1)/2.
Jako przykład rozpatrzmy zbiór n=5 rekordów danych oznaczonych jako X1, X2, X3,
X4, X5, których przynależność do 2 klastrów C1 i C2 oraz 2 klas K1 i K2 podane są w
tabelach 12.4 i 12.5. Przynależność danych do klastrów: C1={X1,X2,X3}, C2={X4,X5} i
przynależność do klas: K1={X1,X2}, K2={X3,X4,X5}.
Tabela 12.6 Tabela tworzenia przynależności do klastrów i klas dla danych z przykladu
Pary f11 f00 f01 f10
danych
X1−X2 +
X1−X3 +
X1−X4 +
X1−X5 +
295
X2−X3 +
X2−X4 +
X2−X5 +
X3−X4 +
X3−X5 +
X4−X5 +
Suma 2 4 2 2
Dla przyjętych oznaczeń parametrów f11, f00, f01, f10 definiuje się dwa rodzaje
współczynników: współczynnik R uwzględniający wszystkie parametry oraz miarę Jaccarda
wykluczającą parametr f00 [82]
• Współczynnik R
f 00 + f11
R= (12.55)
f 00 + f 01 + f10 + f11
• Miara Jaccarda
f11
J= (12.56)
f01 + f10 + f11
Wartości obu współczynników zmieniają się od zera do jedności. Wartość równa jeden jest
przypadkiem idealnym, gdy istnieje pełna zgodność przynależności do klas i klastrów. W
przypadku rozpatrywanym w przykładzie otrzymuje się następujące wartości tych
współczynników
f00 + f11 4+2
R= = = 0.6
f00 + f01 + f10 + f11 4 + 2 + 2 + 2
f11 2
J= = = 0.33
f01 + f10 + f11 2 + 2 + 2
296