From Wikipedia, the free encyclopedia
DBSCAN (ingliskeelsest Density Based Spatial Clustering of Applications with Noise) on tiheduspõhine klasterdusalgoritm, mille lõid Martin Ester, Hans-Peter Kriegel, Jörg Sander ja Xiaowei Xu aastal 1996.[1]
Algoritm jaotab andmepunktid tiheduse põhjal klastritesse, paigutades piisavalt tihedalt paiknevad andmepunktid samasse klastrisse, samas kui hõredalt paiknevaid punkte loetakse müraks. DBSCAN on üks teadusartiklites enim viidatud klasterdusalgoritme.[2]
2014. aastal sai algoritm KDD andmekaevekonverentsil SIGKDD auhinna "Test of Time".[3]
DBSCAN jagab andmepunktid kolme klassi: tuumpunktid (core points), kättesaadavad punktid (reachable points) ja müra (noise).
Kui on tuumpunkt, moodustab see klastri koos kõigi teiste punktidega, mis on kaudu kättesaadavad (olenemata sellest, kas need on tuumpunktid või mitte).[1]
Järgnev pseudokood kirjeldab originaalset DBSCAN-i implementatsiooni.[4]
DBSCAN(DB, dist, eps, minPts) { C = 0 /* Klastriloendur */ for each point P in database DB { if label(P) ≠ undefined then continue /* Varem töödeldud sisemises tsüklis */ Neighbors N = RangeQuery(DB, dist, P, eps) /* Leia naaberpunktid */ if |N| < minPts then { /* Tiheduskontroll */ label(P) = Noise /* Märgenda müraks */ continue } C = C + 1 /* Järgmine klastri märgend */ label(P) = C /* Märgenda esialgne punkt */ Seed set S = N \ {P} /* Naabrite hulk, mida töödelda */ for each point Q in S { /* Töötle igat naabrit*/ if label(Q) = Noise then label(Q) = C /* Märgenda mürapunkt klastri äärepunktiks (mitte tuumpunktiks) */ if label(Q) ≠ undefined then continue /* Varem töödeldud */ label(Q) = C /* Märgenda naaber */ Neighbors N = RangeQuery(DB, dist, Q, eps) /* Leia naaberpunktid */ if |N| ≥ minPts then { /* Tiheduskontroll */ S = S ∪ N /* Lisa uued naaberpunktid naabrite hulka, mida töödelda */ } } } }
DBSCAN külastab igat andmepunkti vähemalt korra, sõltuvalt sellest, mitmesse klastrisse seda punkti üritatakse sobitada. Samas on naaberpunktide pärimine teatud raadiuse piires, mida tehakse ainult ühe korra iga punkti jaoks, veelgi aeganõudvam operatsioon. Naaberpunktide pärimise kiirus sõltub sellest, kas punktid on indekseeritud. Juhul kui on, võib naaberpunktide päringu keerukus olla ning kogu algoritmi keerukus . Ilma mõne kiirendava indeksi struktuurita või muu optimeeritud päringuta oleks DBSCAN-i halvima juhu ajaline keerukus . Selle kiirendamiseks võib luua punktidevaheliste kauguste maatriksi suurusega (ruumilise keerukusega ), et vähendada kauguste arvutusi, kuid maatriksita lahenduse ruumiline keerukus oleks .
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.