background image

Laboratorium z analizy skupieo. 

Analiza skupieo, grupowanie (

ang.

 Cluster analysis) –jest metodą tzw. klasyfikacji bez nadzoru (ang. unsupervised learning). Jest to 

metoda  dokonująca  grupowania elementów we względnie jednorodne klasy. Podstawą grupowania w większości algorytmów jest 
podobieostwo pomiędzy elementami – wyrażone przy pomocy funkcji (metryki) podobieostwa bądź odległości. Poprzez grupowanie 
można również rozwiązad problemy z gatunku odkrywania struktury w danych oraz dokonywanie uogólniania. Grupowanie polega 
na wyodrębnianiu grup (klas, podzbiorów). 

Grupujemy  te  obiekty  które  są  do  siebie  podobne.  Często  zamiast  podobieostwa  mierzy  się  odległości  między  obiektami.  Istnieją 
różne miary podobieostwa czy odległości. Powinny byd one wybierane konkretnie dla typu danych analizowanych: inne są bowiem 
miary typowo dla danych binarnych, inne dla danych nominalnych a inne dla danych numerycznych 

 

Zadania do wykonania: 

Oblicz odległośd punktu A o współrzędnych (2,3) do punktu B o współrzędnych (7,8). 

 

D (A,B) = pierwiastek ((7-2)

2

 + (8-3)

2

) = pierwiastek (25 + 25) = pierwiastek (50) = 7.07 

Mając dane punkty: A(2,3), B(7,8) oraz C(5,1) oblicz odległości między punktami: 

 

D (A,B) = pierwiastek ((7-2)

+ (8-3)

2

) = pierwiastek (25 + 25) = pierwiastek (50) = 7.07 

D (A,C) = pierwiastek ((5-2)

2

 + (3-1)

2

) = pierwiastek (9 + 4) = pierwiastek (13) = 3.60 

D (B,C) = pierwiastek ((7-5)

+ (3-8)

2

) = pierwiastek (4 + 25) = pierwiastek (29) = 5.38 

Wszystko  jest  dużo  bardziej  jasne  gdy  mamy  punkty  na  płaszczyźnie.  Gdy  jednak  liczba  wymiarów  się  zwiększa  zadanie  stanowi 
większy  problem.  Wyobraźmy  sobie,  że  nie  mamy  2  zmiennych  opisujących  każdy  obiekt,  ale  tych  zmiennych  jest  np.  5: 
{v1,v2,v3,v4,v5} i że obiekty opisane tymi zmiennymi to 3 punkty: A, B i C: 

 

V1 

V2 

V3 

V4 

V5 

0.7 

0.8 

0.4 

0.5 

0.2 

0.6 

0.8 

0.5 

0.4 

0.2 

0.8 

0.9 

0.7 

0.8 

0.9 

A

B

0

5

10

0

2

4

6

8

y

x

A

B

A

B

C

0

2

4

6

8

10

0

2

4

6

8

y

x

A

B

C

background image

 

Policzmy teraz odległośd między punktami: 

D  (A,B)  =  pierwiastek  ((0.7-0.6)

2

  +  (0.8-0.8)

+  (0.4-0.3)

2

  +  (0.5-0.4)

2

  +  (0.2-0.2)

2

)  =  pierwiastek  (0.01  +  0.01  +  0.01)  =  pierwiastek 

(0.03) = 0.17 

D (A,C) = pierwiastek ((0.7-0.8)

2

 + (0.8-0.9)

+ (0.4-0.7)

2

 + (0.5-0.8)

2

 + (0.2-0.9)

2

) = pierwiastek (0.01 + 0.01 + 0.09 + 0.09 + 0.49) = 

pierwiastek (0.69) = 0.83 

D  (B,C)  =  pierwiastek  ((0.6-0.8)

2

  +  (0.8-0.9)

+  (0.5-0.7)

2

  +  (0.4-0.8)

2

  +  (0.2-0.9)

2

)  =  pierwiastek  (0.04  +  0.01  +  0.04+0.16  +  0.49)  = 

pierwiastek (0.74) = 0.86 

Szukamy  najmniejszej  odległości,  bo  jeśli  te  dwa  punkty  są  najbliżej  siebie,  dla  których  mamy  najmniejszą  odległości  !  A  więc 
najmniejsza odległośd jest między punktami A i B ! 

 

