Caret train rf模型 - 执行大数据需要多长时间?

时间:2018-04-23 00:19:46

标签: r machine-learning random-forest r-caret

我的数据有500000个观察值和7个变量。我将数据分成80%作为训练数据和20%的测试数据。我用插入符号来训练模型。代码在下面。我开始了,它花了这么多时间,最终我不得不停止它。只是想知道我的模型有什么问题,或者大数据通常需要很长时间吗?有什么建议吗?

library(caret)
set.seed(130000000)

classifier_rf <- train(y=train$active,
                       x=train[3:5],
                       data=train,
                       method='rf',
                       trControl=trainControl(method='repeatedcv',
                                              number=10,
                                              repeats=10))

3 个答案:

答案 0 :(得分:0)

500,000样本对于您的计算机来说可能很多,具体取决于它的强大程度。但是,您已指定重复交叉折叠验证,这是一个耗时的过程。

当您考虑单交叉折叠验证时,模型经过K次训练并在K-1保持部分进行测试。在提供的上下文中,您的K为10,并且您将重复10次,因此这是100个模型。

这100个模型必须经过培训然后进行测试,我会在进行交叉折叠验证之前在单个培训/测试示例上测试您的问题,它还有助于估计预期的运行时间。

另外,set.seed()不需要如此大的数字,任何简单的较小数字通常就足够了。

您还指定了xydata参数,我相信您只需在使用公式定义时指定data训练。

答案 1 :(得分:0)

您最好的选择可能是尝试并行化该过程。要获取有用的资源,请点击here

答案 2 :(得分:0)

据我了解,caret仍在下面使用RandomForest函数,以及交叉验证/网格搜索部分,因此需要一段时间。

特别是对于随机森林模型,我通常只使用ranger包,它的速度要快得多。您可以找到他们的手册here