Analiza skupień

Report
Agnieszka Nowak - Brzezińska
Inne metody analizy danych DM
Metody eksploracji danych
• odkrywanie asocjacji
• odkrywanie wzorców sekwencji
• klasyfikacja
• analiza skupień - grupowanie
• szeregi czasowe
• wykrywanie zmian i odchyleń
Grupowanie jest to podział zbioru obiektów na podzbiory taki by podobieństwo
obiektów należących do jednego podzbioru było największe a obiektów należących
do różnych podzbiorów najmniejsze.
Grupowanie – analiza skupień
Na czym polega grupowanie ?
Obiekt jest przydzielony do skupienia, którego środek ciężkości leży
najbliżej w sensie odległości euklidesowej.
Analiza skupień – cluster analysis
Uczenie nienadzorowane
• dany jest zbiór uczący, w którym obiekty nie są poklasyfikowane
• celem jest wykrycie nieznanych klasyfikacji, podobieństw między
obiektami
jak znajdować podobieństwo ?
•Miary odległości,
•Miary podobieństwa.
X4 : 0 0 0 0 1 0 0 3
X22: 0 0 0 0 1 1 0 3
d ( x4 , x22 )  (0  0) 2  (0  0) 2  (0  0) 2  (0  0) 2  (1  1) 2  (0  1) 2  (0  0) 2  (3  3) 2  1  1
p( x4 , x22 ) 

0  0  0  0  0  0  0  0  1 1  0 1  0  0  3  3
(0  0  0  0  1  0  0  3 ) * (0  0  0  0  1  1  0  3 )
2
2
2
1 9
10

 0.95
10*11 10.49
2
2
2
2
2
2
2
2
2
2
2
2
2

Analiza skupień – przykład
Klasyfikacja...
Analiza skupień – to proces podziału danych na podzbiory zwane
klasami (skupieniami) z punktu widzenia określonego kryterium
Klasyfikacja - czyli podział zbiorów obiektów na skupienia.
dany jest zbiór uczący, w którym obiekty nie są poklasyfikowane,
celem jest wykrycie nieznanych klasyfikacji, podobieństw między
obiektami.
Powstałe grupy (skupienia) są zespołami obiektów badanej serii
bardziej podobnych do siebie (wewnątrz
pozostałych obiektów (między grupami).
grupy)
niż
do
Warunki:
ustalenie standardu opisu badanego obiektu – zespołu
diagnostycznych cech, które dobrze opisują zmienność
badanych,

 określenie sposobu porównywania
(rozróżnialność obiektów).
Można określić na dwa sposoby:
 jako różnicę (czyli odległość d),
lub z drugiej strony
 jako podobieństwo p.
obiektów.
Inność
Metody obliczania odległości i podobieństwa
Nazwa
Wzór
opis
Odległość
miejska
wartość bezwzględna z prostej różnicy między
wartościami i-tych cech dla badanych obiektów x
iy
Odległość
euklidesowa
pierwiastek z kwadratu różnicy między
wartościami cech dla badanych obiektów x i y
Odległość
Czebyszewa
największa różnica między znormalizowanymi
cechami (znormalizowanymi, aby ich wartości
były porównywalne) badanych obiektów x i y
gdzie: xi,yi - to wektory wartości cech porównywanych obiektów w przestrzeni pwymiarowej, gdzie odpowiednio wektory wartości to:
[ x(i )1 , x(i ) 2, ..., x(i ) p ]
oraz
[ y(i )1 , y(i ) 2, ..., y(i ) p ]
Metody obliczania odległości i podobieństwa cd.
Metody obliczania podobieństw (współczynników podobieństwa) są
mniej liczne. Dwa najczęściej używane współczynniki podobieństwa to:
•współczynnik korelacji liniowej Pearsona
•odległość kątowa
Im większa wartość współczynnika podobieństwa, tym bardziej
podobne do siebie są badane obiekty, zaś przy maksymalnej
wartości p = 1 obiekty stają się identyczne.
Rodzaje algorytmów:

graficzne - na przykład diagramy Czekanowskiego,

hierarchiczne (aglomeracyjne, deglomeracyjne),

