4

コメント、提案、または解決策は大歓迎です、ありがとうございます。

Rのパッケージを使用して、fpc非常に密集したデータ (範囲 -3、6 の間の 40,000 ポイントの 3 セット) の dbscan 分析を行っています。

いくつかのクラスターを見つけたので、重要なものだけをグラフ化する必要があります。問題は、約 39,000 ポイントを含む単一のクラスター (最初のクラスター) があることです。このクラスター以外のすべてのクラスターをグラフ化する必要があります。

は、このdbscan()クラスター データをすべて格納するための特別なデータ型を作成します。データ フレームのようにインデックスは作成されません (しかし、そのように表現する方法はあるのでしょうか?)。

plot()基本的な呼び出しを使用して dbscan タイプをグラフ化できます。しかし、私が言ったように、これは無関係な 39,000 ポイントをグラフ化します。

dbscantl;dr:データ型の特定のクラスターのみをグラフ化するにはどうすればよいですか?

4

3 に答える 3

6

ヘルプ ページ ( ) を見ると、?dbscan他のすべてのページと同様に、説明、使用法、引数、詳細、および値というラベルの付いたセクションに編成されています。Value セクションでは、関数dbscanが返すものについて説明します。この場合、それはいくつかのコンポーネントを持つ単純なリスト (標準の R データ型) です。

コンポーネントは単純な整数ベクトルであり、そのcluster長さはデータ内の行数に等しく、各観測がどのクラスターのメンバーであるかを示します。したがって、このベクトルを使用してデータをサブセット化し、必要なクラスターのみを抽出してから、それらのデータ ポイントのみをプロットできます。

たとえば、ヘルプ ページの最初の例を使用すると、次のようになります。

set.seed(665544)
n <- 600
x <- cbind(runif(10, 0, 10)+rnorm(n, sd=0.2), runif(10, 0, 10)+rnorm(n,
    sd=0.2))
ds <- dbscan(x, 0.2)

その結果を使用してds、クラスター 1 ~ 3 のポイントのみをプロットできます。

#Plot only clusters 1, 2 and 3
plot(x[ds$cluster %in% 1:3,])
于 2011-07-26T15:14:40.123 に答える
1

の詳細を知らなくてもdbscan、 関数 を見ることをお勧めしますsmoothScatter。ポイントが多すぎてデータを理解できない場合に、散布図の主なパターンを調べるのに非常に役立ちます。

于 2011-07-26T09:44:42.340 に答える
0

結果をプロットする最も賢明な方法はDBSCAN、半径をイプシロン値に設定したアルファ形状を使用することです。アルファ形状は凸包と密接に関連していますが、必ずしも凸包である必要はありません。アルファ半径は、許可される非凸性の量を制御します。

これは、密度が接続されたオブジェクトのクラスターモデルと非常に密接に関連しているためDBSCAN、セットの有用な解釈が得られます。

を使用しRていないので、のアルファ形状機能についてはわかりませんRalphahullグーグルのクイックチェックから、と呼ばれるパッケージがあると思われます。

于 2012-03-01T19:24:46.963 に答える