CLUSTERING II. Efektywne metody grupowania danych

Podobne dokumenty
PRZYSPIESZENIE KNN. Ulepszone metody indeksowania przestrzeni danych: R-drzewo, R*-drzewo, SS-drzewo, SR-drzewo.

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633

CLUSTERING. Metody grupowania danych

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Michał Kozielski Łukasz Warchał. Instytut Informatyki, Politechnika Śląska

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Tadeusz Pankowski

Wysokość drzewa Głębokość węzła

Przykładowe B+ drzewo

Filogeneza: problem konstrukcji grafu (drzewa) zależności pomiędzy gatunkami.

Ogólne wiadomości o grafach

Analiza Skupień - Grupowanie Zaawansowana Eksploracja Danych

Grupowanie. Iteracyjno-optymalizacyjne metody grupowania Algorytm k-średnich Algorytm k-medoidów. Eksploracja danych. Grupowanie wykład 2

Wyszukiwanie informacji w internecie. Nguyen Hung Son

Algorytm grupowania danych typu kwantyzacji wektorów

Porządek symetryczny: right(x)

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Eksploracja danych. Grupowanie. Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne. Grupowanie wykład 1

Agnieszka Nowak Brzezińska

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Hierarchiczna analiza skupień

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Algorytmy i Struktury Danych

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe

Sortowanie topologiczne skierowanych grafów acyklicznych

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Analiza skupień. Idea

CLUSTERING METODY GRUPOWANIA DANYCH

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Algorytmy i struktury danych

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

DBSCAN segmentacja danych punktowych oraz rastrowych w środowisku wolnodostępnego oprogramowania R

Algorytmy i struktury danych. wykład 5

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Metody Programowania

Lista 0. Kamil Matuszewski 1 marca 2016

Definicja pliku kratowego

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Wprowadzenie do technologii informacyjnej.

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

4.3 Grupowanie według podobieństwa

Agnieszka Nowak Brzezińska Wykład III

Indukowane Reguły Decyzyjne I. Wykład 3

Analiza Skupień Cluster analysis

SPOTKANIE 6: Klasteryzacja: K-Means, Expectation Maximization

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Sztuczna Inteligencja i Systemy Doradcze

ALGORYTMY I STRUKTURY DANYCH

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Heurystyczne metody przeszukiwania

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Teoretyczne podstawy informatyki

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Agnieszka Nowak Brzezińska Wykład III

Sortowanie bąbelkowe

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

TEORETYCZNE PODSTAWY INFORMATYKI

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak:

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Drzewa poszukiwań binarnych

Wybrane podstawowe rodzaje algorytmów

Optymalizacja. Przeszukiwanie lokalne

Dynamiczne struktury danych

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Sieci Kohonena Grupowanie

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

Analiza skupień. Analiza Skupień W sztucznej inteligencji istotną rolę ogrywają algorytmy grupowania

SYSTEMY UCZĄCE SIĘ WYKŁAD 3. DRZEWA DECYZYJNE. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Matematyczne Podstawy Informatyki

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Rozwiązywanie problemów metodą przeszukiwania

Drzewa czerwono-czarne.

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Algorytmy stochastyczne laboratorium 03

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Metody Optymalizacji: Przeszukiwanie z listą tabu

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Adrian Horzyk

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Programowanie obiektowe

Teoria gier. Teoria gier. Odróżniać losowość od wiedzy graczy o stanie!

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Analiza algorytmów zadania podstawowe

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

Transkrypt:

CLUSTERING II Efektywne metody grupowania danych

Plan wykładu Wstęp: Motywacja i zastosowania Metody grupowania danych Algorytmy oparte na podziałach (partitioning algorithms) PAM Ulepszanie: CLARA, CLARANS Hierarchiczne algorytmy (hierarchical algorithms) BIRCH Algorytmy oparte na gęstościach (density-based algorithms) DBSCAN

