Yolo 深圳
深セン
今すぐ参加
用語集

DBSCAN(ノイズを伴う応用における密度ベースの空間クラスタリング)

密度ベースのクラスタリングと異常検出のためのDBSCANを探求しましょう。Ultralytics と共に、データセット内の任意の形状やノイズをどのように識別するか学びます。

DBSCAN(ノイズを含む密度ベース空間クラスタリング)は、密度に基づいてデータ内の異なるグループを識別するために使用される強力な教師なし学習アルゴリズムである。球状のクラスタを仮定したり、事前に決められたグループ数を必要とする従来のクラスタリング手法とは異なり、DBSCANは低密度領域によって分離された高密度領域を特定する。 この特性により、任意の形状・サイズのクラスターを発見可能であり、 基盤構造が不明な複雑な実世界データセットの分析に 極めて有効です。本アルゴリズムの主要な利点は、 低密度領域の点をクラスターに強制的に組み込むのではなく 自動的にノイズとして分類する、 組み込み型の異常検出機能にあります。

中核概念とパラメータ

アルゴリズムは、各データ点周辺の近傍を定義し、その範囲内に収まる他の点の数をカウントすることで動作する。このプロセスを制御する2つの主要なハイパーパラメータがあり、データの特定の特性に合わせるためには慎重なハイパーパラメータ調整が必要である:

  • イプシロン (eps):このパラメータは、近傍を検索する点周辺の最大半径を指定します。 これは「到達可能」距離を定義します。
  • 最小ポイント数 (minPts):これは、密な領域または「コア」を形成するために、 エプシロン半径内に必要なデータポイントの最小数を設定します。

これらのパラメータに基づき、DBSCANはデータセット内の各点を以下の3つのタイプのいずれかに分類します:

  1. コアポイント: 少なくとも minPts 近隣の eps 半径。これらの点はクラスターの内部を形成する。
  2. 境界点: 範囲内の点 eps コアポイントの半径だが、それより少ない minPts 近隣住民自身である。これらがクラスターの境界を形成する。
  3. ノイズ点:中心点でも境界点でもない点。これらは事実上外れ値として扱われ、外れ値検出などのタスクに有用である。

DBSCANとK-Meansクラスタリングの比較

両者とも機械学習(ML)の基礎をなす手法であるが、特定のシナリオにおいてはDBSCANがK-Meansクラスタリングに対して明確な優位性を示す。 K-Meansは中心点とユークリッド距離に依存し、クラスターが凸または球状であると仮定することが多い。これにより、細長いデータや三日月形のデータでは性能が低下する可能性がある。対照的に、DBSCANの密度ベースのアプローチは、データ分布の自然な輪郭に沿うことを可能にする。

もう一つの重要な違いは初期化にあります。K-Meansではユーザーが事前にクラスター数(k)を指定する必要があり、事前知識がないと困難です。DBSCANはデータ密度から自然にクラスター数を推定します。 さらにK-Meansは外れ値に敏感です。全ての点をグループに強制的に割り当てるため、クラスター中心が歪む可能性があるからです。DBSCANは点をノイズとしてラベル付けできるため、データの異常値が有効なクラスターを汚染するのを防ぎ、予測モデリングなどの下流タスク向けにクリーンな結果を保証します。

実際のアプリケーション

DBSCANは、空間分析と頑健なノイズ処理を必要とする産業分野で広く応用されている。

  • 地理空間分析:都市計画や物流分野では、アナリストがDBSCANを用いて配送車両やライドシェアサービスのGPS座標をグループ化します。高密度の配送ゾーンを特定することで、企業はルート計画や倉庫の立地最適化できます。例えば、物流分野のAIでは配送停止地点のクラスタリングによる効率化が頻繁に実施されます。
  • 視覚ベースの異常検出:製造現場では、YOLO26などのモデルを活用した視覚検査システムがdetect 。DBSCANは製品マップ上でこれらの欠陥座標をクラスタリングできる。孤立した検出はセンサーノイズとして無視される一方、密集したクラスタは体系的な製造上の欠陥を示し、品質検査のアラートをトリガーする。

コード例:クラスタリング検出のセントロイド

コンピュータビジョンワークフローにおいて、開発者はしばしば Ultralytics オブジェクト検出器を訓練し、結果を後処理する。以下の例は、 sklearn ライブラリを使用して、検出されたオブジェクトの重心(セントロイド)をクラスタリングします。これにより、空間的に関連する検出をグループ化し、複数の検出を統合する可能性が高まります。 バウンディングボックス 同一の物体または識別可能な 物体のグループに対して。

import numpy as np
from sklearn.cluster import DBSCAN

# Simulated centroids of objects detected by YOLO26
# [x, y] coordinates representing object locations
centroids = np.array(
    [
        [100, 100],
        [102, 104],
        [101, 102],  # Cluster 1 (Dense group)
        [200, 200],
        [205, 202],  # Cluster 2 (Another group)
        [500, 500],  # Noise (Outlier)
    ]
)

# Initialize DBSCAN with a radius (eps) of 10 and min_samples of 2
# This groups points close to each other
clustering = DBSCAN(eps=10, min_samples=2).fit(centroids)

# Labels: 0, 1 are cluster IDs; -1 represents noise
print(f"Cluster Labels: {clustering.labels_}")
# Output: [ 0  0  0  1  1 -1]

深層学習との統合

DBSCANは古典的なアルゴリズムでありながら、現代の深層学習と効果的に連携する。例えば、畳み込みニューラルネットワークから抽出された高次元特徴量は、DBSCAN適用前にPCAやt-SNEといった次元削減技術を用いて削減できる。このハイブリッド手法により、単純な類似性ではなく意味的類似性に基づく複雑な画像データのクラスタリングが可能となる。(CNN)から抽出された高次元特徴量は、 PCAやt-SNEといった次元削減技術を用いて 次元を削減した後、DBSCANを適用できる。このハイブリッド手法により、単純なピクセル位置ではなく意味的類似性に基づく複雑な画像データのクラスタリングが可能となる。これは特に、ラベル付き学習データが 不足している教師なし学習シナリオにおいて有用であり、研究者が膨大な非ラベル画像アーカイブを効率的に整理するのに役立つ。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加