Eksploracja danych-Techniki grupowania danych
Transkrypt
Eksploracja danych-Techniki grupowania danych
Techniki grupowania danych w środowisku Matlab 1. Normalizacja danych. Jedne z metod normalizacji: ∧ x= ∧ x= x x max x _ ; ∧ ; x= x _ ( x − x) _ ∧ ; x= _ ( x − x) x σ ; _ ( x − x) ∧ , x = (1 + e − y ) −1 ; rσ ∧ ( x − x min ) x= , ( x max − x min ) y= _ x – wartość średnia, r – współczynnik, σ – odchylenie standardowe Do normalizacji danych przed grupowaniem moŜemy zastosować funkcję zscore przekształcającej dane w zbiorze uŜywając tej samej skali proporcjonalnej. Wywołanie funkcji: Z = zscore(D), gdzie D jest zbiorem danych. Wynikiem jest odchylenie wartości zawartych w kaŜdej kolumnie od jej średniej znormalizowanej przez jej odchylenie standardowe. JeŜeli w zbiorze danych znajduje się kolumna V to Z dla niej wynosi: (V-mean(V))./std(V). 2. Określenie podobieństwa pomiędzy danymi w zbiorze danych. Do określenia podobieństwa pomiędzy kaŜdą parą danych w zbiorze posłuŜymy się funkcją pdist tworząc macierz odległości. Dane są tym bardziej podobne do siebie, im odległość między nimi jest mniejsza. Wywołanie funkcji: Y=pdist(Z,Typ_odleglosci), gdzie Z jest zbiorem danych. 1 Tabela 1. Sposoby obliczania odległości. Typ_odleglosci (przykładowe) Wzór Nazwa 'euclidean' Odległość Euklidesowa 'seuclidean' Standaryzowana odległość Euklidesowa 'cityblock' Odległość miejska 'cosine' Jeden minus kosinus kąta pomiędzy punktami 'correlation' Jeden minus korelacja pomiędzy punktami 'hamming' Odległość Hamminga 3. Grupowanie danych. Po określeniu odległości pomiędzy danymi w zbiorze danych naleŜy zdecydować, w jaki sposób dane powinny być pogrupowane. Do tego celu uŜywamy funkcji linkage, która korzystając z odległości wyznaczonych pomiędzy danymi grupuje je tworząc drzewo hierarchiczne. Tworzenie drzewa zaleŜy od zastosowanej metody. Wywołanie funkcji: Z = linkage(Y, Nazwa_metody), gdzie Y – macierz odległości Tabela 2. Metody grupowania elementów zbioru. Nazwa_metody 'single' 'complete' 'average' 'weighted' Sposób grupowania elementów zbioru ze sobą NajbliŜsza odległość Najdalsza odległość Odległość średnia Wagowa odległość średnia Pogrupowane dane moŜna wyświetlić w postaci drzewa za pomocą funkcji dendrogram. Wywołanie funkcji: H=dendrogram(Z). 4. Weryfikacja sposobu grupowania. Za pomocą funkcji cophenet porównujemy dwa zbiory wartości i obliczamy korelację pomiędzy nimi. Im wartość owej korelacji jest bliŜsza jedności tym lepiej sposób grupowania danych odzwierciedla faktyczne podobieństwa między danymi. Wywołanie funkcji: C = cophenet(Z,Y), gdzie Z zawiera dane zgrupowane w postaci drzewa hierarchicznego, a Y jest macierzą odległości. 2 5. Tworzenie zadanej liczby grup. Za pomocą funkcji cluster moŜemy narzucić podział danych na zadaną liczbę grup. Wywołanie funkcji: T = cluster(Z,'cutoff',próg_współczynnika_niespójności), próg współczynnika niespójności wiąŜący się z wysokością drzewa wymusza grupowanie danych posiadających jego wartość mniejszą niŜ progowa. T = cluster(Z,'maxclust',zadana_liczba_grup), wymuszenie podziału danych na zadaną liczbę grup. Ćwiczenia. PoniŜsza tabela obrazuje natęŜenie ruchu ulicznego na trzech skrzyŜowaniach w mieście zaleŜne od godziny pomiaru. Tabela 3. Dane testowe. Godzina/ Nr skrzyŜowania 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 2 3 11 7 14 11 43 38 61 75 38 28 12 18 18 17 19 32 42 57 44 114 35 11 13 10 11 13 17 13 51 46 132 135 88 36 12 27 19 15 36 47 65 66 55 145 58 12 9 9 9 11 20 9 69 76 186 180 115 55 14 30 29 18 48 10 92 151 90 257 68 15 15 7 Poleceniem load count.dat wczytujemy dane testowe do przestrzeni roboczej środowiska Matlab. Ćwiczenie 1. • • Dokonać normalizacji danych. Wyświetlić dane w postaci punktów w przestrzeni (funkcja plot3). 3 • Dobrać odpowiedni typ odległości oraz metodę wyznaczaniu podobieństwa pomiędzy danymi w zbiorze testowym tak, aby współczynnik korelacji cophenet’a był optymalny. Ćwiczenie 2. • • Wyświetlić drzewo hierarchiczne. Dobrać próg współczynnika niespójności tak, by utworzyć 2, 4, 6 i 8 grup danych. Ćwiczenie 3. • • Pogrupować natęŜenia ruchu dla kaŜdego skrzyŜowania osobno, wyznaczyć godziny największego i najmniejszego natęŜenia ruchu (grupy godzin). Wyświetlić drzewa hierarchiczne dla kaŜdego skrzyŜowania osobno. 6. Grupowanie danych za pomocą algorytmu k – średnich. Algorytm k – średnich traktuje dane jako miejsce (punkt) w przestrzeni i tworząc grupy dba by elementy w grupie były blisko siebie i wystarczająco daleko od elementów z innych grup. KaŜdy klaster (dane zgrupowane) reprezentowany jest przez jego elementy oraz przez środek klastra. Środek klastra jest to punkt gdzie suma odległości wszystkich elementów od niego jest minimalna. Wywołanie funkcji: I = kmeans(X,liczba_grup,'distance',typ_odleglosci), gdzie X reprezentuje dane do klasteryzacji, 'distance' – realizacja wybranego rodzaju obliczania odległości do środka klastra Typy odległości: -'sqEuclidean' -'cityblock' -'cosine' -'correlation' -'Hamming' Otrzymawszy pogrupowane dane moŜemy wyświetlić je w postaci zarysu grup. Funkcja silhouette wyświetla miarę jak blisko kaŜdy punkt naleŜący do grupy jest oddalony od punktów z grup sąsiadujących. Wyświetlany wynik zawiera się w przedziale <-1:1>, przy czym wartości mniejsze niŜ zero i zmierzające do -1 oznaczają, Ŝe dany punkt został umieszczony w niewłaściwym klastrze (grupie). Wywołanie funkcji: [silh,h] = silhouette(X,I,typy_odległosci) WyróŜniamy następujące rodzaje odległości: -'Euclidean' -'sqEuclidean' -'cityblock' -'cosine' -'correlation' -'Hamming' 4 7. Określanie poprawnej liczby klastrów. Chcąc określić czy załoŜona przy wywołaniu funkcji kmeans liczba klastrów jest prawidłowa obliczamy średnią wartość zwracaną przez funkcję silhouette. Im większa wartość średnia tym liczba klastrów jest bardziej poprawna. Wywołanie funkcji: S=means(silh) Ćwiczenie 4. • • Określić optymalny typ odległości przy grupowaniu kmeans dla wszystkich skrzyŜowań łącznie Wyświetlić zarysy klastrów Ćwiczenie 5. • • Określić prawidłową liczbę klastrów dla wszystkich skrzyŜowań łącznie. Określić prawidłową liczbę klastrów dla pierwszych dwóch skrzyŜowań. Które charakteryzuje się większą róŜnorodnością danych? 5