我正在构建一个具有相当大的数据集的GBM模型。data.table非常适合处理数据。但是当我运行GBM模型时,它需要永远的时间才能完成。查看活动监视器(在Mac中),我可以看到进程没有使用所有内存,也没有最大限度地耗尽处理器。
由于GBM是单核的,我不能将其修改为在多核上运行,那么我有什么选择来改善我的运行时间呢?现在我使用的是4BG内存和1.7 and 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)发布于 2017-03-31 14:05:04
也许值得考虑的是使用XGBoost library。根据Github repo:
XGBoost提供并行树提升(也称为GBDT、GBM),可快速准确地解决许多数据科学问题。
我也意识到原来的问题已经很陈旧了,但也许这会对以后的人有所帮助。
发布于 2014-04-21 22:21:59
一般来说,这似乎更多地是关于R中的并行计算,而不是关于gbm的特定问题。我将从这里开始:http://cran.r-project.org/web/views/HighPerformanceComputing.html。
https://stackoverflow.com/questions/13713732
复制相似问题