Motywacja i zastosowania Problem: wyznaczyć grupy podobnych obiektów na podstawie podanej z góry miary podobieństwa lub funkcji odległości Cel: Wyznaczyć grupy obiektów podobnych Redukcja zbioru danych: znaleźć obiekty reprezentatywne w homogenicznych grupach Odkrywanie nowych cech: szukanie naturalnych grup obiektów. Dla każdej grupy wyznaczyć (nieznaną) cechę opisującą obiekty w grupie Odkrywanie szumu (okłamania) w danych: Szukanie obiektów, które nie należą do żadnej grupy

Zastosowania WWW: Klasyfikacja dokumentów Grupowanie danych Weblog w celu odkrywaniu wzorców dostępu do sieci użytkownika Marketing: Odkrywanie grup klientów o podobnych zachowaniach Przetwarzanie obrazów: Kompresja obrazów Automatyczne uporządkowanie książek, dokumentów Odkrywanie oszust

Problem grupowania danych Dany jest: Zbiór N obiektów, każdy jest określony wektorem wartości o takiej samej długości Funkcja odległości (macierz odległości) Funkcja oceny jakości grupowania Problem: Podzielić zbiór obiektów na grupy, które optymalizują funkcję jakości.

Główne metody grupowania Algorytmy oparte na podziałach (partitioning algorithms): Konstrukcja różnych podziałów i potem ocenia się je za pomocą kryterium jakości Hierarchiczne algorytmy (hierarchical algorithms): Utworzy hierarchiczną dekompozycję zbioru danych Algorytmy oparte na gęstościach (density-based algorithms): oparte na funkcji gęstości i na lokalnych połączeniach.

Algorytm oparty na podziałach Dane są zbiór obiektów D i parametr k. Podziel zbiór D na k grup takich, że optymalizują one wybrane kryterium optymalizacji. Suma kwadratów błędu (square error criterion): E k dist i 1 p C i p, m 2 i m 1 m 2 C 1 C 2

Znane algorytmy podziałowe Algorytm optymalny Algorytmy aproksymacyjne: k-means (MacQueen): Każda grupa jest reprezentowana przez środek ciężkości obiektów w grupie 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 )

Algorytm k centroidów 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. 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 Zaleta: 0 0 1 2 3 4 5 6 7 8 9 10 Efektywny: O(tkn), gdzie n: liczba obietów, k: liczba grup, i t: liczba iteracji Wada: Stosowalny tylko dla danych rzeczywistych Liczba grup k musi być podana Nie wykrywa szumu Nie pasuje, jeśli grupy nie są wypukłe 1 1 0 0 1 2 3 4 5 6 7 8 9 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 TC ih Krok 3. Dla pary (i,h) o najmniejszym koszcie TC ih zamień zwykły obiekt h na medoid i medoid i na zwykły obiekt, jeśli TC ih < 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) n-liczba obiektów, k-liczba grup, t-liczba iteracji

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 C jih = 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 jih = 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 C jih = 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 jih = d(j, t) - d(j, i)

Algorytm CLARA (Clustering Large Applications) Algorytm CLARA Próbkuj wiele razy zbiór danych Dla każdej próbki szukaj obiektów reprezentatywnych (za pomocą PAM) Zwracaj najlepszy zbiór medoidów Zaleta: stosowalna dla dużego zbioru danych Wada: jakość zależy od wyniku próbkowania Modyfikacja CLARA: Próbkowanie za pomocą R*-drzewa

Algorytm CLARANS (Randomized CLARA) CLARANS (A Clustering Algorithm based on Randomized Search) (Ng and Han 94) Interpretacja przestrzeni wyszukiwania: Graf pełny G n,k : wierzchołkami są zbiory k medoidów Dwa wierzchołki są połączone, jeśli odpowiednie zbiory medoidów mają (k-1) wspólnych elementów Zmiana jednego medoidu odpowiada przejściu z jednego węzła do węzła sąsiedniego.

Algorytm CLARANS (Randomized CLARA) (c.d.) Algorytm PAM: przeszukiwanie całego grafu Algorytm CLARANS: ma dwa parametry max_neighbor i num_local Startuje od dowolnego węzła 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 Powtórz proces wyszukiwania aż liczba cykli osiągnie num_local 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.