k-optymalizacyjne –(nie-hierarchiczne) seria dzielona jest na k
zbiorów obiektów, przy czym obiekt może należeć tylko do jednego ze
zbiorów, a liczba k jest zwykle podawana przez badacza.
Algorytmy k-optymalizacyjne...
Obiekt jest przydzielony do skupienia, którego środek
ciężkości leży najbliżej w sensie odległości euklidesowej.
Cel klasyfikacji:
1.
2.
minimalizacja zmienności wewnątrz skupień,
maksymalizacja zmienności między skupieniami.
Przebieg:
1. Wyznaczenie k początkowych skupień przez badacza
2. Przydzielenie obiektów do najbliższych im skupień
Kolejno (iteracyjnie) powtarzane przenoszenie obiektów
skupieniami tak, aby uzyskać najlepszy podział na grupy.
między
Warunek końca procesu optymalizacji:
 zostanie przekroczona ustalona z góry maksymalna liczba iteracji
(kroków),
lub
 nastąpi stabilizacja struktury klas.
Kryterium oceny jakości podziału serii obiektów na grupy jest
tzw. funkcja podziału mająca zwykle postać sumy odległości
euklidesowych obiektów od środków ciężkości właściwych im grup.
TD(C)   dist( p, mc )
pC
gdzie:
dist( p, mc )
to odległość euklidesowa danego punktu p od centrum grupy
Analiza skupień – popularne algorytmy


algorytm k-means
algorytm k-medoids
Tworzenie skupień – co jest potrzebne ?



Zbiór obiektów opisanych atrybutami,
Doprowadzenie
do
porównywalności
atrybutów
(standaryzacja,normalizacja),
Wybór miary odległości (odległość Euklidesowa, metryka
Czebyszewa, odległość miejska, odległość potęgowa, i
inne).
Liczba k – jak ją określić ?
Opcje wyboru wstępnych centrów skupień mogą być następujące:

losowe przypisanie elementów do k zadeklarowanych skupień,

Maksymalizacja odległości miedzy skupieniami,

Obserwacje przy stałym interwale,

Pierwsze k obserwacji
ALGORYTM K-MEANS (K-ŚREDNICH) - [J. McQueen]

Inicjalizacja – wykonać wstępny podział obiektów na k – skupień
(wybór k – wiele możliwości)

Obiekty to punkty w d-wymiarowej przestrzeni wektorowej.
p  ( x1p ,...,xdp )


Centroid c:środek wszystkich punktów w skupieniu C
Miara dopasowania do skupienia C:
TD 2 (C ) 
 dist ( p, mc )
pC
k

Miara dopasowania grupowania ogółem:
TD   TD 2 (Ci )
2
i 1
2
Pseudokod algorytmu (4 kroki):
1. Dzielimy zbiór na K grup w sposób losowy.
2. Liczymy środek (centroid) każdej grupy.
3. Dokonujemy
ponownego
podziału
obiektów,
przypisując je do tej grupy, której środek leży
najbliżej.
4. Powtarzamy
od
2
przyporządkowania.
póki
następują
zmiany
Przykład:
Przydziel
każdy
Wylicz
nowe
obiekt do
K=2
najbliżej
grupy
środki
Kolejna
skupień
iteracja
Kolejna
iteracja
Losowo wybierz K
obiektów jako
wejściowe
środki skupień
Ponownie oblicz
Środki skupień
Ocena metody k-średnich:
Zalety:


Stosunkowo niewielka złożoność obliczeniowa,
Prosta idea.
Wady:


Szum w danych i obiekty odległe mogą zniekształcać centroidy,
Początkowy wybór wpływa na wyniki
W czym tkwi problem z metodą k-średnich ?

Algorytm jest zbyt wrażliwy na tzw. obiekty odległe – outliers,

Metoda k-medoids –zamiast tworzyć centroidy (średnie z
odległości) – tworzy medoidy – te obiekty ze zbioru n, które w
danym skupieniu są najbardziej centralne – tzn. ich odległość od
wszystkich pozostałych w danym skupieniu jest najmniejsza.