Metody grupowania 

Grupowanie jako jedna z metod pozyskiwania wiedzy, a tym samym eksploracji danych, jest ściśle uwarunkowana źródłem danych 
oraz oczekiwaną postacią rezultatów. 

Algorytmy analizy skupieo dzieli się na kilka podstawowych kategorii: 

 

metody  hierarchiczne  –  algorytm  tworzy  dla  zbioru  obiektów  hierarchię  klasyfikacji,  zaczynając  od  takiego  podziału,  w 
którym każdy obiekt stanowi samodzielne skupienie, a koocząc na podziale, w którym wszystkie obiekty należą do jednego 
skupienia. Istnieją dwa rodzaje metod hierarchicznych:  

o  procedury  aglomeracyjne  (ang.  agglomerative)  –  tworzą  macierz  podobieostw  klasyfikowanych  obiektów,  a 

następnie w kolejnych krokach łączą w skupienia obiekty najbardziej do siebie podobne, 

o  procedury deglomeracyjne (ang. divisive) – zaczynają od skupienia obejmującego wszystkie obiekty, a następnie w 

kolejnych krokach dzielą je na mniejsze i bardziej jednorodne skupienia aż do momentu, gdy każdy obiekt stanowi 
samodzielne skupienie. 

 

grupa metod k-średnich (ang. k-means), w której grupowanie polega na wstępnym podzieleniu populacji na z góry założoną 
liczbę klas. Następnie uzyskany podział jest poprawiany w ten sposób, że niektóre elementy są przenoszone do innych klas, 
tak, aby uzyskad minimalną wariancję wewnątrz uzyskanych klas. Podstawowy algorytm (J. MacQueen, 1967):  

o  losowy wybór środków (centroidów) klas (skupieo), 
o  przypisanie punktów do najbliższych centroidów, 
o  wyliczenie nowych środków skupieo, 
o  powtarzanie algorytmu aż do osiągnięcia kryterium zbieżności (najczęściej jest to krok, w którym nie zmieniła się 

przynależnośd punktów do klas); 

 

metody rozmytej analizy skupieo (ang. fuzzy clustering), wśród których najbardziej znaną jest metoda c-średnich (c-means). 
Metody  rozmytej  analizy  skupieo  mogą  przydzielad  element  do  więcej  niż  jednej  kategorii.  Z  tego  powodu  algorytmy 
rozmytej analizy skupieo są stosowane w zadaniu kategoryzacji (przydziału jednostek do jednej lub wielu kategorii). Metody 
rozmytej analizy skupieo różnią się pod tym względem od metod klasycznej analizy skupieo, w których uzyskana klasyfikacja 
ma charakter grupowania rozłącznego, którego wynikiem jest to, że każdy element należy do jednej i tylko jednej klasy. 

ALGORYTM K-MEANS (K-ŚREDNICH) 

Inicjalizacja – wykonad wstępny podział obiektów na k – skupieo (wybór k – wiele możliwości). Przebieg algorytmu (4 kroki): 

1)  Dla każdego skupienia obliczyć jego centroid 
2)  Rozważa się kolejno obiekty i przydziela do najbliższego centroidu 
3)  Jeżeli  nie  osiągnięto  stabilizacji  (obiekty  przenoszą  się  między  skupieniami) 

wyznacza się nowe, poprawione centroidy. 

4)  Kroki  2  i  3  powtarza  się  aż  do  osiągnięcia  stabilizacji  (obiekty  znajdą  się  we 

właściwych  skupieniach)  cel:  minimalna  odległość  wewnątrz  skupień,  maksymalna  – 
między skupieniami. 

 

 

background image

Przykład 

Krok 0 – inicjalizacja obiektów 

 

 

 

 

Krok 1 – wybór liczby skupieo: k=2 
 

Wybór zalążków skupieo (środków, centrów) 

K1 = (2,6) 
K2 = (7,4) 
Krok 2 – przydziel obiekty do skupieo 

 

 

punkt  K1 

K2 

5.385164807 

2.23606798 

2.23606798 

5.656854249 

2.23606798 

4.242640687 

5.65685425 

2.236067977 

4.47213595 

5.83095189 

5.38516481 

10 

6.08276253 

1.414213562 

 

0

2

4

6

8

10

0

1

2

3

4

5

6

7

8

9 10

background image

