• Nie Znaleziono Wyników

slajdy w PDF

N/A
N/A
Protected

Academic year: 2021

Share "slajdy w PDF"

Copied!
39
0
0

Pełen tekst

(1)

Clustering

(2)

Plan wykładu

z Wstęp:

z Motywacja i zastosowania z Metody grupowania danych

z Algorytmy oparte na podziałach (partitioning algorithms)

z PAM

z Ulepszanie: CLARA, CLARANS

z Hierarchiczne algorytmy (hierarchical algorithms)

z BIRCH

z Algorytmy oparte na gęstościach (density-based algorithms)

(3)

Motywacja i zastosowania

z Problem: wyznaczyć grupy podobnych obiektów na podstawie podanej z góry

miary podobieństwa lub funkcji odległości

z Cel:

z Wyznaczyć grupy obiektów podobnych

z Redukcja zbioru danych: znaleźć obiekty reprezentatywne w

„homogenicznych” grupach

z Odkrywanie nowych cech: szukanie „naturalnych” grup obiektów. Dla

każdej grupy wyznaczyć (nieznaną) cechę opisującą obiekty w grupie

z Odkrywanie szumu (okłamywania) w danych: Szukanie obiektów, które

(4)

Zastosowania

z WWW:

z Klasyfikacja dokumentów

z Grupowanie danych Weblog w celu odkrywaniu wzorców

dostępu do sieci użytkownika z Marketing:

z Odkrywanie grup klientów o podobnych zachowaniach

z Przetwarzanie obrazów:

z Kompresja obrazów

z Automatyczne uporządkowanie książek, dokumentów z Odkrywanie oszust

(5)

Problem grupowania danych

z

Dany jest

:

z Zbiór N obiektów, każdy jest określony wektorem wartości

o takiej samej długości

z Funkcja odległości (macierz odległości)

z Funkcja oceny jakości grupowania

z

Problem: Podzielić zbiór obiektów na grupy, które

(6)

Główne metody grupowania

z Algorytmy oparte na podziałach (partitioning algorithms):

Konstrukcja różnych podziałów i potem ocenia się je za pomocą kryterium jakości

z Hierarchiczne algorytmy (hierarchical algorithms): Utworzy

hierarchiczną dekompozycję zbioru danych

z Algorytmy oparte na gęstościach (density-based algorithms):

(7)

Algorytm oparty na

podziałach-Problem optymalizacji

z Dane są zbiór obiektów D i parametr k. Podziel zbiór D na k

grup takich, że optymalizują one wybrane kryterium optymalizacji.

z Suma kwadratów błędu (square error criterion):

(

)

2 1 , ∑ ∑ = ∈

=

k i i i C p m p dist

E

m1 m2 C1 C2

(8)

Algorytm oparty na podziałach –

Znane algorytmy

z Algorytm optymalny

z Algorytmy aproksymacyjne:

z k-means (MacQueen): Każda grupa jest reprezentowana

przez środek ciężkości obiektów w grupie

z k-medoids: Każda grupa jest reprezentowana przez jeden

obiekt w grupie.

ƒ PAM (Partition around medoids) (Kaufman i Rouseeuw) ƒ CLARA (Clustering Large Applications)

ƒ CLARANS (Clustering Large Applications based on Randomized Search) (Raymont T. Ng i Jiawei Han )

(9)

Algorytm k – centroidów - Idea

Krok 1. Podziel zbiór danych na dowolnych k rozłącznych zbiorów

Krok 2. Dla każdej grupy wyznacz centroid. Centroid jest środkiem ciężkości grupy. Krok 3. Podziel obiekty do najbliższego

centroida.

Krok 4. Jeśli grupy się nie zmieniają stop, wpp. Goto krok 2.

Zaleta:

z Efektywny: O(tkn), gdzie n: liczba

obietów, k: liczba grup, i t: liczba iteracji

Wada:

z Stosowalny tylko dla danych rzeczywistych z Liczba grup k musi być podana

z Nie wykrywa szumu

z Nie pasuje, jeśli grupy nie są wypukłe

0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10

(10)

Algorytm k-medoidów - PAM

Cel: wyznaczyć k reprezentatywnych obiektów.

Krok 1. Wybierz dowolnie k reprezentatywnych

obiektów

Krok 2. Dla każdej pary: (obiekt zwykły h,

obiekt reprezentatywny i )

