私は250万行(および7または8関連する列)の大きなデータフレームを持っており、NBClust
Rパッケージを使用して、データのクラスタ数を把握しようとしています持っている。私はこのために190万行しか使用していません。その多くの行はまだNBClustと私のPCのためにあまりにも多いので、私はdplyr::sample_frac
とデータフレームのランダムなサブセクションを取ると思っていた。データの0.1%が1900行で、私はその8回(私のCPUコアごとに2つ)のNBClustをやると思っていました。私の問題は、foreach内のように思われる結果に基づいて、ランダムにサンプリングされた1900行が毎回同じであるということです。私は明らかに彼らが毎回異なっていることを望んでいます。ここに私のコードです:私は最初の結果を見た後にNBClustのランダムRプログラミング
cl <- makeCluster(NumberOfCluster)
registerDoSNOW(cl)
noenergy.scaled.results <- foreach(i = 1:8, .combine = "rbind", .packages = c("dplyr", "NbClust")) %dopar% {
set.seed(i)
noenergy.scaled.sampled <- sample_frac(clustering69.noenergy.scaled, 0.001)
noenergy.scaled.res<-NbClust(noenergy.scaled.sampled, distance = "euclidean", min.nc=2, max.nc=8,
method = "kmeans", index = "all")
return(noenergy.scaled.res)
}
stopCluster(cl)
bestpartition.noenergy.scaled <- data.frame(noenergy.scaled.results[,4])
summary(bestpartition.noenergy.scaled) #3 result for 3 cluster, 5 result for 2 cluster
は私がset.seed(I)の部分を書きましたが、それは何の効果も持っていなかったように思えます。
(私もしたいスケーリングなし、プラス余分な(エネルギー関連)コラムでこれを試してみてください、私は2つの異なるコンバーチブルないユニットで、その列を持っているので、変数名は、そのようなものです。)