1. ホーム
  2. r

[解決済み] シルエットプロット(R

2022-02-08 17:01:20

質問

あるデータセットがあります。 項目, 関連するクラスタ, シルエット係数. 必要であれば、このデータセットにさらに情報を追加することができる。

Rでシルエットプロットを作成したいのですが、私が出会った例では、組み込みのkmeans(または関連する)クラスタリング関数を使用して結果をプロットしているため、この問題に困っています。私はこのステップを回避し、独自のクラスタリングアルゴリズムのプロットを生成したいのですが、plot関数に正しい引数を提供することができず、不足しています。

ありがとうございました。

エディション

データセット例 https://pastebin.mozilla.org/8853427

試したのは、データセットをロードして、それを plot 関数に基づく様々な引数を使用して https://stat.ethz.ch/R-manual/R-devel/library/cluster/html/silhouette.html

解決方法は?

機能 silhouette パッケージ内 cluster はあなたのためにプロットを行うことができます。クラスタメンバーシップのベクトル(あなたが選んだアルゴリズムから生成)と非類似度行列(おそらくクラスタ生成に使用したものと同じものを使用するのが最善です)が必要なだけです。例えば

library (cluster)
library (vegan)
data(varespec)
dis = vegdist(varespec)
res = pam(dis,3) # or whatever your choice of clustering algorithm is
sil = silhouette (res$clustering,dis) # or use your cluster vector
windows() # RStudio sometimes does not display silhouette plots correctly
plot(sil)

EDIT: k-meansの場合(2乗ユークリッド距離を使用)。

library (vegan)
library (cluster)
data(varespec)
dis = dist(varespec)^2
res = kmeans(varespec,3)
sil = silhouette (res$cluster, dis)
windows() 
plot(sil)