mql*_*ner 4 parallel-processing r random-forest r-caret
我想在大型数据集上运行随机森林:100k*400.当我使用随机森林时需要花费很多时间.我可以使用插入包中的parRF方法来减少运行时间吗?什么是正确的语法?这是一个示例数据帧:
dat <- read.table(text = " TargetVar Var1 Var2 Var3
0 0 0 7
0 0 1 1
0 1 0 3
0 1 1 7
1 0 0 5
1 0 1 1
1 1 0 0
1 1 1 6
0 0 0 8
0 0 1 5
1 1 1 4
0 0 1 2
1 0 0 9
1 1 1 2 ", header = TRUE)
Run Code Online (Sandbox Code Playgroud)
我试过了:
library('caret')
m<-randomForest(TargetVar ~ Var1 + Var2 + Var3, data = dat, ntree=100, importance=TRUE, method='parRF')
Run Code Online (Sandbox Code Playgroud)
但我没有看到太多差异.有任何想法吗?
您没有看到差异的原因是您没有使用该caret包.您可以使用该library()命令将其加载到您的环境中,但随后运行的randomForest()不使用插入符号.
我建议首先创建一个仅包含输入变量的数据框(或data.table),以及一个包含结果的向量.我指的是最近更新的插入符号文档.
x <- data.frame(dat$Var1, dat$Var2, dat$Var3)
y <- dat$TargetVar
Run Code Online (Sandbox Code Playgroud)
接下来,验证您是否有parRF可用的方法.直到我将我的插入包更新到最新版本(6.0-29)之后我才这样做.
library("randomForest")
library("caret")
names(getModelInfo())
Run Code Online (Sandbox Code Playgroud)
你应该parRF在输出中看到.现在您已准备好创建训练模型.
library(foreach)
rfParam <- expand.grid(ntree=100, importance=TRUE)
m <- train(x, y, method="parRF", tuneGrid=rfParam)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5513 次 |
| 最近记录: |