【问题标题】:Intermediate analyses of train in caret package插入符号包中火车的中间分析
【发布时间】:2016-01-28 14:20:21
【问题描述】:

我正在尝试使用 R 包 caret 训练模型。我的数据集相当大(60 万行),而且需要很长时间。

到目前为止,我使用以下代码。我重复了 cv(这就是 train 的目的),但只有 2 次重复和 5 次 cv 来加快速度。对于网格,我只采用了一组相当小的值。 然而,这需要几个小时。是否有可能中断训练查看到目前为止的结果并继续?

short.train.ctrl  = trainControl(method = "repeatedcv",repeats=2,number=5)
grid <- expand.grid(shrinkage=c(0.1), n.trees=c(500),n.minobsinnode=c(1000),interaction.depth = c(7,8,9,10))
caret.train = train(target ~.,data = data[,filter],
                    method = "gbm",distribution="adaboost",
                    tuneGrid = grid,
                    metric = "accuracy",
                    trControl =short.train.ctrl
)

【问题讨论】:

  • 我认为这是不可能的。但是您尝试过并行化吗?

标签: r r-caret


【解决方案1】:

简答:没有。

稍长一些:插入符号没有中断。程序应该如何知道在哪里/何时停止?

您正在执行 2 次重复 5 次,+ 对 500 棵树进行网格搜索,并采样 600K 记录。这需要很长时间。

尝试并行运行所有内容。这应该会加快速度。当然,您可能会在您的机器上遇到内存问题。但我会首先在没有 cv (trainControl(method = "none")) 的情况下运行 gbm,以了解运行一次并从那里获取所需的时间。

【讨论】:

  • 谢谢我15小时后又上线了,到时候试试。
  • 如果你有这么多数据,你不太可能需要这么多重采样(除非你有一个主要的类不平衡)。此外,metric = "accuracy" 将产生警告(大写“A”)
猜你喜欢
  • 2015-12-04
  • 2016-01-15
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 2011-09-26
  • 2014-01-28
  • 1970-01-01
  • 2015-04-11
相关资源
最近更新 更多