PAM (Partitioning Around Medoids) – algorytm grupowania metodą
k-reprezentantów.
ALGORYTM K-MEDOIDS [Kaufman & Rousseeuw, 1990r.]
Rozszerzenie idei algorytmu k-means (modyfikacja algorytmu k-means)
Cel – znaleźć reprezentatywne obiekty dla skupień, zwane medoidami.
Punkty medoidalne są wymieniane z innymi, jeszcze nie wybranymi, tak
aby polepszyć jakość grupowania.
Parametry:
Medoid mc: obiekt reprezentatywny w skupieniu C
Miara dopasowania do skupienia C:
TD(C)   dist( p, mc )
Miara dopasowania grupowania ogółem:
pC
k
TD   TD(Ci )
i 1
Przebieg algorytmu (5 kroków):
1. Wybrać k- obiektów reprezentatywnych (medoidów)
2. Dopasuj każdy z pozostałych (nie będących
medoidami) obiektów do najbardziej podobnych
klastrów i oblicz TDcurrent.
3. Dla każdej pary (medoidM, nie-medoidN) oblicz wartość
TDNM.
4. Wybierz ten nie-medoidN, dla którego TDN M jest
minimalne

Jeśli TDNM jest mniejsze niż:

Zamień N z M,

Ustaw TDcurrent:= TDNM

wróć do kroku 2
5. Koniec.
Typowy przebieg PAM – metodą k-medoid’ów
Total cost=20
Przydziel
Odgórnie wybierz
K obiektów jako
początkowe
MEDOIDY
Każdy z
pozostałych
obiektów do
najbliższego
medoidu
K=2
Powtarzaj dopóki
są jakieś zmiany
Losowo
wybierz jeden
obiekt
Total cost=26
Zamień obiekt
bieżący z Orandom
Oblicz
Jeśli to polepszy
jakość grup
zmiany
Koszt
Orandom
Ocena metody k-medoids
Zalety:



Dobrze sobie radzi z “ostańcami” (ang. outliers)– obiekty odległe,
izolowane
Początkowy wybór nie wpływa na wyniki
Odporność na szum w danych
Wady:


Nie radzi sobie z dużymi zbiorami danych
Wykonanie jest kosztowne dla dużych wartości n-obiektów i kskupień.
Złożoność obliczeniowa:
Algorytm k-means
gdzie:
t – liczba iteracji
k – liczba skupień
n – liczba obiektów
O(tnk) O(nk)
Algorytm k-medoids
O(k(n-k)(n-k)) O(k(n-k)2)
Porównanie obydwu metod:
 Algorytm k-medoids jest bardziej wytrzymały (odporny) na szumy i
odległe obiekty,
 Algorytm k-means jest tańszy (bardziej efektywny) pod względem
czasu przetwarzania,
 K-means jest zbyt wrażliwy na obiekty odległe (ang. outliers) – co
może zniekształcać dane,
 Zatem zamiast brać średnią wartość - bierze się najbardziej
