DBSCANクラスタリング
密度ベースのクラスタリングとノイズ検出. 密度に基づいてデータポイントをグループ化し、クラスター数を自動検出し、どのクラスターにも属さないノイズ/外れ値ポイントを識別します。. DBSCANは密集したデータポイントをグループ化し、低密度領域のポイントを外れ値(ノイズ)として標識します。K-Meansと異なりクラスタ数の…
密度に基づいてデータポイントをグループ化し、クラスター数を自動検出し、どのクラスターにも属さないノイズ/外れ値ポイントを識別します。
DBSCANクラスタリングとは?
DBSCANは密集したデータポイントをグループ化し、低密度領域のポイントを外れ値(ノイズ)として標識します。K-Meansと異なりクラスタ数の事前指定が不要で、任意形状のクラスタを発見できます。
2つのパラメータ:イプシロン(eps)—隣接と見なす最大距離、最小サンプル(minSamples)—密集領域の形成に必要な最小ポイント数。コア、ボーダー、ノイズポイントに分類されます。
DBSCANは様々な密度のクラスタ、非凸形状、大量のノイズを含むデータに効果的です。ただし密度が大きく異なるクラスタには苦戦します。
Formula: コア点: |N_eps(p)| ≥ minSamples 境界点: |N_eps(p)| < minSamples だがコア点から eps 以内 ノイズ: コア点でも境界点でもない N_eps(p) = {q : dist(p,q) ≤ eps}
計算例
ポイント:(1,1), (1.1,1.2), (0.9,0.8), (5,5), (5.1,5.2), (4.9,4.8), (10,10)。eps=1.0, minSamples=2。クラスタ1:3点、クラスタ2:3点、ノイズ:(10,10)。
この計算機を使うタイミング
- 外れ値をクラスターとは別のノイズ点として明示的に識別する必要がある異常検知を行うデータサイエンティスト
- クラスター形状が不規則でグループ数が未知の地理データ(例: 犯罪多発地点、配送先)をクラスタリングする空間アナリスト
- (K-Meansのように)すべての点を無理にクラスターへ押し込むと分析が歪んでしまう、自然なノイズを含むデータを分析する研究者
- K-Meansでは検出できない非球形のパターン(リング状、三日月状、細長い形状)を成すセンサー測定値をグルーピングするエンジニア
よくある間違い
- epsilonを大きくしすぎる — 別個のクラスターが1つに統合されてしまいます。k距離プロットを使い、曲線の屈曲点(ニー)で適切なeps値を見つけてください
- epsilonを小さくしすぎる — ほとんどの点がノイズに分類され、クラスターがほとんど、あるいはまったく見つからなくなります。データの大半がノイズと判定される場合、epsはおそらく小さすぎます
- クラスタリングの前に特徴量をスケーリングしない — DBSCANはユークリッド距離を使うため、スケールの大きい特徴量が距離計算を支配します。まずすべての特徴量を標準化してください
- 密度が大きく異なるクラスターにDBSCANを使う — 単一のeps値で高密度と低密度のクラスターを同時に扱うことはできません。代わりにHDBSCANやOPTICSを検討してください
結果の解釈方法
- ノイズ点(外れ値としてラベル付けされた点)は低密度領域にあるデータ点です — 真の異常、測定誤差、またはクラスター間の遷移的なデータを表している可能性があります
- クラスター数は事前に指定するのではなく、データとパラメータによって自動的に決まります — これがK-Meansに対する主要な利点です
- アルゴリズムがクラスターを1つしか見つけない、またはすべてをノイズに分類する場合は、epsとminSamplesを調整してください — パラメータはデータの密度構造に合わせたチューニングが必要です
関連規格・参考文献
- Ester, Kriegel, Sander & Xu (1996), 'A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise', Proc. KDD-96 — DBSCANの原典論文
- Schubert, Sander, Ester, Kriegel & Xu (2017), 'DBSCAN Revisited, Revisited', ACM Transactions on Database Systems — パラメータ選択とk距離ヒューリスティックに関する現代的な指針
よくある質問
epsとminSamplesの選び方は?
minSamples:一般に2×次元数。eps:k近傍距離曲線の「膝」から選択します。
K-MeansではなくDBSCANを使うべき場合は?
クラスタ数が不明、不規則な形状、大量のノイズがある場合。K-Meansは球形クラスタに対してより高速に動作します。