次のシミュレーションデータについて検討してください。kのための 'nstart'を決めるにはrの意味ですか?
x1 <- c(rnorm(500000,5),rnorm(500000),rnorm(500000,5),rnorm(500000,15))
y1 <- c(rnorm(500000,5),rnorm(500000),rnorm(500000,15),rnorm(500000,5))
label <- rep(c("c1","c2","c3","c4"), each = 500000)
dset = data.frame(x1,y1,label)
with(dset,plot(x1,y1,col = label))
したがって、4つのクラスタがあり、私はアルゴリズムを意味します。一般に、20 - 25 'nstart'を使用することが適切であると言われています。しかし、大きなサンプルにどのように影響しますか?ここで私のサンプルサイズは200万です。だから、大きなサンプルのために 'nstart'を決める方法はありますか?
ここに私が提訴したコードです。私はコードにいくつかの並列処理を使用したいので、4つのコアを使用して作業を完了できるようにします。
parLapply(cl, c(25,25,25,25), fun=kmeans(x=dset[,c(1,2), centers=4, nstart=i))
kmeansコードがないので、検索していないという印象を受けます。あなたの検索戦略を含めることによって、印象が正しくないことを私に示すことができます。 –
@ 42-私はk meansコードを使用しませんでした。なぜなら、私はいくつかの並列処理も実装していたので、少し複雑になるかもしれないからです。どのように私はコードを貼り付けた。ここでは、各コアに25を割ることで100として「nstart」を使用しました。私が知りたいことは、サンプルを無作為に推測することなく、どのようにして 'nstart'を決めることができるのですか? –
おそらく関連している:http://stackoverflow.com/questions/5466323/how-exactly-does-k-means-work –