Czyli widzimy ze punkty 1,2,3 i 4 mają mniejsze odległości od punktu K1, zaś punkty 5,6,7,8,9,10 mają bliżej do punktu K2. 

 

Krok 3 – wylicz nowe środki grup 

 

 

A wiec wiedząc, że do skupienia pierwszego, którego poprzednio środkiem był punktu K1(2,6) zostały przydzielone punkty: 

Reprezentantem takiego skupienia, a więc nowym  zalążkiem grupy będzie punkt będący tzw. środkiem ciężkości grupy. Obliczamy 
jako wartośd średnią z wartości punktów tworzących grupę, a więc osobno liczymy wartośd średnią dla 1 kolumny, i osobno  – dla 
drugiej kolumny. 

Średnia dla współrzędnej x (1 kolumny) będzie wyliczona jako: (2 + 3 + 3 + 4 )/4 = 12/4 = 3 

Średnia dla współrzędnej y (2 kolumny) będzie wyliczona jako: (6 + 4 + 8 +7)/4 = 25/4 = 6.25 

Zaś do skupienia drugiego, punkty: 

 

Średnia dla współrzędnej x (1 kolumny) będzie wyliczona jako: (6 + 6 +7 + 7 + 7 + 8 )/6 = 41/6 = 6,83 

0

2

4

6

8

10

0

1

2

3

4

5

6

7

8

9 10

background image

Średnia dla współrzędnej y (2 kolumny) będzie wyliczona jako: (2 + 4 + 3 + 4 + 6 + 5)/6 = 24/6 = 4 

 

Krok 4. Ponownie przydziel obiekty do najbliższych im skupieo 

 

 

 

d(punkt,k1A) 

d(punkt,k2A) 

1.03 

5.23 

2.25 

3.83 

1.75 

5.54 

1.25 

4.12 

5.20 

2.17 

3.75 

0.83 

5.15 

1.01 

4.59 

0.17 

4.01 

2.01 

10 

5.15 

1.54 

 

A więc – co już zaznaczono kolorami – znów punkty 1,2,3,4 mają bliżej do środka K1A niż K2A, a punkty 5,6,7,8,9,10 bliżej do K2A niż 
K1A. 

Skoro  żaden  z  punktów  nie  zmienił  grupy,  czyli  ta  iteracja  nie  różni  się  niczym  od  poprzedniej,  algorytm  grupowania  zostaje 
zakooczony. Nie ma  bowiem  sensu liczyd nowych środków skupieo i dalej sprawdzad przydział do grup, gdyż  środki (zalążki) będą 
takie same ! 

3; 6.25

6.83; 4

0

1

2

3

4

5

6

7

8

9

10

0

1

2

3

4

5

6

7

8

9

10

background image

 

 

Zadanie 1 (za pomocą Excela) 

Mając 10 punktów: 

 

A  2 

B  6 

C  7 

D  8 

E  8.5  3 

10 

G  11 

H  12 

13 

14 

K  15 

19 

Rozkład punktów na płaszczyźnie 

 

 

Losowy wybór centroidów 

V1 = (5,6)  

v2=(12,4) 

3; 6.25

6.83; 4

0

1

2

3

4

5

6

7

8

9

10

0

1

2

3

4

5

6

7

8

9

10

background image

 

Wykonaj grupowanie algorytmem k-średnich. 

Zadanie 2 (za pomocą Rattle) 

Przeprowadź grupowanie dla następujących danych: 

 

V1  V2  V3  V4  V5 

M  3 

 

Zadanie 3 

Dla  wybranego  przez  siebie  zbioru  danych  do  analizy  z  repozytorium  Machine  Learning  Repository  dokonaj  grupowania  danych 
algorytmem k-średnich, dla danych numerycznych. 

Spróbuj  różnych  konfiguracji  liczby  skupieo,  sprawdź  też  czy  w  opisie  zbioru  na  stronie  źródłowej  jest  informacja  o  liczbie  klas 
(skupieo)  bowiem  niektóre  zbiory  mają  taką  informację.  Wówczas  jeśli  liczba  klas  została  określona  np.  na  5,  to  spróbuj  dokonad 
grupowania gdy k=5, ale również k=4 i k=6 i zinterpretuj wyniki. Jeśli w zbiorze nie ma określonej liczby skupieo, wybierz 3  możliwe 
konfiguracje i też zinterpretuj wyniki.