wyznacz całkowity koszt zamiany TCih

Krok 3. Dla pary (i,h) o najmniejszym koszcie TCih

zamień zwykły obiekt h

na medoid i medoid i na zwykły obiekt, jeśli TCih< 0

Krok 4. Podziel obiekty do grup względem nowego

układu medoidów, goto Krok 2

Złożoność: O(k(n-k)2.t)

(11)

Wyznaczanie TC

ih

=

j

C

jih

0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 j i h t Cj i h = 0 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 t i h j C j i h = d ( j , h ) - d ( j , i ) 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 t i h j Cjih = d ( j, h ) - d ( j, t) 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 h i t j C j i h = d ( j , t ) - d ( j , i )

(12)

Algorytm CLARA (Clustering Large

Applications)

z Algorytm CLARA

z Próbkuj wiele razy zbiór danych

z Dla każdej próbki szukaj obiektów reprezentatywnych (za pomocą

PAM)

z Zwracaj najlepszy zbiór medoidów

z Zaleta: stosowalna dla dużego zbioru danych z Wada: jakość zależy od wyniku próbkowania

(13)

Algorytm CLARANS (Randomized CLARA)

CLARANS (A Clustering Algorithm based on Randomized

Search) (Ng and Han’94)

Interpretacja przestrzeni wyszukiwania: z Graf pełny Gn,k:

z wierzchołkami są zbiory k medoidów

z Dwa wierzchołki są połączone, jeśli odpowiednie zbiory

medoidów mają (k-1) wspólnych elementów

z Zmiana jednego medoidu odpowiada przejściu z jednego

(14)

Algorytm CLARANS (Randomized

CLARA) (c.d.)

z Algorytm PAM: przeszukiwanie całego grafu

z Algorytm CLARANS: ma dwa parametry max_neighbor i num_local

z Startuje od dowolnego węzła

z Dla bieżącego węzła t, szukaj lepszego węzła wśród

(max_neighbor) sąsiadów t i przejdź do lepszego sąsiada

z Powtórz proces wyszukiwania aż liczba cykli osiągnie num_local z Jeśli lokalne minimum jest osiągalne, to algorytm losuje dowolny

nowy węzeł i szuka innego minimum lokalnego zaczynając od tego węzła.

(15)

Algorytm CLARANS

Wejście: max_neighbor, num_local, Gn,k

Wyjście: zbiór k mediodów

Krok 1. current = dowolny węzeł w grafie Gn,k ;

j =1; best_node = current;

Krok 2. Wybierz losowego sąsiada s i oceń jakość s (za pomocą funkcję TC) Krok 3. if (sąsiad s jest lepszy niż current) then current = s,

else j = j+1;

if (j < max_neighbor) goto Krok 2

else if (current jest lepszy niż best_node) then

best_node = current;

Krok 4. i = i+1;

if (i > num_local) return best_node; else goto Krok 1

(16)

Hierarchiczne grupowanie

Step 0 Step 1 Step 2 Step 3 Step 4

b

d

c

e

a

a b

d e

c d e

a b c d e

Step 4 Step 3 Step 2 Step 1 Step 0

agglomerative

(AGNES)

divisive

(DIANA)

Stopniowe grupowanie Stopniowe podzielenie

(17)

AGNES (Agglomerative Nesting)

z Algorytm bottom-up

z Każdy obiekt należy do jednej grupy (do jednego liścia)

z Połącz węzły, które są bardziej podobne (odległość najmniejsza)

z Kontynuuj, aż wszystkie obiekty należą do jednej grupy (do korzenia)

0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10

(18)

Hierarchia grup - Dendrogram

Dendogram: drzewo grup

Grupowania:

Grupy danych otrzymane przez obcięcie

drzewa na dowolnym poziomie

(19)

DIANA (Divisive Analysis)

z Algorytm top-down

z Podziel węzeł na dwa węzły

z Kontynuuj, aż każdy obiekt znajduje się w jednym liściu

0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10

(20)

Hierarchiczne

grupowanie-Obserwacja

z Zaleta:

z Liczba grup k nie musi być znana

z Wielkość grupy można dobrać

z Wada:

z Nie jest efektywne: O(n2), gdzie n jest liczbą obiektów

(21)

Ulepszony algorytm

hierarchiczny-BIRCH

z

BIRCH (Balanced Iterative Reducing and Clustering

using Hierarchies):

