1

我正在构建一个具有相当大数据集的 GBM 模型。data.table非常适合处理数据。但是当我运行 GBM 模型时,它需要很长时间才能完成。查看活动监视器(在 Mac 中),我可以看到该进程并没有用完所有内存,也没有最大化处理器。

由于 GBM 是单核的,我无法修改它以在多核上运行,我有哪些选择来提高我的运行时间?现在我正在使用 4BG RAM 和 1.7GHz i5 的 Macbook Air。

我不确定以下哪个选项最有助于提高性能: (i) 购买具有更大内存的计算机;(ii) 获得更强大的芯片 (i7),或 (iii) 使用 Amazon AWS 并在那里安装 R。这些将如何帮助?

根据 Brandson 的要求添加示例代码:

library(gbm) 

GBM_NTREES = 100 
GBM_SHRINKAGE = 0.05 
GBM_DEPTH = 4 
GBM_MINOBS = 50

GBM_model <- gbm.fit(
  x = data[,-target] ,
  y = data[,target] ,
  #var.monotone = TRUE, #NN added
  distribution = "gaussian"
  ,n.trees = GBM_NTREES ,
  shrinkage = GBM_SHRINKAGE ,
  interaction.depth = GBM_DEPTH ,
  n.minobsinnode = GBM_MINOBS ,
  verbose = TRUE)
4

2 回答 2

1

也许值得考虑的是使用XGBoost 库。根据 Github 回购:

“XGBoost 提供了一种并行树提升(也称为 GBDT、GBM),可以快速准确地解决许多数据科学问题。”

我也意识到最初的问题已经很老了,但也许这会对以后的人有所帮助。

于 2017-03-31T06:05:03.707 回答
0

这似乎更多地是关于 R 中的并行计算,而不是关于 gbm 的特定问题。我将从这里开始:http: //cran.r-project.org/web/views/HighPerformanceComputing.html

于 2014-04-21T14:21:58.800 回答