は、使い方の例である:(あなたよりも小さい - 30万行と30列)
いくつかのデータ
z <- rbind(replicate(30, rnorm(1e5, 2)),
replicate(30, rnorm(1e5, -1)),
replicate(30, rnorm(1e5, 5)))
library(ClusterR)
km_model <- MiniBatchKmeans(z, clusters = 3, batch_size = 20, num_init = 5, max_iters = 100,
init_fraction = 0.2, initializer = 'kmeans++', early_stop_iter = 10,
verbose = F)
pred <- predict_MBatchKMeans(z, km_model$centroids)
オブジェクトpred
には、関連するクラスタが含まれています。
table(pred)
pred
1 2 3
100000 100000 100000
私はそれが完璧な分離だと思います。機能が速い場合は、バッチサイズと開始回数を増やすことをお勧めします。
スピード:
library(microbenchmark)
microbenchmark(km_model <- MiniBatchKmeans(z, clusters = 3, batch_size = 20, num_init = 5, max_iters = 100,
init_fraction = 0.2, initializer = 'kmeans++', early_stop_iter = 10,
verbose = F))
Unit: seconds
expr
km_model <- MiniBatchKmeans(z, clusters = 3, batch_size = 20, num_init = 5, max_iters = 100, init_fraction = 0.2, initializer = "kmeans++", early_stop_iter = 10, verbose = F)
min lq mean median uq max neval
3.338328 3.366573 3.473403 3.444095 3.518813 4.176116 100
はあなたの試してみました[ClusterR](https://cran.r-project.org/web/packages/ClusterR/vignettes/the_clusterR_package.html)をお持ちですか? – missuse
@missuseはクラスタRを試しましたが、特定のデータとそれが属するクラスタからrownameを私の知る限り出力しません。それはクラスターRの可能性ですか? –