centralny obiekt jako punkt odniesienia (medoid).
Przebieg grupowania obiektów w ramach metod
aglomeracyjnych odbywa się w następujących
krokach:
1. Utwórz n klas zawierających pojedyncze obiekty.
2. Oblicz wartość pewniej miary podobieństwa
(odległości) dla wszystkich par klas.
3. Połącz dwie klasy najbardziej podobne.
4. Jeśli wszystkie obiekty należą do jednej klasy,
to zakończ pracę. W przeciwnym przypadku przejdź
do kroku 2.
Algorytm grupowania:
1.
Mając macierz
D=[dij] (i,j = 1,2,...,n)
wyznaczamy element najmniejszy (szukamy pary skupień najmniej odległych
od siebie):
dpq = min
2.
i,j
{dij} (i,j = 1,2,...,n), p<q.
Skupienia Gp i Gq łączymy w jedno nowe skupienie, nadając mu numer
Gp:= Gp  Gq.
2.
Z macierzy D usuwamy wiersz i kolumnę o numerach q oraz podstawiamy
n:=n-1.
3.
Wyznaczamy odległości dpj (j=1,2,...,n) utworzonego skupienia Gp od wszystkich
pozostałych skupień, stosownie do wybranej metody. Wartości dpj wstawia się do
macierzy D w miejsce p-tego wiersza (w miejsce p-tej kolumny wstawiamy
elementy djp).
4.
Powtarza się kroki 1-4 aż do momentu, gdy wszystkie obiekty utworzą jedno
skupienie (tzn. gdy n=1).
Po każdej iteracji mamy coraz mniej grup,
coraz mniejszą macierz odległości.
{o1,o2,o3,o4,o5,o6,o7,o8}
o1
o2
o3
o4
o5
o6
o7
Rys. Przykład dendrogramu
o8
Surowe dane: (przykład)
VAR 1
VAR 2
1
1
3
2
1
8
3
5
3
4
1
1
5
2
8
6
5
2
7
2
3
8
4
8
9
7
2
10
5
8
Docelowo:
Dużo więcej obiektów i dużo więcej cech te
obiekty opisujących.
Macierz odległości euklidesowych (standaryzowanych)
P_1
P_1
P_2
P_3
0
5,00
4,00 2,00 5,10
4,12 1,00
5,83 6,08 6,40
0
6,40 7,00 1,00
7,21 5,10
3,00 8,49 4,00
4,47 5,83
1,00 3,00
5,10 2,24 5,00
0
7,07
4,12 2,24
7,62 6,08 8,06
0
6,71 5,00
2,00 7,81 3,00
3,16
6,08 2,00 6,00
5,39 5,10 5,83
P_2 5,00
P_4
P_5
P_6
P_7
P_8
P_3 4,00 6,40
0
P_4 2,00 7,00
4,47
P_5 5,10 1,00
5,83 7,07
P_6 4,12 7,21
1,00 4,12 6,71
0
P_7 1,00 5,10
3,00 2,24 5,00
3,16
0
P_8 5,83 3,00
5,10 7,62 2,00
6,08
5,39
0
P_9 6,08 8,49
2,24 6,08 7,81
2,00
5,10
6,71
P_10 6,40 4,00
5,00 8,06 3,00
6,00 5,83
P_9 P_10
6,71 1,00
0
1,00 6,32
6,32
0
P_1
P_2
P_17
P_3
P_4
P_5
P_6
P_7
P_8
P_9
P_1
P_17
P_1
0
P_2
5
0
P_3
4
6,4
0
P_4
2
7
4,47
0
P_5
5.1
1
5.83
7.07
0
P_6
4.12
7.21
1
4.12
6.71
0
P_7
P_7
1
1
5.1
3
2.24
5
3.16
0
P_8
5.83
3
5.1
7.62
2
6.08
5.39
0
P_9
6.08
8.49
2.24
6.08
7.81
2
5.1
6.71
0
P_10
6.4
4
5
8.06
3
6
5.83
1
6.32
Szukaj minimalnej odległości...
P_10
0
P_17
P_2
P_3
P_25
P_4
P_5
P_6
P_8
P_9
P_17
0
P_2
P_2
P_25
5
0
P_3
3
6,4
0
P_4
2
7
4,47
0
P_5
P_5
5
1
1
5.83
7.07
0
P_6
3.16
7.21
1
4.12
6.71
0
P_8
5.39
3
5.1
7.62
2
6.08
0
P_9
5.1
8.49
2.24
6.08
7.81
2
6.71
0
P_10
5.83
4
5
8.06
3
6
1
6.32
Szukaj minimalnej odległości...
P_10
0
P_17
P_25
P_3
P_4
P_36
P_6
P_8
P_9
P_17
0
P_25
5
0
P_36
P_3
P_3
3
5,83
0
P_4
2
7
4,47
0
P_6
3.16
6.71
4.12
0
P_8
5.39
2
1
1
5.1
7.62
6.08
0
P_9
5.1
7.81
2.24
6.08
2
6.71
0
P_10
5.83
3
5
8.06
6
1
6.32
P_6
Szukaj minimalnej odległości...
P_10
0
4 iteracja
P_17
P_25
P_36
P_4 P_810
P_8
P_9
P_17
0
P_25
5
0
P_36
3
5,83
0
P_4
2
7
4,12
0
2
5.1
7.62
0
7.81
2
6.08
6.71
0
3
5
8.06
11
6.3
2
P_810
P_8
5.39
P_8
P_9
5.1
P_10 5.83
P_10
Szukaj minimalnej odległości...
P_10
0
5 iteracja
P_174
P_17 P_25
P_36
P_4
P_810
P_17
P_17
P_174
0
P_25
5
0
P_36
3
5,83
0
P_4
P_4
22
7
4,12
0
P_810
5.39
2
5
7.62
0
P_9
5.1
7.81
2
6.08
6.71
Szukaj minimalnej odległości...
P_9
0
6 iteracja
P_174P_25810
P_25 P_36
P_810
P_174
0
P_25810
P_25
P_25
5
0
P_36
3
5,83
0
P_810
P_810
5.39
2
2
5
0
P_9
5.1
7.81
2
6.71
Szukaj minimalnej odległości...
P_9
0
7 iteracja
P_174
P_25810 P_369
P_36 P_9
P_174
0
P_25810
5
0
P_36
P_369
P_36
3
5
0
P_9
P_9
5.1
6.71
22
Szukaj minimalnej odległości...
0
8 iteracja
P_174369
P_174
P_174369
P_174
P_174
0
Powstanie
P_25810
5
P_369
P_369
33
P_25810
P_369
jedna
0 grupa P_17436925810
5
0
9 iteracji algorytmu
Szukaj minimalnej odległości...
9 iteracja
P_174369
P_174369
0
P_25810
5
Szukaj minimalnej odległości...
P_25810
0
Przebieg aglomeracji
•Pojedyncze wiązanie
•Odległości euklidesowe
Odległość
Łączone obiekty:
1
P_1, P_7
1
P_2, P_5
1
P_3, P_6
1
P_8, P_10
2
P_1, P_7, P_4
2
P_2, P_5, P_8, P_10
2
P_3, P_6, P_9
3
P_1, P_7, P_4, P_3, P_6, P_9
5
P_1, P_7, P_4, P_3, P_6, P_9, P_2, P_5, P_8, P_10
Dendrogram
Metoda najbliższego sąsiedztwa
d min (ci , c j )  min d ( p, g )
p  Ci , q  C j
Metoda najdalszego sąsiedztwa
d max (ci , c j )  max d ( p, g )
p  Ci , q  C j
Metoda mediany
dmean (ci , c j )  d (mi , m j )
Odległości międzygrupowe...(c.d.)
Metoda średniej grupowej
Metoda środka ciężkości
Metoda J.H. Warda
Ogólna formuła wyznaczania odległości podczas łączenia skupień Gp i Gq w nowe
skupienie dla hierarchicznych procedur grupowania to:
d pj  a p d pj  aq d qj  bd pq  c d pj  d qj
Wielkości ap, aq,b,c są parametrami przekształcenia charakterystycznymi dla różnych
metod tworzenia skupień. Wartości tych parametrów są przedstawione w tabeli nr 1.
Metoda
ap
aq
b
c
Najbliższego sąsiedztwa
0,5
0,5
0
-0,5
Najdalszego sąsiedztwa
0,5
0,5
0
0,5
Mediany
0,5
0,5
-0,25
0
Średniej grupowej
np
0
0
n p nq
0
Środka ciężkości
n p  nq
n p  nq
np
nq
n p  nq
Warda
nq
ni  n p
ni  n p  nq
n p  nq
ni  nq
ni  n p  nq


