• Nie Znaleziono Wyników

)=E= IKFEA« IFAJ @ = 5J=JOIJO?A AJ@O ==EO @=O?D

N/A
N/A
Protected

Academic year: 2021

Share ")=E= IKFEA« IFAJ @ = 5J=JOIJO?A AJ@O ==EO @=O?D"

Copied!
17
0
0

Pełen tekst

(1)

Analiza skupie«

Konspekt do zaj¦¢: Statystyczne metody analizy danych

Agnieszka Nowak-Brzezi«ska 14 stycznia 2010

1 Wprowadzenie

Celem laboratorium jest analiza skupie« wybranych zbiorów danych w ±rodo- wisku R. Jest to metoda dokonuj¡ca grupowania (podziaªu) obiektów danego zbioru na wzgl¦dnie jednorodne klasy. Podstaw¡ grupowania w wi¦kszo±ci al- gorytmów jest podobie«stwo pomi¦dzy obserwacjami - wyra»one przy pomocy funkcji (metryki) podobie«stwa. Istnieje wiele implementacji algorytmów ana- lizy 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 klasy- kacj¡ nienadzorowan¡ polega na podziale pewnego zbioru danych O

O = {xi= (xi1, . . . , xid)|i=1,...,N}

gdzie xi jest d-wymiarowym wektorem cech opisuj¡cych obiekt nale»¡cy do zbioru, na pewne podzbiory wektorów (grupy). Podstawowym zaªo»eniem do- tycz¡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 wekto- rów pochodz¡cych z pozostaªych grup. Wynikiem grupowania N-elementowego

(2)

zbioru O na c grup jest zazwyczaj tzw. macierz podziaªu B o wymiarze c × N, w której dany element bik oznacza stopie« przynale»no±ci wektora xk do grupy Gi (warto±¢ 1 ±wiadczy o caªkowitej przynale»no±ci wektora do grupy, nato- miast 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 odzc(N ) = G1, . . . , Gc|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 : bik∈ {0, 1}, co oznacza, »e ka»dy wektor nale»y albo nie nale»y do danej grupy,

ˆ ∀1 ≤ k ≤ N: Pc

i=1bik= 1, co oznacza, »e wektor nale»y tylko do jednej grupy,

ˆ ∀1 ≤ i ≤ c : 0 <PN

k=1bik< 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 algoryt- mó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 znaj- duj¡ 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.

(3)

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 spo- sób losowy. Znacz¡cym z punktu widzenia ko«cowej klasykacji parametrem wej±ciowym jest liczba k, któr¡ przekazuje si¦ jako warto±¢ zadan¡ lub wyzna- cza 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« rozpro- szenia wektorów w poszczególnych grupach). Dziedzin¡ funkcji kryterialnej J jest zbiór danych wej±ciowych O oraz wektor parametrów v = (v1, . . . , vk), gdzie k oznacza liczb¦ grup, a vi wektor parametrów okre±laj¡cych i-t¡ grup¦. Skªa- dowe 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 opti- mum 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 (proto- typy). 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 mi- gracja 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

(4)

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) = Xk

i=1

XN

k=1

bikd2(vi, xk).

W funkcji tej d(v, x) oznacza odlegªo±¢ elementu reprezentowanego przez wek- tor 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¦ przypo-

rz¡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 wy- st¦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 wyko- nanie algorytmu zazwyczaj nie daje w wyniku optymalnego podziaªu analizowa- nego zbioru. Ponadto algorytm jest maªo odporny na zaszumione dane. Mimo wszystkich wad jest to wci¡» jedna z najcz¦±ciej wykorzystywanych metod ite- racyjnych, 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

(5)

podgrup mo»na zrekompensowa¢, wywoªuj¡c metod¦ z ró»nymi warto±ciami pa- rametru 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 zastosowa- nia 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 tuto- rial dost¦pny na stronie http://en.wikipedia.org/wiki/K-medoids. W ±ro- dowisku 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¡ sytu- acj¡ 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 deglome- racyjny, inny jest przebieg algorytmu, oraz jego ostateczny rezultat. Metody aglomeracyjne rozpoczynaj¡ tworzenie hierarchii od podziaªu zbioru n obserwa- cji 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. Warun- kiem takim mo»e by¢ np. po»¡dana liczba skupie«, stopie« (nie) podobie«stwa pomi¦dzy wydzielonymi grupami itp. Optymalnym wydaje si¦ kryterium mak- symalnego 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 grupo- wania hierarchicznego jest graczny zapis w postaci drzewa binarnego nazy- wanego dendrogramem. Zapis taki mo»na wzbogaci¢ o informacj¦ dotycz¡c¡

stopnia niepodobie«stwa (dendrogram niepodobie«stwa) pomi¦dzy poszczegól- nymi 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

(6)

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 kro- kó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 Gi

oraz Gj,

