web-dev-qa-db-ja.com

DBSCAN(R)のepsとminptsを選択しますか?

私はかなり長い間この質問の答えを探していたので、誰かが私を助けてくれることを望んでいます。 Rのfpcライブラリのdbscanを使用しています。たとえば、USArrestsデータセットを見て、次のようにdbscanを使用しています。

library(fpc)
ds <- dbscan(USArrests,eps=20)

この場合、epsの選択は試行錯誤によるものでした。しかし、最適なeps/minptsの選択を自動化するために利用可能な関数またはコードがあるかどうか疑問に思っています。一部の書籍では、k番目にソートされた距離を最も近い隣人までプロットすることを推奨しています。つまり、x軸は「k番目の最近傍までの距離に従ってソートされたポイント」を表し、y軸は「k番目の最近傍距離」を表します。

このタイプのプロットは、epsおよびminptsに適切な値を選択するのに役立ちます。誰かが私を助けてくれるのに十分な情報を提供したことを願っています。私が意図したものの写真を投稿したかったのですが、私はまだ初心者なので、まだ画像を投稿できません。

27
Belinda Chiera

MinPtsを選択する一般的な方法はありません。 yoの検索内容によって異なります。 minPtsが低いということは、ノイズからより多くのクラスターを構築することを意味するため、小さすぎないように選択してください。

イプシロンには、さまざまな側面があります。 this data set and this minPts and this distance function and this normalization 。 knn距離ヒストグラムを実行して、そこに「膝」を選択することもできますが、表示されるものは1つも複数もありません。

OPTICSは、イプシロンパラメーターを必要としないDBSCANの後継バージョンです(インデックスサポートのパフォーマンス上の理由を除き、Wikipediaを参照)。それははるかに優れていますが、高度なデータ構造(理想的には、高速化のためのデータインデックスツリーと優先キューの更新可能ヒープ)を必要とするため、Rに実装するのは苦痛だと思います。マトリックス演算に関するすべてです。

単純に、OPTICSはEpsilonのすべての値を同時に実行し、結果をクラスター階層に配置することを想像できます。

ただし、最初に確認する必要があるのは、使用するクラスタリングアルゴリズムとはほとんど関係なく、有用な距離関数と適切なデータ正規化を確認することです。距離が縮退している場合、noクラスタリングアルゴリズムが機能します。

25
Anony-Mousse

DBSCANのイプシロンパラメーターを管理する一般的で一般的な方法の1つは、データセットのk距離プロットを計算することです。基本的に、各データポイントのk最近傍(k-NN)を計算して、異なるkのデータの密度分布を理解します。 KNNはノンパラメトリックな方法であるため便利です。 (データに強く依存する)minPTSを選択したら、kをその値に修正します。次に、イプシロンとして、低勾配のk距離プロット(固定kの場合)の面積に対応するk距離を使用します。

14
marcorossi

MinPts

Anony-Mousse で説明したように、 'minPtsが低いということは、ノイズからより多くのクラスターを構築することを意味するため、小さすぎないように選択してください。'

minPtsは、データをよく理解しているドメインエキスパートが設定するのが最適です。残念なことに、多くの場合、特にデータが正規化された後は、ドメインの知識がわかりません。ヒューリスティックなアプローチの1つはuseln(n)です。ここで、nはクラスター化されるポイントの総数。

イプシロン

判断する方法はいくつかあります。

1)k距離プロット

MinPts = kのクラスタリングでは、コアパイントと境界ポイントのk距離が特定の範囲内にあることが期待されますが、ノイズポイントはk距離がはるかに大きいため、kneek-距離プロットのポイント。ただし、明らかな膝がない場合や、複数の膝がある場合があるため、判断が難しい場合があります 

2) [〜#〜] optics [〜#〜] のようなDBSCAN拡張

OPTICSは階層クラスターを生成し、視覚検査により階層クラスターから重要なフラットクラスターを抽出できます。OPTICS実装はPython module pyclustering で利用可能です。 DBSCANとOPTICSは、人間の介入が不要なフラットクラスターを自動的に抽出する方法も提案しました。詳細については このペーパー を参照してください。

3)感度分析

基本的に、より真に規則的なポイント(他のポイントに類似するポイント)をクラスター化できる半径を選択すると同時に、より多くのノイズ(異常ポイント)を検出します。通常のポイントの割合を描画できます(ポイントはクラスターに属します)VS。 epsilon分析では、異なるイプシロン値をx軸として設定し、対応する通常のポイントの割合をy軸として設定します。通常のポイント値の割合がイプシロン値に対してより敏感であり、上限イプシロン値を最適なパラメーターとして選択するセグメント。

11
Shawn TIAN

パラメーターの選択の詳細については、p。 11:

Schubert、E.、Sander、J.、Ester、M.、Kriegel、H. P.、&Xu、X.(2017)。 DBSCANの再検討、再検討:DBSCANを(まだ)使用する理由と方法。データベースシステム(TODS)上のACMトランザクション、42(3)、19。

  • 2次元データの場合:デフォルト値minPts = 4を使用します(Ester et al。、1996)
  • 2次元以上の場合:minPts = 2 * dim(Sander et al。、1998)

選択するMinPtsがわかったら、Epsilonを決定できます。

  • K = minPtsでk距離をプロットします(Ester et al。、1996)
  • グラフで「エルボー」を見つけます-> k-距離値はイプシロン値です。
2

このWebページのセクション5を参照してください: http://www.sthda.com/english/wiki/dbscan-density-based-clustering-for-discovering-clusters-in-large-datasets- with-noise-unsupervised-machine-learning

イプシロンを見つける方法の詳細な手順を示します。 MinPts ...それほどではありません。

0
zthomas.nc