相互到達距離
core_distance:
core_distance(a)は、ある点aの密度を測る指標です。
core_distance(a)とは、「点aの周りにどれくらい他の点が集まっているか」を示す距離です。
具体的には、点aを中心にした半径内に少なくとも「最小クラスタサイズ」(例えば5点など)に相当する数の点が含まれるような、最小の半径の距離です。
この距離が短いほど、その点aの周辺には密集した他の点が多くあり、逆に長いと周りに点が少なく疎な場所にいると判断されます。
密度の高い領域にある点ほど、core_distanceは小さくなり、疎な領域にある点ほど大きくなります。
mutual_reachability_distance:
mutual_reachability_distance(a, b)は、2つの点aとb間の「相互到達可能距離」を表します。
これは次の式で定義されます:
$ \text{mutual\_reachability\_distance}(a, b) = \max(\text{core\_distance}(a), \text{core\_distance}(b), \text{distance}(a, b))
上記の式では、core_distance(a)とcore_distance(b)のうち大きい方の距離と、aとb間の直線距離distance(a, b)の最大値が選ばれます。
こうして、密度が低い領域を超えて点aとbが互いに到達可能かどうかを評価します。
このように、HDBSCANではmutual_reachability_distanceを使ってクラスタ間のつながりを評価し、密度ベースで柔軟にクラスタを形成します。
https://gyazo.com/4bb0478e2078205e86bf6de9dbadb64b
普通の距離とちがって、密度の低い領域にある緑と赤の間の距離は緑のコア距離が長いことによって元の距離より引き伸ばされ、クラスタが接続されることを妨げる