Analiza skupie«konspekt do zaj : Statystyczne metody analizy danych 1 Wprowadzenie Agnieszka Nowak-Brzezi«ska 14 stycznia 2010 Celem laboratorium jest analiza skupie«wybranych zbiorów danych w ±rodowisku R. Jest to metoda dokonuj ca grupowania (podziaªu) obiektów danego zbioru na wzgl dnie jednorodne klasy. Podstaw grupowania w wi kszo±ci algorytmów jest podobie«stwo pomi dzy obserwacjami - wyra»one przy pomocy funkcji (metryki) podobie«stwa. Istnieje wiele implementacji algorytmów analizy skupie«w ±rodowisku R, w ramach zaj zostan omówione te realizuj ce algorytmy: ˆ niehierarchiczne: k - ±rednich dost pny z funkcj k-means oraz k-medoidów dost pny z funkcj pam, ˆ hierarchiczne: agnes (ang. AGlomerative NESting) (dost pny z funkcj agnes) oraz hierarchiczny algorytm grupowania dost pny z funkcj hclust i mo»liwy do prezentacji gracznej dzi ki funkcji plot. Ka»dy z pakietów uzupeªniony jest o dokumentacj, której znajomo± pozwala wykona poprawne analizy danych: ˆ http://cran.r-project.org/web/packages/cluster/cluster.pdf ˆ http://stat.ethz.ch/r-manual/r-patched/library/stats/html/00index. html ˆ http://cran.r-project.org/web/packages/mclust/mclust.pdf 2 Analiza skupie«grupowanie (ang. data clustering), zwane równie» analiz skupie«lub klasykacj nienadzorowan polega na podziale pewnego zbioru danych O O = {x i = (x i1,..., x id ) i=1,...,n } gdzie x i jest d-wymiarowym wektorem cech opisuj cych obiekt nale» cy do zbioru, na pewne podzbiory wektorów (grupy). Podstawowym zaªo»eniem dotycz cym wynikowego podziaªu jest homogeniczno± obiektów wchodz cych w skªad jednej grupy oraz heterogeniczno± samych grup oznacza to,»e wektory stanowi ce jedn grup powinny by bardziej podobne do siebie ni» do wektorów pochodz cych z pozostaªych grup. Wynikiem grupowania N-elementowego 1
zbioru O na c grup jest zazwyczaj tzw. macierz podziaªu B o wymiarze c N, w której dany element b ik oznacza stopie«przynale»no±ci wektora x k do grupy G i (warto± 1 ±wiadczy o caªkowitej przynale»no±ci wektora do grupy, natomiast 0 oznacza,»e wektor do danej grupy wogóle nie nale»y). Ze wzgl du na przyj te zaªo»enia dotycz ce przynale»no±ci wektorów do grup mówi si o trzech gªównych typach podziaªów: P odz c (N) = G 1,..., G c Gi O Podziaª twardy (ang. hard) uzyskuje si w efekcie takiego grupowania, w którym ka»dy wektor nale»y tylko do jednej grupy. Macierz podziaªu speªnia wtedy nast puj ce warunki: ˆ 1 i c, 1 k N : b ik {0, 1}, co oznacza,»e ka»dy wektor nale»y albo nie nale»y do danej grupy, ˆ 1 k N: c i=1 b ik = 1, co oznacza,»e wektor nale»y tylko do jednej grupy, ˆ 1 i c : 0 < N k=1 b ik < N, co z kolei oznacza,»e wszystkie grupy s niepuste. Istniej tak»e podziaªy: rozmyty oraz posybilistyczny ale z uwagi na fakt,»e nie s one tematem tego opracowania, nie b dziemy ich opisywa. Bior c pod uwag sposób tworzenia skupie«, techniki analizy skupie«mo»na podzieli na dwie podstawowe kategorie: niehierarchiczne oraz hierarchiczne. Celem algorytmów niehierarchicznych jest znalezienie takiego podziaªu zbioru na zadan liczb podzbiorów, aby uzyska optymaln warto± pewnego kryterium. Optymalizacj kryterium osi ga si np. poprzez iteracyjne przemieszczanie obiektów mi dzy grupami. Metody hierarchiczne konstruuj (jak sama nazwa sugeruje) pewn hierarchi skupie«, która najcz ±ciej reprezentowana jest gracznie w postaci drzewa binarnego nazywanego dendrogramem. W li±ciach takiego drzewa znajduj si elementy analizowanego zbioru, w zªy natomiast stanowi ich grupy. Najbardziej po» dane cechy, jakich oczekuje si od algorytmów grupuj cych, to m.in.: ˆ jak najmniejsza liczba parametrów, które trzeba dostarcza z zewn trz, ˆ jak najmniejsza krotno± analizy elementów zbioru ucz cego, ˆ niewra»liwo± na ró»nice w ksztaªcie, wielko±ci czy g sto±ci grup, ˆ zminimalizowany wpªyw danych odstaj cych na wynik przetwarzania, ˆ mo»liwo± przetwarzania ró»nych typów danych (ci gªych, dyskretnych oraz kombinacji obu jednocze±nie), ˆ niezale»no± wyniku od kolejno±ci, w jakiej podawane s dane, ˆ skalowalno± rozumiana jako zdolno± do przetwarzania bardzo du»ych zbiorów danych, ˆ przystosowanie do analizy danych o ró»nej wymiarowo±ci. 2
2.1 Metody niehierarchiczne Algorytmy w ramach tych metod poszukuj najlepszego podziaªu zadanego zbioru danych poprzez stopniow optymalizacj, tzn. popraw pewnych wska¹ników jako±ci grupowania, uzyskiwanego w kolejnych etapach przetwarzania zbioru wej±ciowego. Pocz tkowego podziaªu dokonuje si najcz ±ciej w sposób losowy. Znacz cym z punktu widzenia ko«cowej klasykacji parametrem wej±ciowym jest liczba k, któr przekazuje si jako warto± zadan lub wyznacza w sposób losowy decyduje ona o liczbie skupie«otrzymanych w wyniku dziaªania algorytmu. Z tego samego powodu istotnym jest dobór odpowiedniej funkcji kryterialnej, któr mierzona b dzie jako± gru powania (stopie«rozproszenia wektorów w poszczególnych grupach). Dziedzin funkcji kryterialnej J jest zbiór danych wej±ciowych O oraz wektor parametrów v = (v 1,..., v k ), gdzie k oznacza liczb grup, a v i wektor parametrów okre±laj cych i-t grup. Skªadowe wektora v stanowi reprezentacje poszczególnych skupie«i nazywane s reprezentantami (prototypami) grup. Doboru odpowiedniej funkcji kryterialnej dokonuje si gªównie w zale»no±ci od oczekiwanego ksztaªtu grup. 2.1.1 Ogólny schemat post powania W przypadku metod iteracyjnych algorytm grupowania skªada si z nast puj - cych kroków: 1. wst pna inicjalizacja : wybierz k obiektów, które b d stanowi prototypy grup, 2. przypisuj pozostaªe obiekty do grup tak, aby osi gn najlepszy podziaª (zgodnie z przyj t funkcj kryterialn ), 3. dla ka»dego otrzymanego skupienia wybierz ponownie prototyp, 4. powtarzaj poprzednie kroki tak dªugo, jak dªugo przyj te kryterium b dzie si poprawia. Wad metody jest jej zachªanno±, przez co w wyniku otrzymuje si jedynie optimum lokalne i nie ma gwarancji osi gni cia optimum globalnego. Najwi ksz jej zalet jest ªatwo± implementacji i stosunkowo maªa zªo»ono± obliczeniowa. 2.1.2 Algorytm k-±rednich Ten klasyczny algorytm analizy skupie«, na wst pie ustala warto± parametru k decyduj c o liczbie grup, które zostan wyodr bnione ze zbioru danych. W sposób losowy wybiera si k reprezentantów tak, aby byli oni mo»liwie jak najbardziej od siebie oddaleni. Wybrane elementy stanowi zal»ki grup (prototypy). W kolejnym kroku ka»dy element zbioru przypisywany jest do najbli»szej mu grupy. Na tym etapie wyznaczone s grupy pocz tkowe. Dla ka»dej z grup obliczany jest jej ±rodek na podstawie ±redniej arytmetycznej wspóªrz dnych obiektów do niej nale» cych. Nast pnie rozwa»ane i ponownie przydzielane do najbli»szej (ze wzgl du na odlegªo± od poszczególnych centroidów) grupy s wszystkie obiekty. Tak dªugo nowe ±rodki grup s wyznaczane i sprawdzana jest poprawno± przynale»no±ci elementów do grup, jak dªugo wyst puje migracja obiektów pomi dzy skupieniami. Je±li w kolejnych dwóch przebiegach algorytmu nie nast pi»adna zmiana w dokonanym podziale (mówi si wtedy o 3
osi gni ciu stabilizacji), przetwarzanie dobiega ko«ca. Jak wida, w metodzie tej liczba grup jest staªa i zgodna z warto±ci parametru k, zmienia si mo»e tylko przynale»no± obiektów do grup. W metodzie k-±rednich (ang. k-means) poszukiwanie optymalnego podziaªu odpowiada wyznaczeniu takich prototypów grup, które minimalizuj nast puj c funkcj kryterialn : J(v, B) = k i=1 k=1 N b ik d 2 (v i, x k ). W funkcji tej d(v, x) oznacza odlegªo± elementu reprezentowanego przez wektor x od grupy wyznaczonej przez prototyp (centroid, ±rodek grupy) v, N to liczebno± zbioru O, B to macierz podziaªu, a pozostaªe parametry maj takie same znaczenie jak podano wcze±niej. Zasad dziaªania metody mo»na opisa nast puj co: 1. podziel wst pnie zbiór na k skupie«, 2. dla ka»dego skupienia policz jego centroid (±rodek ci»ko±ci grupy), 3. przypisz ka»dy z elementów zbioru do najbli»szej mu grupy ( odlegªo± od grupy jest w tym przypadku to»sama z odlegªo±ci od centroidu), 4. powtarzaj dwa poprzednie kroki tak dªugo, jak dªugo zmienia si przyporz dkowanie obiektów do skupie«. Przykªad podziaªu obiektów do k grup przedstawia rysunek 1. Rysunek 1: Przykªad podziaªu obiektów do k skupie«niestety algorytm k-±rednich ma wiele wad. Ju» na wst pie konieczne jest zdeniowanie liczby grup, chocia» zazwyczaj nie wiadomo, jak wiele grup wyst puje w przetwarzanym zbiorze. Pocz tkowe centroidy wybierane s w sposób losowy, podczas gdy ich wybór ma decyduj cy wpªyw na jako± otrzymanego grupowania. Metoda jest zbie»na do lokalnego optimum, a jednokrotne wykonanie algorytmu zazwyczaj nie daje w wyniku optymalnego podziaªu analizowanego zbioru. Ponadto algorytm jest maªo odporny na zaszumione dane. Mimo wszystkich wad jest to wci» jedna z najcz ±ciej wykorzystywanych metod iteracyjnych, poniewa» jest ona prosta w implementacji, a jej niewielka zªo»ono± obliczeniowa wynosi O(tkn), gdzie n jest liczebno±ci zbioru, k jest liczb grup i t jest liczb iteracji, przyczym k, t n. Konieczno± wst pnego okre±lenia liczby 4
podgrup mo»na zrekompensowa, wywoªuj c metod z ró»nymi warto±ciami parametru k i oceniaj c otrzymane podziaªy za pomoc jakiego± kryterium oceny jako±ci grupowania. 2.1.3 Algorytm k-medoidów Wady algorytmu k-±rednich s na tyle istotne,»e cz sto d»y si do zastosowania innych algorytmów w ramach grupy metod niehierarchicznych, ale takich, które wolne s od tych»e wad. Jednym z takim algorymtów jest k-medoid, który to w odró»nieniu od algorytmu k-±rednich w kolejnych etapach algorytmu nowe prototypy grup wyznaczane s spo±ród obiektów nale» cych do rozpatrywanego zbioru. Wystarczaj cym dla zrozumienia idei tego algorytmu jest wgl d w tutorial dost pny na stronie http://en.wikipedia.org/wiki/k-medoids. W ±rodowisku R realizuje go funkcja pam() z pakietu cluster. 2.2 Metody hierarchiczne Metody niehierarchiczne maj to do siebie,»e formuj pojedynczy podziaª, który dostarcza pªaskiej charakterystyki zbioru. Tymczasem cz sto spotykan sytuacj s grupy, które zawieraj podgrupy, te z kolei skªadaj si z podgrup itd. T wªa±no± doskonale oddaj algorytmy hierarchiczne. W zale»no±ci od tego jaki zastosujemy algorytm grupowania hierarchicznego: aglomeracyjny czy deglomeracyjny, inny jest przebieg algorytmu, oraz jego ostateczny rezultat. Metody aglomeracyjne rozpoczynaj tworzenie hierarchii od podziaªu zbioru n obserwacji na n jednoelementowych grup, które w kolejnych krokach s ze sob scalane. Metody deglomeracyjne inicjowane s jedn grup n-elementow, a hierarchia tworzona jest poprzez sukcesywny podziaª na coraz mniejsze grupy. W praktyce rzadko d»y si do utworzenia peªnej hierarchii podziaªów, poniewa» ostatni jej etap (tzn. n grup jednoelementowych lub jedna grupa n-elementowa) nie wnosi zbyt wielu nowych informacji na temat charakterystyki analizowanego zbioru danych. Zazwyczaj proces tworzenia hierarchii przerywa si w pewnym, z góry zaªo»onym momencie, kiedy zostanie speªniony tzw. warunek stopu. Warunkiem takim mo»e by np. po» dana liczba skupie«, stopie«(nie) podobie«stwa pomi dzy wydzielonymi grupami itp. Optymalnym wydaje si kryterium maksymalnego podobie«stwa wewn trz grup - minimalnego mi dzy grupami. Inaczej mówi c, proces aglomeracji jest uzasadniony tak dªugo dopóki podobie«stwo wewn trz tworzonych grup jest zawsze wi ksze ni» podobie«stwo mi dzy któr - kolwiek z grup. 2.2.1 Dendrogram Najbardziej popularnym i naturalnym sposobem reprezentacji wyników grupowania hierarchicznego jest graczny zapis w postaci drzewa binarnego nazywanego dendrogramem. Zapis taki mo»na wzbogaci o informacj dotycz c stopnia niepodobie«stwa (dendrogram niepodobie«stwa) pomi dzy poszczególnymi grupami poprzez dodanie osi skojarzonej zu»yt miar niepodobie«stwa poziom ª czenia grup odpowiada wówczas warto±ci ich niepodobie«stwa. Fakt,»e budujemy drzewo binarne jest bardzo istotny. Okazuje si,»e b d c na k- tym poziomie w drzewie wiemy na pewno,»e utworzonych jest wówczas c grup, gdzie c = n k + 1. Wobec tego poziom pierwszy odpowiada podziaªowi na n 5
grup, natomiast poziom n-ty jednej grupie. Przykªad dendrogramu przedstawia rysunek 2. Rysunek 2: Przykªad dendrogramu 2.2.2 Algorytmy aglomeracyjne Najprostsza wersja algorytmu aglomeracyjnego skªada si z nast puj cych kroków: 1. niech c b dzie oczekiwan liczb grup, a N liczebno±ci analizowanego zbioru (oczywi±cie c N); wst pna inicjalizacja: podziel zbiór na N jedno elementowych grup, 2. znajd¹ dwie najbli»sze (w sensie przyj tej miary) grupy; nazwijmy je G i oraz G j, 3. scal ze sob G i i G j zmniejszaj c w ten sposób liczb grup o 1, 4. powtarzaj dwa poprzednie kroki tak dªugo, a» liczba otrzymanych grup osi gnie zaªo»on na wst pie warto± c. Niezwykle istotne s kroki: 2 i 3. Otó» znajdowanie dwóch najbli»szych grup, zale»y od wybranej metryki podobie«stwa b d¹ odlegªo±ci. Nie wszystkie bowiem miary nadaj si do okre±lonego typu danych. le dobrana metryka mo»e wskazywa jako najbardziej w danym momencie podobne do siebie grupy, które tak naprawd wcale podobnymi nie s. Jeszcze wa»niejszym i bardziej wpªywowym - jest sposób (okre±lony krokiem 3) scalenia ze sob grup G i oraz G j, gdy» wi»e si on tak»e z budow nowej grupy G k, ale i jej reprezentanta. W pierwszym kroku algorytmu, podziaª ma posta : P odz N 0 (N) = {G i = {x i }, i = 1,..., N} a w kolejnych krokach algorytmu przyjmuje odpowiednio posta : P odzt N t (N) = {P odzt 1 N t+1 (N){G i, G j }} {G k }, gdzie t oznacza kolejny krok algorytmu, a jednocze±nie poziom w hierarchii. W ka»dym kroku spo±ród wszystkich par grup (G r, G s ) wybiera si tak par (G i, G j ),»e D(G i, G j ) = min D(G r, G s ), Gr, Gs P odzt 1 N t+1, G r G s. W macierzy niepodobie«stwa P (t) postaci: P (i, j, t) = D(G i, G j ), i, j = 1,..., N t, 6
konieczna jest po ka»dym scaleniu dwóch grup G i i G j aktualizacja, polegaj ca na tym,»e w usuwa si z macierzy kolumn o wi kszym indeksie i lub j, a w kolumnie o mniejszym indeksie wpisujemy warto±ci odlegªo±ci ka»dej grupy do nowo powstaªej grupy G k. Metody ª czenia obiektów zwi zane s wªa±nie z obliczeniem tej odlegªo±ci. Je±li G k = G i G j, G k P odzt N t (N) oraz G i, G j, G s P odzt 1 N t+1 (N) s parami ró»ne, macierz niepodobie«stwa jest aktualizowana w nast puj cy sposób: ˆ dla metody najbli»szego s siada: D(G k, G s ) = min{d(g i, G s ), D(G j, G s )}, ˆ dla metody najdalszego s siada: D(G k, G s ) = max{d(g i, G s ), D(G j, G s )}, ˆ dla metody ±redniej: D(G k, G s ) = 1 2 {D(G i, G s ) + D(G j, G s )} Metoda najbli»szego s siada jest najcz ±ciej wykorzystywana, ze wzgl du na maª zªo»ono±, oraz du» intuicyjno± wybranego podobie«stwa. Jednak jest te» podatna na tzw. zjawisko ªa«cuchowania, polegaj ce na przypisywaniu dªugich ci gów punktów do tego samego skupienia (w odró»nieniu od tworzenia zwartych kulistych skupie«), co w zale»no±ci od oczekiwanego ksztaªtu grup mo»e by traktowane jako wada algorytmu. Na przykªad, je±li pomi dzy dwoma wyra¹nie odr bnymi, kulistymi skupieniami znajdzie si punkt tworz cy pewnego rodzaju most je ª cz cy, metoda dokona niepo» danego scalenia obu skupie«i w rezultacie powstanie du»a, wydªu»ona grupa, niezgodna z wªa±ciw charakterystyk zbioru. Inn wad tej metody ª czenia skupie«jest podatno± na szumy oraz niewielkie zmiany pozycji obiektów. Ilustracj graczn tej metody jest rysunek 3. Rysunek 3: Metoda najbli»szego s siada Metoda najdalszego s siada w przeciwie«stwie do poprzedniej nie ma tendencji do przyrostu wydªu»onych skupie«. Š czone s skupienia zawieraj ce punkty, które w ustalonej przestrzeni metrycznej s poªo»one najdalej od siebie. Metoda wykazuje tendencj do grupowania elementów znajduj cych si na brzegach obszaru okre±lono±ci w jedno skupienie, natomiast bardziej wewn trzne punkty przydzielane s do reszty zadeklarowanych skupie«. Ilustracj graczn tej metody jest rysunek 4. Metody najbli»szego i najdalszego s siada reprezentuj dwa skrajne podej- ±cia do pomiaru odlegªo±ci pomi dzy skupieniami. adne z nich nie jest pozbawione wad, podczas gdy u»ycie metod po±rednich wydaje si by najbardziej oczywistym sposobem na ich unikni cie. Ilustracj graczn tej metody jest rysunek 5. 7
Rysunek 4: Metoda najdalszego s siada Rysunek 5: Metoda ±redniej odlegªo±ci Podane miary nie wyczerpuj wszystkich mo»liwo±ci deniowania kryterium kolejnych poª cze«. Metody te mog by zestawiane ze sob tworz c nowe bardziej specjalizowane rozwi zania. 3 Analiza skupie«w ±rodowisku R Zakªadamy,»e przed wykonywaniem analiz w ±rodowisku R student zapoznaª si z podstawowymi algorytmami grupowania. Podstawow kwesti jest podziaª metod analizy skupie«na hierarchiczne i niehierarchiczne (k-optymalizacyjne). Istotnym na tym etapie jest ±wiadomo±,»e efektem metody hierarchicznej jest algomeracja b d¹ deglomeracja obiektów, która przyjmuje najcz ±ciej posta dendrogramu (drzewo z korzeniem i li±cmi). Metody niehierarchiczne - jak sama nazwa wskazuje - nie buduj hierarchii. Tutaj obiekty mog by prezentowane jako punkty na pªaszczy¹nie, i zakªada si,»e te z punktów, które na wykresie rozrzutu s w do± bliskiej odlegªo±ci wobec siebie, tworz skupienie. Problemem jest fakt,»e algorytmy (te bardziej klasyczne) wymagaj podania z góry liczby skupie«, podczas gdy bardzo cz sto nie znamy tej liczby. Stosuje si oczywi- ±cie ró»ne modykacje, które staraj si t optymaln liczb skupie«oszacowa, jednak proces taki wymaga wielokrotnych uruchomie«dla zmienionych parametrów, co znaczenie wydªu»a czas grupowania. Inn zupeªnie kwesti jest spory zbiór wad tych algorytmów, które czasami mog wr cz uniemo»liwi ich zastosowanie. Wykorzystanie metod analizy skupie«w ±rodowisku R jest mo»liwe dzi ki u»yciu nast puj cych pakietów: standardowego pakietu stats, pakietu cluster oraz dodatkowo pakietów flexclust i mclust02. Zakªadamy,»e czytelnikowi znany jest zbiór danych o nazwie IRIS z repozytorium UCI Machine Learning udost pniony równie» w ramach ±rodowiska R. Zbiór przedstawia informacje o 150 kwiatach (irysach) opisanych czterema cechami numerycznymi (Sepal.Length, Sepal.W idth, P etal.length, P etal.w idth) i jednym atrybutem jako±ciowym species (klasykuj cym kwiaty do jednej z trzech grup: setosa, virginica lub versicolor). Wiedz c,»e algorytm k-±rednich (ang. k-means) wymaga, aby wszystkie cechy byªy ilo±ciowymi (podczas gdy ostatnia kolumna w zbiorze IRIS 8
zawiera dane jako±ciowe) pominiemy t kolumn w obliczeniach i przedstawimy podstawowe informacje o takim zbiorze danych, czego efektem b dzie nast puj cy ci g informacji pakietu R: > dane = iris[,1:4] > summary(dane) > Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Median :5.800 Median :3.000 Median :4.350 Median :1.300 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500 Wywoªanie algorytmu k-±rednich gdy znamy optymaln liczb skupie«(dla zbioru IRIS to 3 grupy) jest do± proste. Realizacja grupowania przy u»yciu metody k-means mo»e by nast puj ca: > klaster = kmeans(dane,3) > plot(dane, pch=klaster$cluster) czego wynikiem b dzie wykres z rozkªadem warto±ci obserwacji w zbiorze iris osobno dla ka»dej z 4 cech opisuj cych te obserwacje: P etal.length, P etal.w idth, Sepal.Length, Sepal.W idth. Efekt b dzie zbli»ony do tego co przedstawia rysunek rerisa1. 2.0 3.0 4.0 0.5 1.5 2.5 Sepal.Length 4.5 5.5 6.5 7.5 2.0 3.0 4.0 Sepal.Width Petal.Length 1 2 3 4 5 6 7 0.5 1.5 2.5 Petal.Width 4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 Rysunek 6: Realizacja funkcji kmeans dla zbioru iris - cztery zmienne Gdyby±my chcieli jednak sprawdzi jak wygl da podziaª obiektów na równie» 3 skupienia, ale bior c pod uwag jedynie dwie pierwsze zmienne je opisuj ce: Sepal.Length oraz Sepal.W idth, wówczas koniecznym jest wywoªanie nast puj cych komend ±rodowiska R: dane = iris[,1:2] > klaster = kmeans(dane,3) > plot(dane, pch=klaster$cluster), czego efekt b dzie zbli»ony do tego, co przedstawia rysunek 7. 9
Sepal.Width 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 Sepal.Length Rysunek 7: Realizacja funkcji kmeans dla zbioru iris - dwie zmienne Wykres b dzie czarnobiaªy i bez dodatkowych opcji odno±nie kolorów czy symboli nie b dzie zbyt atrakcyjny wizualnie. Dlatego warto wspomóc si chocia»by ingerencj w kolorystyk (parametr col) oraz symbol obserwacji (parametr pch, np pch = 3 to symbol '+'). Wynikiem wywoªania nast puj cych komend: > cl<-kmeans(dist(dane),3,20) > plot(dane,pch=19,col=cl$cluster,main="k-means") b dzie wykres taki jak na rysunku 8. Problem z umiej tno±ci oszacowania prawidªowej liczby skupie«obrazuje nast puj cy fragment kodu dla ±rodowiska R: > cl<-kmeans(dist(dane),8,20) > plot(dane,pch=18,col=cl$cluster,main="k-means") którego efektem b dzie nast puj cy wykres (rysunek 9): Wykresy tak generowane s odpowiednio jasne do interpretacji gdy znamy prawidªow liczb grup. Jednak gdy dla zbioru IRIS próbowaliby±my zbudowa nie 3 (jak by powinno) lecz 8 grup, otrzymany podziaª nie jest ju» wogóle czytelny. Podobnie wida to, gdy zmieniejszymy liczb zmiennych analizowanych w procesie grupowanie obiektów zbioru IRIS. Mianowicie, gdy we¹miemy pod uwag tylko dwie pierwsze zmienne: Sepal.Lenght oraz Sepal.W idth, i spróbujemy podzieli te 150 obserwacji na 8 grup, wykonamy nast puj cy kod ±rodowiska R: > dane = iris[,1:2] > cl<-kmeans(dist(dane),8,20) > plot(dane,pch=18,col=cl$cluster,main="k-means") a efekt takiego wykonania b dzie taki jak to przedstawia rysunek 10. 10
k means 2.0 3.0 4.0 0.5 1.5 2.5 Sepal.Length 4.5 5.5 6.5 7.5 2.0 3.0 4.0 Sepal.Width Petal.Length 1 2 3 4 5 6 7 0.5 1.5 2.5 Petal.Width 4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 Rysunek 8: Realizacja funkcji kmeans dla zbioru iris Po±wi caj c wi cej uwagi funkcji kmeans, zauwa»ymy,»e ogólna formuªa tej funkcji ma posta : kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c("hartigan-wong", "Lloyd", "Forgy", "MacQueen")), gdzie: x - to macierz z danymi podlegaj cymi grupowaniu, centers - to albo liczba skupie«, które chcemy utworzy, albo podane pocz tkowe centra skupie«. Je±li jest to liczba skupie«, wówczas procedura wyboru potencjalnych centrów skupie«odbywa si w sposób losowy, iter.max - to maksymalna liczba iteracji, nstart - je±li w center podano liczb grup, to parametr nstart okre±la liczb losowych zbiorów branych pod uwag w grupowaniu, algorithm - okre±la, który algorytm b dzie wykonany spo±ród dost pnych: Hartigan and Wong (1979) (domy±lny), MacQueen (1967), Lloyd (1957) czy Forgy (1965). 11
k means 2.0 3.0 4.0 0.5 1.5 2.5 Sepal.Length 4.5 5.5 6.5 7.5 2.0 3.0 4.0 Sepal.Width Petal.Length 1 2 3 4 5 6 7 0.5 1.5 2.5 Petal.Width 4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 Rysunek 9: Realizacja funkcji kmeans dla zbioru iris - 8 grup Odpowiednio manipuluj c tymi parametrami mo»na optymalizowa budowane skupienia obiektów w danym zbiorze. Grupowanie realizowane jest tak»e poprzez metod mclust z pakietu o tej samej nazwie. W podstawowej wersji wywoªania metody nie podaje si liczby skupie«, a jedynie zbiór danych, które chcemy pogrupowa (patrz poni»ej na komendy R). > dane.mcl<-mclust(dane) > skupienia<-dane.mcl$classification > plot(dane,pch=19,col=skupienia,main="mclust") Utworzony w wyniku wykres b dzie bardzo podobny do tego utworzonego przez metod kmeans. W pakiecie stats dost pna jest funkcja, pozwalaj ca klasykowa obiekty do jednej z utworzonych grup, pozwalaj c jednocze±nie na sterowanie nie tylko liczb tworzonych skupie«, ale i poziomem odci cia w tworzonym drzewie. Mowa tutaj o funkcji cutree. Ogólna formuªa ma posta : cutree(tree, k = NULL, h = NULL) gdzie odpowiednio: tree - jest rezultatem wywoªania funkcji hclust, k - liczba skupie«, h - poziom odci cia drzewa (tree). 12
k means Sepal.Width 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 Sepal.Length Rysunek 10: Realizacja funkcji kmeans dla zbioru iris - 8 grup - 2 zmienne Przykªad komendy zawieraj cej wywoªanie tej funkcji wygl da nast puj co dla znanego ju» zbioru iris: > hc <- hclust(dist(dane)) > cutree(hc, k=3) Rezultatem takiego wywoªania jest wektor prezentuj cy przydziaª poszczególnych obserwacji zbioru wej±ciowego do utworzonej liczby grup: [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 [43] 1 1 1 1 1 1 1 1 2 2 2 3 2 3 2 3 2 3 3 3 3 2 3 2 3 3 2 3 2 3 2 2 2 2 2 2 2 3 3 3 3 2 [85] 3 2 2 2 3 3 3 2 3 3 3 3 3 2 3 3 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 [127] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Fakt,»e algorytm k - ±rednich cechuje si licznymi wadami, sprawia,»e ch tniej u»ywanym jest algorytm np. k-medoidów. W ±rodowisku R, w ramach pakietu cluster, dost pna jest funkcja pam() realizuj ca algorytm o nazwie PAM (ang. Partitioning Around Medoid). Przykªadem jej wywoªania dla zbioru iris jest nast puj ca komenda: > kluster <- pam(dane,3) > sil <- silhouette(kluster) > summary(sil) czego efektem b d nast puj ce wyniki: Silhouette of 150 units in 3 clusters from pam(x = dane, k = 3) : Cluster sizes and average silhouette widths: 13
50 62 38 0.7981405 0.4173199 0.4511051 Individual silhouette widths: Min. 1st Qu. Median Mean 3rd Qu. Max. 0.02636 0.39110 0.56230 0.55280 0.77550 0.85390 Mo»emy odczyta podziaª algorytmem pam tych 150 obiektów (kwiatów ze zbioru IRIS) do 3 skupie«. Widzimy rozkªad obiektów do 3 klas oraz podstawowe statystyki tj. mediana, moda, pierwszy i trzeci kwartyl oraz elementy minimalny i maksymalny. Dodaj c polecenie: > plot(sil, col = c("red", "green", "blue")) zobrazujemy ów podziaª (rysunek 11). Silhouette plot of pam(x = dane, k = 3) n = 150 3 clusters C j j : n j ave i Cj s i 1 : 50 0.80 2 : 62 0.42 3 : 38 0.45 0.0 0.2 0.4 0.6 0.8 1.0 Average silhouette width : 0.55 Silhouette width s i Rysunek 11: Wykres metody k-medoidów Je»eli dla tego samego zbioru danych chcemy zastosowa algorytm grupowania hierarchicznego, mo»emy u»y funkcji hclust a do jej gracznej reprezentacji funkcji plot, tak jak to pokazuje kod: > d <- dist(dane, method = "euclidean") > fit <- hclust(d, method="ward") > plot(fit) Efektem b dzie wykres zwany dendrogramem, z tym,»e b dzie on maªo czytelny dla du»ych zbiorów obserwacji, z tego wzgl du,»e wszystkie li±cie drzewa s wyrysowane na jednym poziomie na wykresie, i zwyczajnie nachodz na siebie. Klasycznym algorytmem hierarchicznym jest wªa±nie algorytm aglomeracyjny, którego jednym z wersji jest algorytm o nazwie agnes (ang. AGlomerative NESting). Zostaª on równie» zaimplementowany w ±rodowisku R i realizowany jest przez wywoªanie komendy o tej samej nazwie co nazwa algorytmu a wi c agnes: klaster = agnes(dane, method="average") > plot(klaster) 14
Oczywi±cie drugi argument wywoªania fuknkcji: method mo»e przyjmowa ró»ne warto±ci w zale»no±ci od tego jak metod ª czenia skupie«wybierzemy maj c do dyspozycji metody: najbli»szego s siada, najdalszego s siada, ±rednich wi za«itp. Efektem wywoªania funkcji plot z argumentem w postaci rezultatu funkcji agnes b dzie dendrogram, który ju» jest bardziej czytelny, gdy» poszczególne poziomy drzewa s prezentowane na ró»nej wysoko±ci na wykresie (jak to przedstawia rysunek 12). Dendrogram of agnes(x = dane, method = "average") Height 0 1 2 3 4 18 41 1 28 40 298 505 3836 24 27 44 21 32376 1119 49 20 22 46 471745 13 2 10 352634 30 48 3943 31 12 25 7 9 14 16 15 23 33 51 34 53 42 55 8777 59 78 66 7652 64 5786 92797472 75 9869 128 71 88120 139 15073 124 134 84 102147 127 143114 122115 54 81 90 82 70 65 80 60 67 56 91 96 89 8562 97 10068 95 83 93 58 63107 949961 121101 144 141 145 137 116 125 149 104 117 129 138112 133 105 113 111 140 148 142 146 109 126 103 135 108 131 130 106 136 123119 118 132 110 dane Agglomerative Coefficient = 0.93 Rysunek 12: Dendrogram Je±li chcieliby±my sprawdzi ró»nice w postaci dendrgramu w zale»no±ci od tego jak metod ª czenia skupie«zastosowano: najbli»szego s siada, najdalszego s siada czy metoda ±redniej odlegªo±ci mo»emy wywoªa nast puj ce komendy w ±rodowisku R: > par(mfrow=c(3,2)) > klaster = agnes(dane, method="average") > plot(klaster) 15
> klaster = agnes(dane, method="single") > plot(klaster) > klaster = agnes(dane, method="complete") > plot(klaster) Wówczas efektem b dzie jeden wykres z trzema dendrogramami dla zbioru iris (rysunek 13). Banner of agnes(x = dane, method = "average") Dendrogram of agnes(x = dane, method = "average") Height 0 2 4 1 18 28 41 40 298 505 3836 24 27 44 21 32 11 19 376 49 20 22 47 17 45 46 13 2 10 35 30 48 2634 317 12 39 43 259 1423 33 16 15 51 3442 53 87 55 77 59 78 66 76 52 64 57 86 92 79 75 74 98 72 120 69 71 88 128 139 150 134 84 73 124 102 127 143 147 114 122 115 54 81 90 70 8260 56 65 91 80 67 85 96 89 62 100 97 95 68 83 9363 58 107 9499 121 101 61 144 141 145 137 116 125 149 117 138 104 129 105 112 133 113 111 140 148 142 146 109 126 103 135 108 131 130 106 136 123 118 119 132 110 0 0.5 1 1.5 2 2.5 3 3.5 4 Height Agglomerative Coefficient = 0.93 Banner of agnes(x = dane, method = "single") dane Agglomerative Coefficient = 0.93 Dendrogram of agnes(x = dane, method = "single") Height 0.0 1.0 1 18 38 415 40 50 28 29 11 36 4924 27 10 35 442 46 13 30 31 489 2634 39 43 127 20 22 4714 21 25 32 37 19 176 33 34 45 16 15 2342 51 53 52 57 87 66 55 76 59 75 9878 54 77 90 72 81 70 83 93 8268 96 89 95 10091 97 67 62 85 56 64 92 79 7480 86 128 71 60 139 124 127 102 147 143 150 114 122 134 84 73 117 138 104 129 133 105 111 148 142 112 113 140 146 121 144 141 145 137 125 149 116 126 130 103 101 120 65 108 131 69 115 88 63 106 123 119 136 135 109 58110 9461 99107 118 132 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Height Agglomerative Coefficient = 0.85 Banner of agnes(x = dane, method = "complete") dane Agglomerative Coefficient = 0.85 Dendrogram of agnes(x = dane, method = "complete") 1 40 418 28 50 295 30 38 31 12 46 252 10 35 13 26 48 3634 39 4379 142342 11 19 6 49 21 32 37 20 22 47 45 24 27 44 15 33 17 16 54 90 34 81 70 8260 65 56 91 8063 67 85 62 83 68 72 93 96 97 89 100107 95 58 94 51 99 61 53 55 87 59 78 66 76 77 52 64 57 92 86 75 79 98 74 69 120 88 128 139 71 102 143 150 114 122 115 134 84 73 124 127 112 147 137 101 135 121 144 149 141 145 125 117 138 104 129 133 105 109 111 113 148 140 116 142 146 126 130 103 108 131 106 123 119 118 110 132 136 Height 0 2 4 6 0 1 2 3 4 5 6 7 Height Agglomerative Coefficient = 0.96 dane Agglomerative Coefficient = 0.96 Rysunek 13: Dendrogramy dla ró»nych metod ª czenia skupie«podobna w dziaªaniu do agnes() jest omówiona ju» po krótce wcze±niej metoda grupowania hierarchicznego dost pna w funkcji hclust(stats). 4 Bibliograa Opracowanie przygotowano w oparciu o prace: 1. J. Koronacki, J. wik: Statystyczne systemy ucz ce si, wydanie drugie, Exit, Warsaw, 2008, rozdziaª 9. 2. J. wik, J. Mielniczuk: Statystyczne systemy ucz ce si - wiczenia w oparciu o pakiet R, Ocyna Wydawnicza PW, Warszawa, 2009. 16
3. Biecek P.: Na przeªaj przez Data Mining, http://www.biecek.pl/r/ naprzelajprzezdm.pdf 17