(n p  nq ) 2
ni
ni  n p  nq
0
Wykres przebiegu aglomeracji:
Warunek zatrzymania aglomeracji – kiedy ?
Aglomeracyjne tworzenie skupień kontra inne metody
-
HIERARCHICAL CLUSTERING
korzysta z macierzy odległości
tworzy drzewo obiektów (dendrogram)
nie wymaga podawania na wstępie liczby skupień
Ale wymaga określenia warunku zakończenia algorytmu
Wady AHC:
duża złożoność obliczeniowa – co najmniej O(n2)
k-means
k-medoid
AHC
O(tkn) O(kn)
O(k(n-k)2)
Co najmniej O(n2)
Wady
Wrażliwość na
obiekty odległe.
Wymagana liczba kskupień
Wymaga podania
liczby k-skupień
Wymaga podania warunku
końca, np. współczynnika
maksymalnej opłacalności
zalety
Prosta struktura,
stosunkowo mała
złożoność
obliczeniowa
Bardziej
efektywna niż kmeans bo szuka
reprezentanów i
nie jest tak
wrażliwa na
obiekty odległe
Nie wymaga podania liczby
grup, bardziej efektywna i
popularna
Złożoność
Obliczeniowa




Rattle
R
TraceIs
MS Excel

Krok 1: Załadowanie danych
K=3
K=2
K=3
plot.Mclust(x, data, dimens = c(1, 2), scale = FALSE, ...)
Parametry:
 x - rezultat.
 data – dane wejściowe.
 dimens – wymiary przestrzeni danych.
 scale – wartość TRUE lub FALSE. Domyślnie „false” –
