このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
dbscan
Density-based spatial clustering of applications with noise (DBSCAN)
構文
説明
例
入力引数
出力引数
詳細
ヒント
多数の
epsilon
の値に対して反復処理を行うときの速度を向上させるには、dbscan
に対する入力としてD
を渡すことを検討してください。このようにすると、すべての反復で距離を計算する必要がなくなります。pdist2
を使用してD
を事前計算する場合、pdist2
の名前と値のペアの引数'Smallest'
または'Largest'
によるD
の列の選択または並べ替えは行わないでください。dbscan
はD
が正方行列であると想定するので、n 個未満の距離を選択するとエラーが発生します。D
の各列で距離を並べ替えると、D
の解釈が不十分になり、関数dbscan
で使用したときに無意味な結果が生成される可能性があります。効率的にメモリを使用するため、
D
が大きい場合はD
を数値行列ではなく logical 行列としてdbscan
に渡すことを検討してください。既定では、MATLAB® は数値行列の各値の格納に 8 バイト (64 ビット) を使用しますが、logical 行列の各値の格納には 1 バイト (8 ビット) を使用します。minpts
の値を選択するには、入力データの次元数に 1 を加算した値以上の値を検討してください [1]。たとえば、n 行 p 列の行列X
の場合、p + 1 以上の値を'minpts'
に設定します。epsilon
の値を選択する方法として可能なものの 1 つは、X
について k 距離グラフを生成することです。X
の各点について、k 番目に近い点に対する距離を求め、この距離に対して並べ替えた点をプロットします。一般に、このグラフには、折れ曲がる部分があります。点が外れ値 (ノイズ) 領域に近づき始める領域なので、折れ曲がる部分に対応する距離は一般にepsilon
に適した選択肢です [1]。
アルゴリズム
DBSCAN は、データ内のクラスターとノイズを検出するように設計されている、密度に基づくクラスタリング アルゴリズムです。このアルゴリズムでは、コア点、境界点およびノイズ点という 3 種類の点を識別します [1]。関数
dbscan
は、指定されたepsilon
およびminpts
の値に対して、以下のようにアルゴリズムを実装します。入力データセット
X
から、ラベルが付いていない 1 番目の観測値 x1 を現在の点として選択し、1 番目のクラスター ラベル C を 1 に初期化します。現在の点のイプシロン近傍
epsilon
内にある点の集合を求めます。これらの点は近傍点です。近傍点数が
minpts
より小さい場合、現在の点にノイズ点 (つまり外れ値) のラベルを付けます。ステップ 4 に進みます。メモ
X
内の他の点のepsilon
とminpts
によって設定される制約を後にノイズ点が満たす場合、dbscan
はノイズ点をクラスターに再割り当てする可能性があります。このように点を再割り当てする処理は、クラスターの境界点に対して発生します。それ以外の場合、クラスター C に属するコア点のラベルを現在の点に付けます。
現在のクラスター C に属しているというラベルを付けられる新しい近傍点が見つからなくなるまで、各近傍点 (新しい現在の点) に対してステップ 2 を繰り返します。
X
内でラベルが付いていない次の点を現在の点として選択し、クラスター カウントに 1 を加算します。X
内のすべての点にラベルが付けられるまで、ステップ 2 ~ 4 を繰り返します。
2 つのクラスターの密度が異なっており、互いに近い場合、つまり、2 つの境界点の距離 (各クラスターからの距離) が
epsilon
未満である場合、dbscan
は 2 つのクラスターを 1 つに結合する可能性があります。すべての有効なクラスターに
minpts
個以上の観測値が含まれるとは限りません。たとえば、dbscan
は、互いに近い 2 つのクラスターに属する境界点を識別する可能性があります。このような場合、最初に検出されたクラスターに境界点が割り当てられます。この結果、2 番目のクラスターは有効なクラスターのままですが、観測値の個数がminpts
より少なくなる可能性があります。
参照
[1] Ester, M., H.-P. Kriegel, J. Sander, and X. Xiaowei. “A density-based algorithm for discovering clusters in large spatial databases with noise.” In Proceedings of the Second International Conference on Knowledge Discovery in Databases and Data Mining, 226-231. Portland, OR: AAAI Press, 1996.
拡張機能
バージョン履歴
R2019a で導入