机器学习功能通过在多个核心上分配工作来处理大量数据

Machine learning functions to deal with a large amount of data, by distributing work across multiple cores

我正在尝试 运行 一些机器学习算法在一些大数据(不是大数据)上使用 r。

我用来测试我的代码的(相对较小的)玩具数据只有不到 100'000 行和 850 列(包括 1 个具有 14 个级别的因子列)

我正在尝试 运行 一个 svm(包:e1071),一棵树(包:tree),一个随机森林(包:randomForest)和一棵提升树(包:gbm)。

我用的电脑是12核的。当我打开 activity 监视器时,函数似乎随机使用内核(一次最多 4 个)。 是否有一种功能可以更有效地将工作分配到所有内核?

caret 包可以完成所有这些,同时允许您使用多核选项。

library(doMC) 
registerDoMC(cores = 5)
#All subsequent models are then run in parallel 
model <- train(y ~ ., data = training, method = "rf")

这是来自 http://topepo.github.io/caret/parallel.html

的示例