z Działa efektywnie: decyzja dla jednej grupy (dzielenie czy

połączenie z inną grupą) nie wymaga przeglądania całego zbioru danych

z I/O koszt jest liniowy względem rozmiaru danych:

przeglądanie zbioru danych raz

z Algorytm działa dla danych dynamicznie zmienionych

(22)

BIRCH –

Struktura CF drzewa

z CF (Clustering Feature) – drzewo: z Zrównoważone drzewo

z Ma trzy parametry:

z B – maksymalna liczba rozgałęzień,

z L – maksymalna liczba obiektów w liściach z T – maksymalny promień (grup w liściach)

z Węzeł wewnętrzny: [CFi, childi] i= 1,2,...,B z Węzeł zewnętrzny (liść): [CFi] i =1,2,...,L

(23)

Opis grupy

z Niech grupa G zawiera N punktów

z Środek, promień (R) i średnica (D) grupy są

zdefiniowane:

z Parametry , R i D opisują grupę obiektów G.

d i R xG ∈ 2 1 1 1 2 2 1 1 2 0 1 0 ) ) 1 ( ) ( ( ) ) ( ( − − = − = =

∑ ∑

= = = = → → N N x x D N x x R N x x N i N j i j N i i N i i G G G G 0 xG

(24)

Opis grupy –

Wektor CF

Opis grupy : CF = (N, LS, SS)

N: liczba punktów w grupie LS: N i=1=Xi SS: N i=1=Xi2 Twierdzenie: Niech CF1 = (N1, LS1, SS1) i CF2 = (N2, LS2, SS2) będą opisami dwóch grup G1 i G2, to CF = (N1+N2, LS1+ LS2, SS1+SS2) będzie opisem grupy, która jest połączeniem G1 i G2 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 CF = (5, (16,30),(54,190)) (3,4) (2,6) (4,5) (4,7) (3,8)

(25)

CF

1 child1

CF

3 child3

CF

2 child2

CF

5 child5

CF

1

CF

2

CF

6

prev next prev

CF

1

CF

2

CF

4 next

Non-leaf node

Leaf node

Leaf node

CF - drzewo

CF

1 child1

CF

3 child3

CF

2 child2

CF

6 child6

Root

(26)

Wstawianie obiektu do drzewa

Krok 1. Wybierz liść l do wstawiania. Użyj jednej z funkcji odległości

D do wyznaczenia najbliższej grupy do badanego punktu

Krok 2. Jeśli w l jest miejsce to wstaw x,

wpp. Podziel liść l na dwa liście i popraw ścieżkę od l do korzenia.

Krok 3. Rekonstrukcja drzewo przez połączenie dwa najbliższe

(27)

Efekt splite, merge i resplite

CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 CF9 CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 CF9 CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 CF9 Splite Merge Resplite

(28)

Algorytm BIRCH – Schemat

blokowy

Faza 1: Buduj CF - drzewo

Dane

CF-drzewo

Faza 3: Zastosuj istniejące algorytmy

grupowania dla obiektów w liściach

Dobre grupy

Faza 2 (Opcjonalnie): Uprościć CF

-drzewo przez łączenie najbliższych liści

Uproszczone CF-drzewo

Faza 4 (Opcjonalnie): Ulepszenie jakości

grup przez przemieszczanie obiektów

(29)

Algorytm BIRCH –Faza 3,4

z Faza 3:

z Każda grupa w liściu jest reprezentowana przez środek

ciężkości. Zastosuj dowolny algorytm grupowania dla zbioru środków

z Zastosuj dowolny algorytm grupowania bezpośrednio na

obiektach w grupie.

z Faza 4 (ulepszenie jakości grup):

z Wyznaczaj środków grup generowanych przez fazę 3

z Dla każdego obiektu o, przemieszczaj go do grupy, której

(30)

BIRCH - Ocena

z

Zaleta:

z Wyznacza grupy przez jedno przeglądanie zbiór danych.

z Proces wstępny dla wielu algorytmów grupowania

z

Wada:

z Działa tylko dla danych numerycznych

(31)

Ograniczenie algorytmu grupowania

oparte na odległości

z Każda grupa jest reprezentowana przez jeden obiekt lub

środek ciężkość

(32)

Grupowanie oparte na

gęstości

z Grupa składa się z punktów sąsiednich o wysokiej

gęstości w otoczeniu

z Regiony pokrywające grupy mają wyższą gęstość

(33)

Grupowanie oparte na gęstości

z Główne zalety:

z Odkrywa grupy o dowolnym kształcie z Odkrywa szumy (okłamywanie)

z Jedno przeglądanie zbioru danych

z Interesujące algorytmy:

z DBSCAN: Ester, et al. (KDD’96)

z OPTICS: Ankerst, et al (SIGMOD’99).

z DENCLUE: Hinneburg & D. Keim (KDD’98) z CLIQUE: Agrawal, et al. (SIGMOD’98)

(34)

Pojęcia podstawowe

z Dwa parametry:

z ε : promień definiujący otoczenie obiektu

z MinPts: minimalna liczba punktów w ε -otoczeniu

z Rdzeń: obiekt, który ma co najmniej MinPts w ε - otoczeniu

z Brzegowy obiekt: obiekt, który ma mniej niż MinPts w ε - otoczeniu.

p

q

MinPts = 5

(35)

Pojęcia podstawowe (c.d.)

z ε -otoczenie:

Nε(p): {q ∈ D | dist(p,q) ≤ ε}

z Dane są parametry ε i MinPts. Punkt p jest bezpośrednio

wyprowadzony z punktu q jeśli

1) p ∈ Nε(q) 2) |Nε(q)| ≥ MinPts

