DBSCAN

DBSCAN
Ilustracja
Przykład klastrów uzyskanych za pomocą algorytmu DBSCAN
Rodzaj

klasteryzacja

Złożoność
Czasowa

(średnia)

DBSCAN (od ang. Density-Based Spatial Clustering of Applications with Noise) – algorytm grupowania danych (klasteryzacji) oparty na gęstości[1][2]. Jego pierwsza wersja została opublikowana w 1996 roku przez Martina Estera wraz ze współautorami[3][4].

Klastrami utworzonymi za pomocą tego algorytmu są obszary o dużym zagęszczeniu obiektów w porównaniu z otoczeniem, co odpowiada intuicyjnemu rozumieniu grupowania[5]. Algorytm umożliwia znalezienie klastra o dowolnym kształcie, w tym klastra otaczającego inny klaster[2]. W odróżnieniu od algorytmu k-średnich, DBSCAN nie wymaga określenia liczby klastrów[2]. Średnia złożoność czasowa algorytmu wynosi [3].

Opis

Ilustracja działania algorytmu dla Czerwone punkty (w tym punkt A) są punktami centralnymi, żółte (B i C) są punktami granicznymi, niebieski (N) jest szumem

Algorytm przyjmuje dwa parametry wejściowe (należy je dobrać pod kątem konkretnego zagadnienia)[1][5]:

  • – maksymalny promień sąsiedztwa,
  • – minimalna liczba obiektów wchodzących w skład klastra.

Algorytm dokonuje grupowania zbioru w następujący sposób[1][3][5]:

  1. Wylosuj ze zbioru danych punkt
  2. Znajdź wszystkie punkty ze zbioru których odległość od punktu jest mniejsza bądź równa
  3. Jeśli liczba punktów znalezionych w punkcie 2 jest większa bądź równa punkt jest punktem centralnym i można na jego podstawie zbudować nowy klaster. W takim wypadku:
    1. Utwórz nowy klaster zawierający punkt i wszystkie punkty znalezione w punkcie 2.
    2. Dołączaj do klastra kolejne punkty, o ile są osiągalne gęstościowo z punktów już znajdujących się w klastrze, to znaczy:
      1. jeśli odległość punktu od dowolnego punktu centralnego w klastrze jest mniejsza bądź równa a w odległości mniejszej bądź równej od punktu znajduje się co najmniej punktów, punkt jest także punktem centralnym – do klastra należy ten punkt oraz wszystkie inne znajdujące się w promieniu
      2. jeśli odległość punktu od dowolnego punktu centralnego w klastrze jest mniejsza bądź równa ale w odległości mniejszej bądź równej od punktu znajduje mniej niż punktów, punkt jest punktem granicznym – do klastra należy ten punkt, ale już niekoniecznie inne punkty znajdujące się w promieniu
  4. Wybierz kolejny punkt (pomijając punkty znajdujące się już wewnątrz klastrów i punkty sprawdzone w punkcie 3) i wróć do punktu 3. Jeśli nie ma już nieprzejrzanych punktów, zakończ działanie algorytmu. Punkty niezaklasyfikowane do żadnego z klastrów traktowane są jako szum.

W zależności od kolejności przetwarzania punktów, przynależność punktów granicznych do klastrów może się zmienić. Pod tym względem algorytm jest więc niedeterministyczny[2].

Implementacje

Implementacja algorytmu jest dostępna między innymi w bibliotece scikit-learn języka Python[6] oraz w bibliotece fpc w języku R[7].

Przypisy

  1. a b c Artur Starczewski, Piotr Goetzen, Meng Joo Er, A New Method for Automatic Determining of the DBSCAN Parameters, „Journal of Artificial Intelligence and Soft Computing Research”, 10 (3), 2020, s. 209–221, DOI10.2478/jaiscr-2020-0014 [dostęp 2024-01-08] (ang.).
  2. a b c d Karolina Sala, Przegląd technik grupowania danych i obszary zastosowań, „Społeczeństwo i Edukacja. Międzynarodowe Studia Humanistyczne”, 2 (25), Instytut Studiów Międzynarodowych i Edukacji Humanum, 2017, s. 141–145 [dostęp 2024-01-08].
  3. a b c Martin Ester, Hans-Peter Kriegel, Jörg Sander, Xiaowei Xu, A density-based algorithm for discovering clusters in large spatial databases with noise, „Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96)”, AAAI Press, 1996, s. 226–231.
  4. Saif Ur Rehman, Sohail Asghar, Simon Fong, S. Sarasvady, DBSCAN: Past, present and future, IEEE, luty 2014, s. 232–238, DOI10.1109/ICADIWT.2014.6814687, ISBN 978-1-4799-2259-8.
  5. a b c Agnieszka Nowak-Brzezińska, Tomasz Xięski, Grupowanie danych złożonych, „Studia Informatica”, 32 (2A), Gliwice: Wydawnictwo Politechniki Śląskiej, 2011, s. 391–402 [dostęp 2024-01-08].
  6. sklearn.cluster.DBSCAN [online], scikit-learn [dostęp 2024-01-08] (ang.).
  7. dbscan function - RDocumentation [online], www.rdocumentation.org [dostęp 2024-08-19].

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.