我正在尝试使用R语言在一些大型数据(不是大数据)上运行一些机器学习算法。
我用来测试代码的(相对较小)的玩具数据有不到10万行和850列(包括一个有14个层次的因子列)。
我正在尝试运行一个支持向量机(包:e1071
)、一棵树(包:tree
)、一个随机森林(包:randomForest
)和一个提升树(包:gbm
)。
我使用的计算机有12个核心。当我打开活动监视器时,函数似乎随机使用核心(一次最多使用4个)。有没有一个函数可以更有效地在所有核心上分配工作?
回答:
caret
包可以完成所有这些操作,同时允许你使用多核选项。
library(doMC) registerDoMC(cores = 5)#所有后续模型都将并行运行 model <- train(y ~ ., data = training, method = "rf")