p

q

MinPts = 5

ε

= 1 cm

(36)

Density-Based Clustering: Background (II)

z Punkt p jest wyprowadzony z punktu q jeśli

istnieje ciąg punktów p1, …, pntaki, że p1 =

q, pn = p i pi+1 jest bezpośrednio osiągalny z pi

z Punkt p i q są połączone jeśli istnieje punkt

o taki, że p i q są wyprowadzone z o

p

q

p

1

p

q

(37)

DBSCAN: Density Based Spatial

Clustering of Applications with Noise

z Grupa: Maksymalny zbiór punktów połączonych

Brzegowy punkt ε = 1cm MinPts = 5 Rdzeń Szum

(38)

Algorytm DBSCAN

Krok 1. Wybierz dowolny punkt p

Krok 2. Wyszukiwać zbiór G wszystkich punktów osiągalnych z

punktu p w sensie ε i MinPts.

Krok 3. Jeśli p jest rdzeniem, return G (grupa była utworzona) . Krok 4. jeśli p jest punktem brzegowym (żaden punkt nie jest

osiągalny z p) to sprawdź następny nieodwiedzony punkt

(39)

Ulepszanie

z Użycie R*-drzewa do indeksowania zbioru danych

z Wyznaczanie sąsiadów w ε-otoczeniu danego punktu p:

z Przeglądaj drzewo od korzenia do liścia

z Dla węzła t, wybierz poddrzewo, którego prostokąt ma

niepuste przecięcie z okręgiem o środku w p i promieniu ε.

O(n*log n) O(log n) R*-drzewo O(n2) O(n) Bez indeksowania Złożoność DBSCAN Czas wyszukiwania sąsiadów Złożoność czasowa

Cytaty

Powiązane dokumenty

Będziemy teraz brać pod uwagę nie poziom ufności, lecz prawdopodo- bieństwo poprawnej decyzji... Asymptotycznie efektywna procedura sekwencyjna. Jeżeli nie,

Bronisław Wróblewski (1888–1941), profesor prawa Uniwersytetu Stefana Batorego oraz Szkoły Nauk Politycznych w Wil- nie, członek licznych towarzystw wileńskich, w tym

Prawo minimum Liebiga sprowadzono do pierwiastków chemicznych ( tlen, fosfor, potas, magnez), co było zgodnie z pierwotną intencją Liebiga, będącego badaczem potrzeb..

r adWańska -p aryska (1981), oznaczając okazy zebrane w Toporowym Stawie Niżnym porównywała je z okazami ze Stawów Rohackich. Zwróciła uwagę na ich podobieństwo:

We presented a strongly polynomial time algorithm for the assignment problem, but both the algorithms that we presented for the general minimum cost flow problem are not even

Znaleźć kresy funkcji f oraz punkty, w których funkcja ta ma

It was found that SWASH, in general, reproduced the wave height, setup and runup measured in the experiments, and described the associated processes of

The gross minimum wage at the time amounted to 1,317 PLN and the net wage amounted to 948.15 PLN, with the total cost of labour incurred by an employer amounting to 1,560.39 PLN,