3. scal ze sob¡ Gi i Gj 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 bo- wiem 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ªy- wowym - jest sposób (okre±lony krokiem 3) scalenia ze sob¡ grup Gi oraz Gj, gdy» wi¡»e si¦ on tak»e z budow¡ nowej grupy Gk, ale i jej reprezentanta. W pierwszym kroku algorytmu, podziaª ma posta¢:

P odz0N(N ) = {Gi= {xi}, i = 1, ..., N } a w kolejnych krokach algorytmu przyjmuje odpowiednio posta¢:

P odztN −t(N ) = {P odzN −t+1t−1 (N ){Gi, Gj}} ∪ {Gk}

, gdzie t oznacza kolejny krok algorytmu, a jednocze±nie poziom w hierarchii.

W ka»dym kroku spo±ród wszystkich par grup (Gr, Gs) wybiera si¦ tak¡ par¦

(Gi, Gj), »e D(Gi, Gj) = min D(Gr, Gs), Gr, Gs ∈ P odzt−1N −t+1, Gr 6= Gs. W macierzy niepodobie«stwa P (t) postaci:

P (i, j, t) = D(Gi, Gj), i, j = 1, ..., N − t,

(7)

konieczna jest po ka»dym scaleniu dwóch grup Gi i Gj 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 Gk. Metody ª¡czenia obiektów zwi¡zane s¡ wªa±nie z obliczeniem tej odlegªo±ci. Je±li Gk = Gi∪ Gj, Gk ∈ P odztN −t(N ) oraz Gi, Gj, Gs ∈ P odzt−1N −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(Gk, Gs) = min{D(Gi, Gs), D(Gj, Gs)},

ˆ dla metody najdalszego s¡siada: D(Gk, Gs) = max{D(Gi, Gs), D(Gj, Gs)},

ˆ dla metody ±redniej: D(Gk, Gs) = 12{D(Gi, Gs) + D(Gj, Gs)}

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ªu- gich 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 me- tody 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 sie- bie. 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 pozba- wione 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.

(8)

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 para- metró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

(9)

zawiera dane jako±ciowe) pominiemy t¦ kolumn¦ w obliczeniach i przedstawimy podstawowe informacje o takim zbiorze danych, czego efektem b¦dzie nast¦pu- j¡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.

Sepal.Length

2.0 3.0 4.0 0.5 1.5 2.5

4.55.56.57.5

2.03.04.0

Sepal.Width

Petal.Length

1234567

4.55.56.57.5

0.51.52.5

1234567 Petal.Width

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.Lengthoraz Sepal.W idth, wówczas koniecznym jest wywoªanie nast¦pu- j¡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.

(10)

4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

2.02.53.03.54.0

Sepal.Length

Sepal.Width

Rysunek 7: Realizacja funkcji kmeans dla zbioru iris - dwie zmienne

Wykres b¦dzie czarnobiaªy i bez dodatkowych opcji odno±nie kolorów czy sym- boli 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 pra- widª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 pro- cesie 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.

(11)

Sepal.Length

2.0 3.0 4.0 0.5 1.5 2.5

4.55.56.57.5

2.03.04.0

Sepal.Width

Petal.Length

1234567

4.5 5.5 6.5 7.5

0.51.52.5

1 2 3 4 5 6 7

Petal.Width k−means

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 po- cz¡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).

(12)

Sepal.Length

2.0 3.0 4.0 0.5 1.5 2.5

4.55.56.57.5

2.03.04.0

Sepal.Width

Petal.Length

1234567

4.5 5.5 6.5 7.5

0.51.52.5

1 2 3 4 5 6 7

Petal.Width k−means

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).

(13)

4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

2.02.53.03.54.0

k−means

Sepal.Length

Sepal.Width

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ól- nych 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:

(14)

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 width si

0.0 0.2 0.4 0.6 0.8 1.0

Silhouette plot of pam(x = dane, k = 3)

Average silhouette width : 0.55

n = 150 3 clusters Cj

j : nj | avei∈Cj si

1 : 50 | 0.80

2 : 62 | 0.42

3 : 38 | 0.45

Rysunek 11: Wykres metody k-medoidów

Je»eli dla tego samego zbioru danych chcemy zastosowa¢ algorytm grupowa- nia 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 nacho- dz¡ 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)

(15)

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» poszcze- gólne poziomy drzewa s¡ prezentowane na ró»nej wysoko±ci na wykresie (jak to przedstawia rysunek 12).

118 41 28 298

40 5053836

24 27 44 21 3237 6 19

11 49 20 22 47 17 45

246 13 10 35 263 4

48 30 31

7

12 25 9 3943 14

2315 16 33 34

42

51 53 8777 78

55 5966 7652 5786

64 92 7974 7275 98 69 88

12071 128 13915073 84

134124 127147 102 143

114 122 11554 90 70 81 82

60 65 80 56 91

67 8562 89 96 97 9510068

83 93 63107

58 94 9961 101

121 144 141 145125 116 137 149 104117 138112 105 129 133111 148 113 140 142 146