Algorytm CLARANS Wejście: max_neighbor, num_local, G n,k Wyjście: zbiór k medoidów Krok 1. current = dowolny węzeł w grafie G n,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

Hierarchiczne grupowanie Step 0 Step 1 Step 2 Step 3 Step 4 a a b b a b c d e c c d e d d e e Step 4 Step 3 Step 2 Step 1 Step 0 agglomerative (AGNES) Stopniowe grupowanie divisive (DIANA) Stopniowe podzielenie

AGNES (Agglomerative Nesting) Algorytm bottom-up Każdy obiekt należy do jednej grupy (do jednego liścia) Połącz węzły, które są bardziej podobne (odległość najmniejsza) Kontynuuj, aż wszystkie obiekty należą do jednej grupy (do korzenia) 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10

Hierarchia grup - Dendrogram Dendogram: drzewo grup Grupowania: Grupy danych otrzymane przez obcięcie drzewa na dowolnym poziomie

DIANA (Divisive Analysis) Algorytm top-down Podziel węzeł na dwa węzły Kontynuuj, aż każdy obiekt znajduje się w jednym liściu 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10

Hierarchiczne grupowanie- Obserwacja Zaleta: Liczba grup k nie musi być znana Wielkość grupy można dobrać Wada: Nie jest efektywne: O(n 2 ), gdzie n jest liczbą obiektów Struktura jest statyczna

Ulepszony algorytm hierarchiczny- BIRCH BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies): Działa efektywnie: decyzja dla jednej grupy (dzielenie czy połączenie z inną grupą) nie wymaga przeglądania całego zbioru danych I/O koszt jest liniowy względem rozmiaru danych: przeglądanie zbioru danych raz Algorytm działa dla danych dynamicznie zmienionych Wykrywa szumy w danych

BIRCH Struktura CF drzewa CF (Clustering Feature) drzewo: Zrównoważone drzewo Ma trzy parametry: B maksymalna liczba rozgałęzień, L maksymalna liczba obiektów w liściach T maksymalny promień (grup w liściach) Węzeł wewnętrzny: [CF i, child i ] i= 1,2,...,B Węzeł zewnętrzny (liść): [CF i ] i =1,2,...,L

