我正在使用R(和Rstudio)从rf
包中使用caret
训练模型。训练数据集是具有76k行和291个cols的数据帧。我的代码如下:
library(caret)
myTrControl <- trainControl(method = "repeatedcv",
number = 5,
repeats = 3,
p = 0.75,
classProbs = TRUE,
summaryFunction = twoClassSummary)
set.seed(64)
myRF <- train(x = myTrain[ , -c(1, 291)],
y = myTrain$TARGET,
data = myTrain,
method = "rf",
metric = "ROC",
maximize = TRUE,
trControl = myTrControl)
现在已经跑了24个小时了。有没有办法估计需要多长时间?
我阅读了caret
文档,我应该在verboseIter = TRUE
中设置trainControl
,以便了解计算时发生了什么。我想在计算&#34;时没有&#34;请求进展信息的方式,对吗?
第三个问题:trainControl
和train
中是否还有其他参数我应该经常用它来获取正在进行的计算信息?
谢谢!
答案 0 :(得分:4)
由于某些因素,在76k记录和291列之外,这需要时间。
您的设置是重复3次的5倍cv,但由于未指定网格,因此正在使用train中的tunelength选项。这有一个默认的操作3.现在发生的是你有5次cv重复3次,调整3个不同的mtry值。所以总共它将训练5 * 3 * 3 = 45次训练课程+当然还有45次在训练中进行测试。在此之后,它将根据cv之后选择的调整参数在完整训练集上进行1次最终训练集。
进一步回答你的问题: