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