我的数据有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))
答案 0 :(得分:0)
500,000
样本对于您的计算机来说可能很多,具体取决于它的强大程度。但是,您已指定重复交叉折叠验证,这是一个耗时的过程。
当您考虑单交叉折叠验证时,模型经过K次训练并在K-1保持部分进行测试。在提供的上下文中,您的K为10
,并且您将重复10次,因此这是100个模型。
这100个模型必须经过培训然后进行测试,我会在进行交叉折叠验证之前在单个培训/测试示例上测试您的问题,它还有助于估计预期的运行时间。
另外,set.seed()
不需要如此大的数字,任何简单的较小数字通常就足够了。
您还指定了x
,y
和data
参数,我相信您只需在使用公式定义时指定data
训练。
答案 1 :(得分:0)
您最好的选择可能是尝试并行化该过程。要获取有用的资源,请点击here。
答案 2 :(得分:0)
据我了解,caret
仍在下面使用RandomForest
函数,以及交叉验证/网格搜索部分,因此需要一段时间。
特别是对于随机森林模型,我通常只使用ranger
包,它的速度要快得多。您可以找到他们的手册here。