oznacza ze wybrane wymiary nie mają być
prezentowane w tej samej skali.
Wartość:
 Możliwe są opcje: wartość BIC dla wybranej licby
skupień.
Jeśli
dane
są
wielowymiarowe
(>2)prezentowane są mieszaniny współrzędnych i
prezentowane są parami – wszystkie kombinacje
hc(modelName, data, ...)


Agglomerative hierarchical clustering based on
maximum likelihood criteria for MVN mixture
models parameterized by eigenvalue
decomposition.
modelName – typ modelu:
"E" : equal variance (one-dimensional)
"V" : spherical, variable variance (one-dimensional)
"EII": spherical, equal volume
"VII": spherical, unequal volume
"EEE": ellipsoidal, equal volume, shape, and orientation
"VVV": ellipsoidal, varying volume, shape, and orientation
Data – dane (muszą być ilościowe)
BIC for EM initialized by hierarchical clustering for
parameterized Gaussian mixture models.
EMclust(data, G, emModelNames, hcPairs, subset, eps, tol,
itmax, equalPro, warnSingular, ...)


G – liczba składowych dla których liczymy BIC
emModelNames:
"E" for spherical, equal variance (one-dimensional)
"V" for spherical, variable variance (one-dimensional)
"EII": spherical, equal volume
"VII": spherical, unequal volume
"EEI": diagonal, equal volume, equal shape
"VEI": diagonal, varying volume, equal shape
"EVI": diagonal, equal volume, varying shape
"VVI": diagonal, varying volume, varying shape
"EEE": ellipsoidal, equal volume, shape, and orientation
"EEV": ellipsoidal, equal volume and equal shape
"VEV": ellipsoidal, equal shape
"VVV": ellipsoidal, varying volume, shape, and orientation






hcPairs - A matrix of merge pairs for hierarchical clustering such as produced by function hc.
subset - A logical or numeric vector specifying the indices of a subset of the data to be used in the initial
hierarchical clustering phase.
eps - A scalar tolerance for deciding when to terminate computations due to computational singularity in
covariances. Smaller values of eps allow computations to proceed nearer to singularity. The default is
.Mclust\$eps.
tol - A scalar tolerance for relative convergence of the loglikelihood. The default is .Mclust\$tol.
itmax - An integer limit on the number of EM iterations. The default is .Mclust\$itmax.
equalPro - Logical variable indicating whether or not the mixing proportions are equal in the model. The default
is .Mclust\$equalPro.
warnSingular - A logical value indicating whether or not a warning should be issued whenever a singularity is
encountered. The default is warnSingular=FALSE. ... Provided to allow lists with elements other than the
arguments can be passed in indirect or list calls with do.call.
agnes(x, diss = inherits(x, "dist"), metric = "euclidean",
stand = FALSE, method = "average", par.method, keep.diss = n
< 100, keep.data = !diss)



