OPTICS extends DBSCAN to handle clusters of varying density. Rather than outputting cluster labels directly, it produces a reachability plot — valleys are clusters, peaks are boundaries and noise.
DBSCAN uses a global ε (epsilon) radius. Every core point needs at least MinPts neighbours within ε. If you have two clusters — one dense and one sparse — no single ε works: too small misses the sparse cluster, too large merges everything. OPTICS solves this by not committing to a fixed ε, instead ordering points by how reachable they are from their neighbours.
OPTICS defines two key distance measures that together capture local density:
Core distance of p (core-dist(p)): the distance from p to its MinPts-th nearest neighbour. If p has fewer than MinPts neighbours within any radius, its core distance is undefined — it is noise. Otherwise, core-dist(p) = distance to the MinPts-th closest point.
Reachability distance of q from p (reach-dist(q,p)): the maximum of core-dist(p) and the actual distance dist(p,q). Formally: reach-dist(q,p) = max(core-dist(p), dist(p,q)). This smooths out distances within a core point's neighbourhood — two points inside the same dense region have the same reachability distance (= core-dist(p)).
Intuition: reach-dist prevents artificially low distances inside a cluster. If p is a dense core point, all its close neighbours are treated as equally reachable (reach-dist = core-dist(p)). Jumping from one cluster to another causes reach-dist to spike — this spike is visible as a peak in the reachability plot.
OPTICS outputs a sorted ordering of all points along with their reachability distances. When you plot reachability distance (y-axis) vs. processing order (x-axis), the shape reveals cluster structure without committing to specific cluster labels:
To extract clusters: choose a horizontal cut-off on the reachability plot (like setting ε in DBSCAN after the fact). Points below the cut are cluster members; points above are noise. OPTICS is roughly 1.6× slower than DBSCAN but handles variable-density clusters that DBSCAN cannot.
Say the answer out loud before revealing — recalling is what makes it stick. ➜ Next: Cluster Validation
What does the core distance of a point p represent?
Why is reachability distance defined as max(core-dist(p), dist(p,q)) rather than just dist(p,q)?
How do you read clusters from an OPTICS reachability plot?
When should you choose OPTICS over DBSCAN?