5

DBSCAN を適用して Denisty Based Cluster of data を作成する vb.net または C#.net のライブラリまたはコードにアドバイスを提供するために、あなたのサポートが必要です。GPS データがあり、DBSCAN アルゴリズムを使用して滞在ポイントを見つけたいと考えています。しかし、私はアルゴリズムの技術的な部分の多くを理解していません.

4

2 に答える 2

17

アルゴリズムはwikipediaで非常によく説明されているため、探しているものかどうかはわかりません。アルゴリズムの説明または C# での翻訳 (または優れたライブラリ) が必要ですか?

一般的なクラスタリング アルゴリズムも参照できます。

アルゴリズム

イプシロンを選択し、クラスターを開始する要素の数が 4 であるとします。

距離関数、DBSCAN 関数、およびクラスター展開関数を定義する必要があります。

ウィキペディアから:

DBSCAN(D, eps, MinPts)
   C = 0
   for each unvisited point P in dataset D
      mark P as visited
      N = getNeighbors (P, eps)
      if sizeof(N) < MinPts
         mark P as NOISE
      else
         C = next cluster
         expandCluster(P, N, C, eps, MinPts)

expandCluster(P, N, C, eps, MinPts)
   add P to cluster C
   for each point P' in N 
      if P' is not visited
         mark P' as visited
         N' = getNeighbors(P', eps)
         if sizeof(N') >= MinPts
            N = N joined with N'
      if P' is not yet member of any cluster
         add P' to cluster C

ポイントのリストがあります:

最初: 点をランダムに選択します:

ポイントの数が 4 の場合、イプシロンでテストします (イプシロンは円の半径です)。はいの場合はクラスターを開始します (緑)、そうでない場合はノイズとしてマークします (赤):(未訪問の各ポイントの関数 DBS​​CAN) 矢印はすべてのポイントを示しますあなたが訪問した

ここに画像の説明を入力

次に: クラスターを展開します。クラスターが見つかったら、すべてのポイントを緑色でマークし、このクラスター内の他のポイントを確認します

ここに画像の説明を入力

注: 以前のノイズ ポイントは、クラスター内にある場合は緑に変更できます。

ここに画像の説明を入力

2つの赤い点は実際にはクラスター内にあります...

ここに画像の説明を入力

すべてのポイントを通過したら、停止します

于 2011-07-08T08:42:07.083 に答える
1

OPTICS、その拡張によりDBSCAN、イプシロンパラメータを選択するのが難しい場合があります(ただし、地理データがあるため、実際にはかなり簡単な場合があります。1kmまたは適切と思われるものに設定するだけです)。

これは、のかなり優れた強力な拡張機能ですDBSCANが、残念ながら、実装が少し難しくなります。

于 2012-02-25T14:16:22.710 に答える