109 135 103126 130 108 131

136

106 123119110 118 132

01234

Dendrogram of agnes(x = dane, method = "average")

Agglomerative Coefficient = 0.93 dane

Height

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)

(16)

> 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).

Height

Banner of agnes(x = dane, method = "average")

Agglomerative Coefficient = 0.93

0 0.5 1 1.5 2 2.5 3 3.5 4

118 41 28 29840 50538 36 24 27 44 21 32 376 19 11 49 20 22 47 17 45 2 46 13 10 35 263 448 30 317

12 25 9 39 43 1423 15 16 33 3442 51 53 87 77 78 55 59 66 76 52 57 86 64 92 79 74 72 75 98 69 88 120 71128 139 15073 84

134 124 127 147 102 143 114 122 11554 90 70 81 82 60 65 80 56 91 67 85 62 89 96 97 9510068 83 9363 10758 94 9961 101 121 144 141 145 125 116 137 149 104 117 138 112 105 129 133 111 148 113 140 142 146109 135 103 126 130 108 131 136 106 123 119110

118 132

024

Dendrogram of agnes(x = dane, method = "average")

Agglomerative Coefficient = 0.93 dane

Height

Height

Banner of agnes(x = dane, method = "single")

Agglomerative Coefficient = 0.85

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

118 415 38 8 40 50 28 29 36 11 49 24 27 442

10 35 46 13 30 31 263 448939 43 127 20 22 47 1425 37 21 32 17619 33 34 45 16 15 2342

51 53 87 52 57 55 59 66 76 75 98 78 77 72 54 90 70 81 82 68 83 93 89 95 96 9710091 62 56 67 85 64 92 79 74 8086 6071 128 139 124 127 147 150 102 143114 12273 84

134 104 117 138 105 129 133 111 148 112 142 146 113 140 121 144 141 145 125 116 137 149103 126 13065101 120108 13111563 69 88106 123119 136 135 109110

58 9461 99107 118 132

0.01.0

Dendrogram of agnes(x = dane, method = "single")

Agglomerative Coefficient = 0.85 dane

Height

Height

Banner of agnes(x = dane, method = "complete")

Agglomerative Coefficient = 0.96

0 1 2 3 4 5 6 7

118 41840 50 28 29538 12 30 31 25246 13 10 35 26 363 4 48 437 9

39 1423 42 6 19 11 49 37 21 32 20 22 47 45 24 27 44 15 16 17 33 34 54 90 70 81 82 60 65 80 63 56 91 67 85 62 72 68 83 93 89 96 97 95100107 58 94 99 61 51 53 87 78 55 59 77 66 76 52 57 86 64 92 79 74 75 98 69 88 120 71128 139 150 102 143 114 122 11573 84

134 124 127 112 147135 101 137 149 121 144 125 141 145 104 117 138 105 129 133 109 111 148 116 113 140 142 146 103 126 130 108 131 106 123 119 110 136 118 132

0246

Dendrogram of agnes(x = dane, method = "complete")

Agglomerative Coefficient = 0.96 dane

Height

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.

(17)

3. Biecek P.: Na przeªaj przez Data Mining, http://www.biecek.pl/R/

naPrzelajPrzezDM.pdf

Cytaty

Powiązane dokumenty

 Wszystkie drużyny uczestniczące w rundzie wiosennej sezonu 2020/21 w rozgrywkach Trampkarzy C2 (w sezonie 2020/21 rocznik 2007 i młodsi), tracą prawo uczestniczenia w nich

Wykorzystuje w pracy narzędzia, aplikacje i programy do komunikacji.

• reklama w mediach - ściśle współpracujemy z prasą (Nowa Trybuna Opolska, Gazeta Wyborcza, Tygodnik Żużlowy, Przegląd Sportowy, Sport), telewizją (TVP 3 Opole),

Powy¿sza uwaga znajduje siê na marginesie niniejszego opracowania, gdy¿ na podstawie analizy wartoœci ocen efektywnoœci nie mo¿na stwierdziæ, która z metod oceny efektywnoœci w

24 Definicja wskaźnika Liczba osób pracujących 6 miesięcy po opuszczeniu programu (łącznie z pracującymi na własny rachunek), Załącznik 2b, op.. Pracujący to

aleksandra.dabrowska@ifj.edu.pl za potwierdzeniem otrzymania e-maila.. Pliki ofert złożonych drogą elektroniczną będą otwarte w tym samym terminie co oferty złożone pisemnie

Pod nazwą SEAT Financial Services oferowane są usługi bankowe (przez Volkswagen Bank Polska GmbH sp. z o.o.) oraz usługi ubezpieczeniowe (przez Volkswagen Bank Polska GmbH sp. Oddział

Ilekroć mowa jest o miesięcznym koszcie elementu wyposażenia opcjonalnego rozumie się przez to zwiększenie raty miesięcznej SEAT i CUPRA Leasing Moc Niskich Rat wyliczonej