x data matrix or data frame, or dissimilarity matrix, depending on the value of the diss
argument.
diss logical flag: if TRUE (default for dist or dissimilarity objects), then x is assumed to
be a dissimilarity matrix. If FALSE, then x is treated as a matrix of observations by
variables. metric character string specifying the metric to be used for calculating
dissimilarities between observations. The currently available options are "euclidean" and
"manhattan". Euclidean distances are root sum-of-squares of differences, and
manhattan distances are the sum of absolute differences. If x is already a dissimilarity
matrix, then this argument will be ignored. stand logical flag: if TRUE, then the
measurements in x are standardized before calculating the dissimilarities.
Measurements are standardized for each variable (column), by subtracting the variable's
mean value and dividing by the variable's mean absolute deviation. If x is already a
dissimilarity matrix, then this argument will be ignored. method character string
defining the clustering method.
The six methods implemented are "average" ([unweighted pair-]group average method,
UPGMA), "single" (single linkage), "complete" (complete linkage), "ward" (Ward's method),
"weighted" (weighted average linkage) and its generalization "flexible" which uses (a
constant version of) the Lance-Williams formula and the par.method argument. Default
is "average".
clara(x, k, metric = "euclidean", stand = FALSE, samples
= 5, sampsize = min(n, 40 + 2 * k), trace = 0, medoids.x
= TRUE, keep.data = medoids.x, rngR = FALSE)





stand - logical, indicating if the measurements in x are standardized before calculating
the dissimilarities. Measurements are standardized for each variable (column), by
subtracting the variable's mean value and dividing by the variable's mean absolute
deviation. samples integer, number of samples to be drawn from the dataset.
sampsize - integer, number of observations in each sample. sampsize should be higher
than the number of clusters (k) and at most the number of observations (n = nrow(x)).
trace integer indicating a trace level for diagnostic output during the algorithm.
medoids.x logical indicating if the medoids should be returned, identically to some rows
of the input data x. If FALSE, keep.data must be false as well, and the medoid indices,
i.e., row numbers of the medoids will still be returned (i.med component), and the
algorithm saves space by needing one copy less of x.
keep.data logical indicating if the (scaled if stand is true) data should be kept in the
result. Setting this to FALSE saves memory (and hence time), but disables clusplot()ing of
the result. Use medoids.x = FALSE to save even more memory. rngR logical indicating if
R's random number generator should be used instead of the primitive clara()-builtin
one. If true, this also means that each call to clara() returns a different result – though
only slightly different in good situations.
diana(x, diss = inherits(x, "dist"), metric =
"euclidean", stand = FALSE, keep.diss = n < 100,
keep.data = !diss)



diss logical flag: if TRUE (default for dist or dissimilarity objects), then x will be
considered as a dissimilarity matrix. If FALSE, then x will be considered as a matrix of
observations by variables
stand logical; if true, the measurements in x are standardized before calculating the
dissimilarities. Measurements are standardized for each variable (column), by
subtracting the variable's mean value and dividing by the variable's mean absolute
deviation. If x is already a dissimilarity matrix, then this argument will be ignored.
keep.data logicals indicating if the dissimilarities and/or input data x should be kept in
the result. Setting these to FALSE can give much smaller results and hence even save
memory allocation time. Details
fanny(x, k, diss = inherits(x, "dist"), memb.exp = 2, metric =
c("euclidean", "manhattan", "SqEuclidean"), stand = FALSE, iniMem.p =
NULL, cluster.only = FALSE, keep.diss = !diss && !cluster.only && n <
100, keep.data = !diss && !cluster.only, maxit = 500, tol = 1e-15,
trace.lev = 0)







x data matrix or data frame, or dissimilarity matrix, depending on the value of the diss argument.
In case of a matrix or data frame, each row corresponds to an observation, and each column corresponds to a
variable. All variables must be numeric. Missing values (NAs) are allowed.
In case of a dissimilarity matrix, x is typically the output of daisy or dist. Also a vector of length n*(n-1)/2 is
allowed (where n is the number of observations), and will be interpreted in the same way as the output of the
above-mentioned functions. Missing values (NAs) are not allowed.
k integer giving the desired number of clusters. It is required that 0 < k < n/2 where n is the number of
observations.
diss logical flag: if TRUE (default for dist or dissimilarity objects
memb.exp number r strictly larger than 1 specifying the membership exponent used in the fit criterion; see the
‘Details’ below. Default: 2 which used to be hardwired inside FANNY. metric character string specifying the metric
to be used for calculating dissimilarities between observations. Options are "euclidean" (default), "manhattan", and
"SqEuclidean". Euclidean distances are root sum-of-squares of differences, and manhattan distances are the sum of
absolute differences, and "SqEuclidean", the squared euclidean distances are sum-of-squares of differences. Using
this last option is equivalent (but somewhat slower) to computing so called “fuzzy C-means”.
iniMem.p numeric n * k matrix or NULL (by default); can be used to specify a starting membership matrix
maxit, tol maximal number of iterations and default tolerance for convergence (relative convergence of the fit
criterion) for the FANNY algorithm
pam(x, k, diss = inherits(x, "dist"), metric = "euclidean",
medoids = NULL, stand = FALSE, cluster.only = FALSE, do.swap =
TRUE, keep.diss = !diss && !cluster.only && n < 100, keep.data
= !diss && !cluster.only, trace.lev = 0)


do.swap logical indicating if the swap phase should happen. The default,
TRUE, correspond to the original algorithm. On the other hand, the swap
phase is much more computer intensive than the build one for large n, so
can be skipped by do.swap = FALSE.
keep.diss, keep.data logicals indicating if the dissimilarities and/or input
data x should be kept in the result. Setting these to FALSE can give much
smaller results and hence even save memory allocation time. trace.lev integer
specifying a trace level for printing diagnostics during the build and swap
phase of the algorithm. Default 0 does not print anything; higher values print
increasingly more.
kmeans
kmeans
otrzymamy dla każdej z obserwacji w zbiorze (przypomnijmy, że jest
ich 150) numer grupy do której ta obserwacja należy.
Widzimy więc, że obserwacje o numerach od 1 do 50 są
przyporządkowane grupie 1, zaś pozostałe 100 obserwacji jest w
miarę równomiernie rozłożone między grupy 2 i 3.


# Determine number of clusters
wss <- (nrow(mydata)-1)*sum(apply(mydata,2,var))
for (i in 2:15) wss[i] <- sum(kmeans(mydata,
centers=i)$withinss)
plot(1:15, wss, type="b", xlab="Number of Clusters",
ylab="Within groups sum of squares")
# K-Means Cluster Analysis
fit <- kmeans(mydata, 5) # 5 cluster solution
# get cluster means
aggregate(mydata,by=list(fit$cluster),FUN=mean)
# append cluster assignment
mydata <- data.frame(mydata, fit$cluster)



The function cluster.stats() in the fpc package provides a
mechanism for comparing the similarity of two cluster
solutions using a variety of validation criteria (Hubert's
gamma coefficient, the Dunn index and the corrected rand
index)
#
comparing
2
cluster
solutions
library(fpc)
cluster.stats(d, fit1$cluster, fit2$cluster)
where d is a distance matrix among objects, and fit1$cluster
and fit$cluster are integer vectors containing classification
results from two different clusterings of the same data.
> fit <- kmeans(dane,3)
> fit2 <- kmeans(dane,4)
> cluster.stats(d, fit$cluster, fit2$cluster)
$n
[1] 150
$cluster.number
[1] 3
$cluster.size
[1] 62 50 38
$diameter
[1] 2.677686
2.428992
2.418677
$average.distance
[1] 1.033869
0.698122
1.022906
$median.distance
[1] 0.9746794
0.6164414
0.9273618
$separation
[1] 0.2645751 1.6401219 0.2645751
$average.toother
[1] 2.797715 4.060413 3.343079
$separation.matrix
[,1]
[,2]
[,3]
[1,] 0.0000000 1.640122 0.2645751
[2,] 1.6401219 0.000000 3.6891733
[3,] 0.2645751 3.689173 0.0000000
$average.between
[1] 3.384621
$average.within
[1] 0.9241552
$n.between
[1] 7356
$n.within
[1] 3819
$within.cluster.ss
[1] 78.94084
$clus.avg.silwidths
1
2
3
0.4171823 0.7976299 0.4511051
$avg.silwidth
[1] 0.5525919
$g2
NULL
$g3
NULL
$pearsongamma
[1] 0.7144752
$dunn
[1] 0.0988074
$entropy
[1] 1.079224
$wb.ratio
[1] 0.2730454
$ch
[1] 560.3999
$corrected.rand
[1] 0.7150246
$vi
[1] 0.5077792






Co to jest grupowanie ?
Jak dzielimy algorytmy ? Kiedy stosować
hierarchiczne a kiedy k-optymalizacyjne ?
Jak ustalać liczbę k ?
Jakie są wady metod grupowania ?
Jakie narzędzia pozwalają na analizę skupień
?
Czy są jakieś wymogi co do typu danych
podlegających grupowaniu ?
Następny wykład:
Testowanie hipotez statystycznych

similar documents