k-meansクラスター分析の結果のきれいなプロットを作成する方法は?


77

Rを使用してK-meansクラスタリングを実行しています。14個の変数を使用してK-meansを実行しています

  • K-meansの結果をプロットする美しい方法は何ですか?
  • 既存の実装はありますか?
  • 14個の変数があると、結果のプロットが複雑になりますか?

GGclusterと呼ばれるクールなものを見つけましたが、まだ開発中です。また、サモンマッピングについても読みましたが、あまり理解していませんでした。これは良い選択肢でしょうか?


1
何らかの理由でこの非常に実用的な問題の現在の解決策に関心がある場合は、既存の返信にコメントを追加するか、より多くのコンテキストで投稿を更新してください。ここでは、40,000件のケースを扱うことが重要な情報です。
chl

11個のクラスと10個の変数を使用する別の例は、統計学習要素の 118ページにあります。ひどく有益ではありません。
デニス

ライブラリ(アニメーション)kmeans.ani(yourData、センター= 2)
Kartheek Palepu

回答:


27

次元数が14の場合、ペアプロットから多くの実用的な情報が得られる可能性は低いため、このためにシルエットプロットをプッシュします。

library(cluster)
library(HSAUR)
data(pottery)
km    <- kmeans(pottery,3)
dissE <- daisy(pottery) 
dE2   <- dissE^2
sk2   <- silhouette(km$cl, dE2)
plot(sk2)

このアプローチは非常に引用されており、よく知られています(説明についてはこちらを参照)。

Rousseeuw、PJ(1987)Silhouettes:クラスター分析の解釈と検証に対するグラフィカルな支援J.計算 適用 数学。20、53-65。


私はこれが好き。さらに詳しく見ていきます。ありがとうございました。
-JEquihua

@ user603:回答の説明の要旨を教えていただけますか?2.5年前に提供したリンクは失われました。記事はまだそこにありますが、このテクニックの簡単な紹介がいいでしょう。
スティーン

リンクはペーパーを指していました(実際には暗くなったゲートなしのアクセスポイントでした)。
user603

-私はこのsilhoette(?左側にclusplotあり、右側にsilhoetteプロットである、これが期待されている)との奇妙なプロットだi.imgur.com/ZIpPlhT.png
vipin8169

56

ここであなたを助けることができる例:

library(cluster)
library(fpc)

data(iris)
dat <- iris[, -5] # without known classification 
# Kmeans clustre analysis
clus <- kmeans(dat, centers=3)
# Fig 01
plotcluster(dat, clus$cluster)

# More complex
clusplot(dat, clus$cluster, color=TRUE, shade=TRUE, 
         labels=2, lines=0)

# Fig 03
with(iris, pairs(dat, col=c(1:3)[clus$cluster])) 

後者のプロットに基づいて、どの初期変数をプロットするかを決定できます。14個の変数は巨大な場合があるため、前に主成分分析(PCA)を試してから、PCAの最初の2つまたは3つのコンポーネントを使用してクラスター分析を実行できます。


1
dc1とdc2を解釈する方法がわかりませんか?正しい方向を教えていただけますか?
UD1989 14

1
@Upasana Datta:2つのコンポーネントは、データに主成分分析(PCA、関数princomp)を適用した結果です。これらは、観測値のほとんどの変動性を説明する入力変数の線形結合です。
rakensi

こんにちは、2番目のプロットで楕円がどのように計算されるのか困惑していますか?「これらの2つのコンポーネントは、点の変動の95.81%を説明します」をどのように決定しますか?
mynameisJEFF

@mynameisJEFF潜在的/標準的な変数、固有値などを使用していると仮定します。ドキュメントを確認できますが、通常、そのようにラベル付けされたバイプロットを見ると、それが意味します。データの変動の95.81%が、データがプロットされる2つの潜在変数によって説明されると言っています。更新-私はそれをグーグルで検索しただけで、実際、主成分を使用しています。
ハックR

ここで「with」が必要なのはなぜですか?pairs関数をそのままにしておく方が効率的です。
アナトリーステパニウク16

4

私が知っている最も簡単な方法は次のとおりです。

X <- data.frame(c1=c(0,1,2,4,5,4,6,7),c2=c(0,1,2,3,3,4,5,5))
km <- kmeans(X, center=2)
plot(X,col=km$cluster)
points(km$center,col=1:2,pch=8,cex=1)

このようにして、異なる色とその重心を使用して各クラスターのポイントを描画できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.