Opis grupy Niech grupa G zawiera N punktów Środek, promień (R) i średnica (D) grupy są zdefiniowane: Parametry, R i D opisują grupę obiektów G. d i R x x 0... 1) ( ) ( ) ( 1 1 2 2 0 1 2 1 2 0 1 0 N N x x D x N x N x x R N x x N i N j j i N i i N i i N i i

Opis grupy wektor CF CF = (5, (16,30),(54 + 190)) Opis grupy : CF = (N, LS, SS) N: liczba punktów w grupie LS: N i=1=x i SS: N 2 i=1=x i 10 9 8 7 6 5 4 3 2 1 (3,4) (2,6) (4,5) (4,7) (3,8) 0 0 1 2 3 4 5 6 7 8 9 10 Twierdzenie: Niech CF 1 = (N 1, LS 1, SS 1 ) i CF 2 = (N 2, LS 2, SS 2 ) będą opisami dwóch grup G 1 i G 2, to CF = (N 1 +N 2, LS 1 + LS 2, SS 1 +SS 2 ) będzie opisem grupy, która jest połączeniem G 1 i G 2

CF - drzewo Root B = 7 L = 6 CF 1 CF 2 child 1 child 2 child 3 child 6 CF 3 CF 6 CF 1 CF 2 Non-leaf node child 1 child 2 child 3 child 5 CF 3 CF 5 Leaf node Leaf node prev CF 1 CF 2 CF 6 next prev CF 1 CF 2 CF 4 next

Wstawianie obiektu do drzewa Krok 1. Wybierz najbliższy 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 do l, wpp. Podziel liść l na dwa liście Krok 3. Popraw ścieżkę od l do korzenia. Krok 4. Rekonstrukcja drzewo przez połączenie dwa najbliższe węzły i podzielić na dwa (w razie potrzeby): merge i resplite

Efekt splite, merge i resplite CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 Splite CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 CF9 Merge CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 CF9 Resplite CF1 CF3 CF5 CF6 CF7 CF8 CF4 CF2 CF9

Algorytm BIRCH Schemat blokowy Dane Faza 1: Buduj CF - drzewo CF-drzewo Faza 2 (Opcjonalnie): Uprościć CF - drzewo przez łączenie najbliższych liści Uproszczone CF-drzewo Faza 3: Zastosuj istniejące algorytmy grupowania dla obiektów w liściach Dobre grupy Faza 4 (Opcjonalnie): Ulepszenie jakości grup przez przemieszczanie obiektów Lepsze grupy

Algorytm BIRCH Faza 3,4 Faza 3: Każda grupa w liściu jest reprezentowana przez środek ciężkości. Zastosuj dowolny algorytm grupowania dla zbioru środków Zastosuj dowolny algorytm grupowania bezpośrednio na obiektach w grupie. Faza 4 (ulepszenie jakości grup): Wyznaczaj środków grup generowanych przez fazę 3 Dla każdego obiektu o, przemieszczaj go do grupy, której środek jest najbliżej o.

BIRCH - Ocena Zaleta: Wyznacza grupy przez jedno przeglądanie zbiór danych. Proces wstępny dla wielu algorytmów grupowania Wada: Działa tylko dla danych numerycznych Wrażliwy na kolejność obiektów

Ograniczenie algorytmu grupowania oparte na odległości Każda grupa jest reprezentowana przez jeden obiekt lub środek ciężkość Grupy są wypukłymi figurami.

Grupowanie oparte na gęstości Grupa składa się z punktów sąsiednich o wysokiej gęstości w otoczeniu Regiony pokrywające grupy mają wyższą gęstość niż regiony na zewnątrz

Grupowanie oparte na gęstości Główne zalety: Odkrywa grupy o dowolnym kształcie Odkrywa szumy (okłamywanie) Jedno przeglądanie zbioru danych Interesujące algorytmy: DBSCAN: Ester, et al. (KDD 96) OPTICS: Ankerst, et al (SIGMOD 99). DENCLUE: Hinneburg & D. Keim (KDD 98) CLIQUE: Agrawal, et al. (SIGMOD 98)

Pojęcia podstawowe Dwa parametry: : promień definiujący otoczenie obiektu MinPts: minimalna liczba punktów w -otoczeniu Rdzeń: obiekt, który ma co najmniej q p MinPts = 5 = 1 cm MinPts w - otoczeniu Brzegowy obiekt: obiekt posiadający, mniej niż MinPts obiektów w - otoczeniu.

Pojęcia podstawowe (c.d.) -otoczenie: N (p): {q D dist(p,q) } Dane są parametry i MinPts. Punkt p jest bezpośrednio wyprowadzony z punktu q jeśli 1) p N (q) 2) N (q) MinPts q p MinPts = 5 = 1 cm

Density-Based Clustering: Background (II) Punkt p jest wyprowadzony z punktu q jeśli istnieje ciąg punktów p 1,, p n taki, że p 1 = q, p n = p i p i+1 jest bezpośrednio osiągalny z p i q p 1 p Punkt p i q są połączone jeśli istnieje punkt o taki, że p i q są wyprowadzone z o p o q

DBSCAN: Wykrywanie i usuwanie szumów Grupa: Maksymalny zbiór punktów połączonych Brzegowy punkt Szum = 1cm Rdzeń MinPts = 5

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 Krok 5. Kontynuuj aż wszystkie punkty są odwiedzone

Ulepszanie Użycie R*-drzewa do indeksowania zbioru danych Wyznaczanie sąsiadów w -otoczeniu danego punktu p: Przeglądaj drzewo od korzenia do liścia Dla węzła t, wybierz poddrzewo, którego prostokąt ma niepuste przecięcie z okręgiem o środku w p i promieniu. Złożoność czasowa Czas wyszukiwania sąsiadów Złożoność DBSCAN Bez indeksowania O(n) O(n 2 ) R*-drzewo O(log n) O(n*log n)