Slide 27
Slide 27 text
DBSCANの定式化
27
ALGORITHM 1: Pseudocode of Original Sequential DBSCAN Algorithm
Input: DB: Database
Input: ε: Radius
Input: minPts: Density threshold
Input: dist: Distance function
Data: label: Point labels, initially unde ned
1 foreach point p in database DB do // Iterate over every poin
2 if label(p) unde ned then continue // Skip processed points
3
Neighbors N ← R (DB, dist,p,ε) // Find initial neighbors
4 if |N | < minPts then // Non-core points are noi
5
label(p) ← Noise
6 continue
7 c ← next cluster label // Start a new cluster
8
label(p) ← c
9
Seed set S ← N \ {p} // Expand neighborhood
10 foreach q in S do
11 if label(q) = Noise then label(q) ← c
12 if label(q) unde ned then continue
13
Neighbors N ← R (DB, dist,q,ε)
14 label(q) ← c
15 if |N | < minPts then continue // Core-point check
16 S ← S ∪ N
:4 E. Schubert et al.
LGORITHM 1: Pseudocode of Original Sequential DBSCAN Algorithm
Input: DB: Database
Input: ε: Radius
Input: minPts: Density threshold
Input: dist: Distance function
Data: label: Point labels, initially unde ned
foreach point p in database DB do // Iterate over every point
if label(p) unde ned then continue // Skip processed points
Neighbors N ← R (DB, dist,p,ε) // Find initial neighbors
if |N | < minPts then // Non-core points are noise
label(p) ← Noise
continue
c ← next cluster label // Start a new cluster
label(p) ← c
Seed set S ← N \ {p} // Expand neighborhood
foreach q in S do
if label(q) = Noise then label(q) ← c
if label(q) unde ned then continue
Neighbors N ← R (DB, dist,q,ε)
label(q) ← c
if |N | < minPts then continue // Core-point check
S ← S ∪ N
E. Schubert et al.: "DBSCAN Revisited, Revisited: Why and How You Should (Still) Use DBSCAN".
ACM Transactions on Database Systems. 42 (3): 19:1–19:21