2016-12-29 1 views
0

バックミラーアルゴリズムをRで実行したいのですが、hac(階層的クラスタリング)とk-meansクラスタリングを組み合わせたものです。 そう、私はk平均の多くの中心を選択したいと思います。 たとえば、クラスタの1つに3つのシードがあります。 これは、自分のコードであるk-meansクラスタリングの多くの初期中心を選択するにはR

虹彩データのデータはここ

irists <- read.csv("irists.csv", header = TRUE) 
str(irists) 
irists.m <- as.matrix(irists[,1:4]) 
dm <- dist(irists.m, method = "euclidean") 
hc <- hclust(dm, method = "complete") 
plot(hc) 
clusterCut <- cutree(hc,3) 
clusterCut 
i1 <- iristr.m[c(1,4,12),] # one of cluster have many seed(center) 
i1 
i2 <- iristr.m[c(2,5,8),] # one of cluster have many seed(center) 
i2 
i3 <- iristr.m[c(3,6,7,9,10,11),] # one of cluster have many seed(center) 
i3 
buckshot <- kmeans(iristr.m, centers=i1,i2,i3) # realized only "i1" centers 
buckshot 
table(buckshot$cluster,iristr$Species) 
+1

、すべてが完全に投機的です。 [再現可能な例について](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を読んでから、何かを使って質問を編集してください。 – r2evans

答えて

0

をバックショット

iristr <- read.csv("iristr.CSV", header = TRUE) 
str(iristr) 
iristr.m <- as.matrix(iristr[,1:4]) 
km <- kmeans(iristr.m, centers = 3) 
km 
table(km$cluster,iristr$Species) 

虹彩をkは、手段は、アイリスデータに関数kmeansクラスタリング・アルゴリズムを適用する例です。

アイリスデータを使用して、features列1-4が変数xに割り当てられ、クラスが変数yに割り当てられます。

x = iris[,-5] 
y = iris$Species 

Kmeansアルゴリズムでは、初期クラスタ割り当てはランダムです。 Kmeansの開始割り当てはランダムであるため、nstartに10を割り当てることができます。これは、10個の異なる(ランダムな)初期中心割り当てが実行されることを意味します。クラスタ内の最小二乗和(WCSS)(クラスタ内の各点の距離関数の和をK中心に足したもの)が最終的に選択される。 パラメータ「nstart」に高い値を割り当てて、Kmeansアルゴリズムにより多くのランダムな初期中心代入を試みるよう指示することができます。

kc <- kmeans(x, centers = 3, nstart = 10) 

エラーを知るために、クラスタリング結果は、虹彩データ中の種/クラスと比較して、その後です。

table(y,kc$cluster) 

最後結果は、x軸とy軸とがく片幅とがく片の長さをプロットすることにより視覚化されます(ただし、異なる選択することができます)。あらゆる*データ*どの*実際の出力*を欠く

plot(x[c("Sepal.Length", "Sepal.Width")], col = kc$cluster) 
points(kc$centers[,c("Sepal.Length", "Sepal.Width")], col = 1:3, pch=23, cex=3) 

enter image description here

+0

ご協力いただきありがとうございます! –

関連する問題