Podstawy grupowania danych w programie RapidMiner Michał Bereta www.michalbereta.pl 1. Grupowanie hierarchiczne Grupowanie (analiza skupieo, ang. clustering) ma na celu automatyczne wykrycie grup istniejących w zbiorze danych. Każda grupa powinna charakteryzowad się tym, iż przykłady do niej przyporządkowane są bardziej podobne do siebie niż do przykładów z innych grup. Poszczególne grupy powinny byd od siebie jak najlepiej odseparowane. Konkretne znaczenie podobieostwa i separacji zależy od przyjętej miary podobieostwa między obiektami. Podobieostwo nie zawsze musi byd oparte na metryce w sensie matematycznej, jednak dla danych numerycznych częstym wyborem jest wykorzystanie odległości Euklidesa. Dane podlegające analizie nie mają przyporządkowanej etykiety klasy. Zadaniem algorytmu grupowania jest właśnie odszukad takie grupy. Nie jest to zadanie łatwe. Podział danych często nie jest jednoznaczny. Przykładowe problemy: Czy w danych w ogóle istnieją grupy, których poszukujemy? Jak to zweryfikowad dla danych wysokowymiarowych? Ilu grup szukamy? Co z przykładami, które leżą pomiędzy grupami? Jak reprezentowad grupy? Czy szukane skupiska powinny mied minimalną licznośd przykładów do nich należących? Grupowanie hierarchiczne jest bardzo naturalnym podejściem do grupowania. Grupy tworzone są stopniowo. Zaczynamy od grup składających się z pojedynczych przykładów. W każdym kroku łączymy najbliższe sobie grupy (na początku będą to przykłady najbliższe sobie zgodnie z przyjętą miarą podobieostwa). W kolejnych krokach otrzymujemy coraz liczniejsze grupy, aż w koocu tworzona jest jedna grupa zawierająca wszystkie przykłady. W tych metodach nie jest tworzony jeden wyraźny podział lecz cała ich hierarchia. Można jednak w dowolnym kroku zadecydowad o zatrzymaniu procesu łączenia. Często jednak decyzję taką podejmuje się po wizualnej inspekcji dendrogramu, czy wizualnej reprezentacji powstałego hierarchicznego grupowania. Mniej popularne podejście rozpoczyna od umieszczenia wszystkich przykładów w jednej grupie a następnie dzieleniu jej jak i powstałych w ten sposób grup, tak by ostatecznie zakooczyd z grupami zwierającymi dokładnie jeden przykład. Istnieje koniecznośd zdecydowania jak, mając przyjętą miarę podobieostwa między obiektami, definiowad podobieostwo między grupami obiektów. Istnieją trzy najbardziej popularne rozwiązania. Single linkage 1
Complete linkage Average linkage Z dokumentacji RM: SingleLink: In single-link hierarchical clustering, we merge in each step the two clusters whose two closest members have the smallest distance (or: the two clusters with the smallest minimum pairwise distance). CompleteLink: In complete-link hierarchical clustering, we merge in each step the two clusters whose merger has the smallest diameter (or: the two clusters with the smallest maximum pairwise distance). AverageLink: Average-link clustering is a compromise between the sensitivity of complete-link clustering to outliers and the tendency of single-link clustering to form long chains that do not correspond to the intuitive notion of clusters as compact, spherical objects. Przykład: Dane dwuwymiarowe zawierające trzy wyraźne grupy Za pomocą operatorów GenerateData generujemy dane złożone z trzech wyraźnych grup. 2
Otrzymujemy dane dwuwymiarowe, zatem łatwo je przedstawid na wykresie. Następnym krokiem jest wykonanie grupowania hierarchicznego za pomocą operatora Clustering(Agglomerative Clustering). 3
Wyniki: Widok FolderView pokazuje hierarchiczną strukturę grupowania: 4
Wizualizacja struktury za pomocą drzewa: W tym widoku można sprawdzid, jakie przykłady należą do kolejno łączonych grup: 5
Dendrogram to sposób wizualizacji struktury hierarchicznej. Na poniższym widad trzy wyraźne grupy. Wysokośd poszczególnych krawędzi jest proporcjonalna do odległości między łączonymi grupami. Widad zatem, że trzy grupy są wyraźnie oddzielone od siebie. Informacja taka może posłużyd do ustalenia, jaki przyjąd ostateczny podział danych (w tym przypadku na trzy grupy). Poniżej zaprezentowane są wyniki dla complete link oraz dla average link. One również wskazują na istnienie trzech grup. Te trzy podejścia nie zawsze dają tak zbliżone do siebie wyniki. Przykładowo, complete link ma tendencje do tworzenia rozciągniętych grup, często niepotrzebnie (zbyt wcześnie) łącząc mniejsze grupy. 6
7
Przykład: Grupowanie hierarchiczne dla bazy irysów. W bazie tej są trzy klasy, jednak etykieta klasy nie jest brana pod uwagę w czasie grupowania. Sprawdzimy, czy te istniejące trzy klasy zostaną wykryte przez algorytm grupowania. 8
Na powyższym dendrogramie widad, że jedna grupa jest wyraźnie oddzielona od dwóch pozostałych. Dla przypomnienia, rozkład danych irysów z wykorzystaniem dwóch atrybutów: Wizualizacja: Bez kolorów w oparciu o etykietę klasy 9
Z kolorami wyznaczonymi przez etykietę klasy Z powyższego widad, że algorytm grupowania odkrył wyraźnie odrębną klasę Iris-setosa. Widad to również w widoku GraphView: 10
Wszystkie przykłady ze wskazanej grupy to przykłady z klasy Iris-setosa. Pozostałe dwie grupy nie są tak wyraźnie oddzielone, można jednak wskazad pewne grupy, które składają się jedynie z przykładów z danej klasy, np.: Zadanie: Wykonaj powyższy przykład dla complete link oraz average link. 11
2. Grupowanie za pomocą algorytmu k-średnich (k-means) Inne algorytmy grupowania tworzą od razu konkretny podział na zadaną liczbę grup. W algorytmie k-średnich każdy przykład należy do dokładnie jednej grupy reprezentowanej przez centroid, który jest wyliczany jako średnia ze wszystkich przykładów należących do danej grupy. Przykład: Dane z trzema wyraźnymi grupami Wyniki: 12
Możemy użyd indeksu grupy jako etykiety klasy. Widad sensownośd działania algorytmu. 13
Przykład: Algortym k-średnich dla danych irysów Wyniki: 14
Wykres wykorzystujący oryginalną etykietę klasy do ustalenia kolorów: Wykres wykorzystujący indeks grupy do ustalenia kolorów: Powyższe wykresy są podobne, jednak widad różnice. Warte podkreślenia jest, że algorytm grupowania wykorzystywał wszystkie cztery atrybuty. 15
Jak ilościowo wygląda przydział do powstałych grup w porównaniu z prawdziwymi etykietami klas? W celu wizualizacji można wykorzystad wykres typu Bars Stacked. Widad na nim, że klasa Iris-setosa została wyraźnie oddzielona od dwóch pozostałych. 16
3. Ocena jakości grupowania W poprzednim przykładzie założyliśmy, że liczba poszukiwanych grup wynosi trzy. W ogólnym przypadku nie jest jednak wiadomo ilu grup poszukujemy. W celu ustalenia liczby istniejących w danych grup można próbowad wykorzystad różne indeksy określające jakośd otrzymanego podziału. Indeksy te są tym lepsze, im dane w każdej grupie są bliżej siebie, a grupy dalej od siebie. Wykonamy przykładową analizę dla wyników algorytmu k-średnich za pomocą dwóch indeksów: średniej odległośd przykładów w każdej grupie (pożądana jest minimalna wartośd tego indeksu) oraz indeksu Daviesa Bouldina (http://en.wikipedia.org/wiki/davies%e2%80%93bouldin_index) (szukane jest również minimum). Algorytm k-średnich zostanie uruchomiony dla kolejnych wartości parametru k, określającego szukaną liczbę grup. W tym celu wykorzystamy operator LoopParameters. Jest on operatorem złożonym. Wewnątrz definiujemy go następująco, wykorzystując operator Performance (Cluster Distance Performance): 17
Dodajemy logowanie wyników z każdej iteracji. 18
W ustawieniach operatora Log ustawiamy, co jest zapamiętywane z każdej iteracji. W ustawieniach operatora Loop Parameter ustawiamy opcje pętli. 19
Na koniec przekierowujemy zebrane w logu informacje do operatora Log to Data. Wyniki: 20
Oba indeksy wyraźnie wskazują na istnienie trzech grup. Przykład: Analiza liczby grup dla danych irysów Wyniki: 21
Jak widad, indeks Daviesa Bouldina wskazuje na dwie grupy, co jest w miarę zgodne z rzeczywistymi danymi, jako że tylko jedna klasa jest wyraźnie oddzielona od dwóch pozostałych. Drugi indeks trudniej zinterpretowad, jako iż sugerowad on może istnienie wielu grup. Można jednak wziąd pod uwagę, że spadek indeksu jest mniej dynamiczny od pewnego momentu i na tę wartośd k się zdecydowad. Zadanie: Powtórz powyższą analizę (grupowanie hierarchiczne oraz k-średnich) dla innych wielowymiarowych wygenerowanych danych oraz innych baz (sonar, glass, pima) ze znaną liczba klas (uwaga: jeśli klasy nie są dobrze oddzielone, liczba klas nie musi przekładad się na liczbę dobrze oddzielonych przestrzennie grup, ale może wskazad, że pewne klasy są łatwiejsze do oddzielenia w n-wymiarach niż pozostałe klasy). 22