使用中の大規模なデータセットの処理については、テクニカルレポートのサブセクション11.1でmclust
説明されています。
簡単に言うと、メソッドをより大きなデータセットに拡張するために、完全なデータセットに適用する前に、階層的クラスタリングフェーズでデータのサブサンプルを使用するための機能Mclust
とプロビジョニングが含まれています。mclustBIC
EM
一般的な例:
library(mclust)
set.seed(1)
##
## Data generation
##
N <- 5e3
df <- data.frame(x=rnorm(N)+ifelse(runif(N)>0.5,5,0), y=rnorm(N,10,5))
##
## Full set
##
system.time(res <- Mclust(df))
# > user system elapsed
# > 66.432 0.124 67.439
##
## Subset for initial stage
##
M <- 1e3
system.time(res <- Mclust(df, initialization=list(subset=sample(1:nrow(df), size=M))))
# > user system elapsed
# > 19.513 0.020 19.546
「サブセット化」バージョンは、デュアルコアで約3.5倍高速に実行されます(ただし、Mclust
シングルコアのみを使用します)。
(あなたN<-5e4
の例のように)M<-1e3
サブセットを含むバージョンが完了するまでに約3.5分かかりました。