Statystyczna Analiza Danych – laboratorium
Analiza skupień
Dorota Celińska-Kopczyńska, Paweł Strawiński
Uniwersytet Warszawski
Zajęcia 13 10.06/11.06
Zanim zaczniemy
I Klasyfikacja – przyporządkowanie nowego wektora danych do jednej ze znanych klas
I Dyskryminacja – znalezienie czynników odpowiadających za przynależność do jednego ze znanych klas
I Grupowanie – znalezienie podziału na nieznane klasy w danych
Idea zajęć – co i po co będziemy robić?
I Zajmiemy się dziś analizą skupień (grupowania/klasteryzacji/segmentacji)
I Omówimy statystyczne metody pozwalające na znajdowanie grup podobnych obiektów w danych
I Podstawą grupowania będzie podobieństwo między obiektami I Będziemy chcieli poznać strukturę analizowanych danych
wielowymiarowych, zredukować dużą liczbę danych pierwotnych do kilku podstawowych kategorii i nadać im sensowną interpretację
Analiza skupień
I Dziedzina eksploracji danych – dzielimy wielowymiarowy zbiórdanych na grupy w taki sposób, by elementy w tej samej grupie były do siebie podobne, a jednocześnie jak najbardziej odmienne od elementów z pozostałych grup
I Analiza skupień znalazła wiele zastosowań w różnych dziedzinach, np. odkrywanie grup klientów o podobnych zachowaniach (marketing), czy wykrywanie oszustw kredytowych (banki)
Typy analizy skupień
I Niehierarchiczna traktująca grupy danych w sposób równoważny
I Hierarchiczna zakładająca, że grupy danych są zagnieżdzone
Ogólna idea metod niehierarchicznych
I Polega na podziale zbioru danych na określoną a-priori liczbę grup (skupień)
I Podział dokonywany jest na podstawie optymalizacji funkcji kryterium podziału
I Utworzone grupy powinny być homogeniczne i odseparowane I Homogeniczność – grupy powinny być wewnętrznie spójne I Separowanie – grupy powinny być rozłączne i różnić się pod
względem cech obiektów
Praktyczny algorytm optymalizacji
1. Znalezienie początkowego podziału n obiektów na g grup 2. Obliczenie zmiany wartości kryterium przy przesunięciu
obiektu między grupami
3. Wybranie przesunięcia, które skutkuje największym przyrostem wartości funkcji kryterium
4. Powtarzanie kroków (2)-(3) do chwili, gdy przyrost wynosi zero
Początkowe rozwiązanie
I Na podstawie wiedzy a-priori I Dobór w sposób losowy
I Na podstawie statystycznej analizy danych – najczęściej wykorzystywana jest metoda k-średnich, k-median, k-medoidów
I Wybór początkowego rozwiązania może wpływać na rozwiązanie końcowe!
Zadanie #1 – pokazowe
Przeprowadź analizę skupień na danych iris korzystając z algorytmów k-means oraz PAM. Zwizualizuj wyniki.
iris_kmeans <- kmeans(iris[, 1:4], 3) iris_kmeans
library(ggplot2)
klastry <- factor(iris_kmeans$cluster)
ggplot(iris, aes(x=Petal.Length, y=Petal.Width, shape=klastry, col=Species)) + geom_point()
library(cluster)
iris_pam <- pam(iris[, 1:4], 3) iris_pam
Niektóre środowiska mogą rozumieć algorytmy inaczej...
I Pokazany w trakcie wykładu algorytm to k-means w rozumieniu ISL i ESL
I Oryginalny kmeans:
https://en.wikipedia.org/wiki/K-means_clustering I https:
//www.mimuw.edu.pl/~pokar/StatystykaII/wyklad.pdf str. 39-41
I Algorytm z wykładu: krok kosztuje O(n2), oryginalny: krok kosztuje O(n)
Zadanie #1a
Zadanie spoza scenariusza – skupienia nie są już tak oczywiste
Ogólna idea metod hierarchicznych
I Grupa wyższego stopnia jest sumą grup niższego stopnia I Jeżeli zbiór liczy n obserwacji, to uzyskana hierarchia liczy n
klasyfikacji składających się odpowiednio z 1, 2, 3, . . . , n klas I Segmentacja zawierająca jedna klasę stanowi zbiór wszystkich
obserwacji, natomiast złożona z n klas zawiera wyłącznie klasy jednoelementowe
Sposób analizy
I Nie jest wymagane określenie liczby grup, na które zbiór będzie dzielony
I Liczba grup jest rezultatem zastosowania algorytmu I Typ analizy zależy od dwóch wyborów: miary odległości
między klasami i metody skupień
Metody skupień
I aglomeracyjne – łączymy klasy, między którymi odległość jest najmniejsza
I podziału – dzielimy klasę na dwie klasy, aby odległość między nimi była największa
Mierzenie odległości między klasami
I Metoda najbliższego sąsiedztwa (pojedynczego wiązania) I Metoda najdalszego sąsiedztwa (pełnego wiązania) I Metoda średniego wiązania
I Metoda Warda (oparta na analizie wariancji)
Zadanie #3
I Wczytaj i obejrzyj zbiór danych dotyczący sportowców ais.txt I Wybierz zmienne numeryczne, wycentruj je i przeskaluj.
Wybierz losowo od 20 do 40 obserwacji
I Sklastruj dane za pomocą algorytmu klastrowania
hierarchicznego zaimplementowanego w funkcji hclust (zwróć uwagę na specyficzną składnię funkcji, opisaną w
dokumentacji - funkcja nie przyjmuje po prostu tabeli z danymi)
I Obejrzyj dendrogram. Oznacz na liściach sport jaki uprawia dany sportowiec (sprawdź jak to zrobić w dokumentacji funkcji plot.hclust). Czy podobne sporty są w podobnych klastrach?
I Oznacz liście płcią sportowca. Czy klastry znalezione przez hclust lepiej zgadzają się z typem sportu, czy płcią?