首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梯度增强决策树(GBDT)或多重加性回归树(MART):计算梯度/伪响应

梯度增强决策树(GBDT)或多重加性回归树(MART):计算梯度/伪响应
EN

Stack Overflow用户
提问于 2013-04-17 06:51:45
回答 2查看 2.2K关注 0票数 1

我从(http://www-stat.stanford.edu/~jhf/ftp/trebst.pdf)算法5实现MART,我的算法对较少的数据(3000个训练数据文件,22个特征)和J=5,10,20 (叶节点数)和T= 10,20“工作”。它给了我很好的结果(训练的R-精度是0.30到0.5 ),但当我试图运行一些大的训练数据(70K记录)时,它会给我带来运行时下溢错误-我认为应该是-只是不知道如何解决这个问题?

下溢错误出现在这里,计算成本(或伪响应)的梯度:

这里的y_i是{1,-1}个标签,所以如果我试一下: 2/exp(5000)它的分母溢出!

我只是想知道我是否可以“归一化”这个或“阈值”这个,但是我使用这个伪响应来计算"label“(pdf中的gamma ),然后用这些gamma来计算模型分数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 00:17:19

@rrenaud很接近,我所做的是:如果exp_arg > 16或exp_arg < -16,让我的exp_arg =16(或-16),它就能工作!(对于1.2 too的数据和700个特性也是如此!)

票数 0
EN

Stack Overflow用户

发布于 2013-04-17 22:52:36

您可以使用if对该表达式进行包装。

代码语言:javascript
复制
exp_arg = 2 * y_i * F_m_minus_1
if (exp_arg > 700) {
  // assume exp() overflow, result of exp() ~= inf, 2 / inf = 0
  y_tilda_i = 0
else // standard calculation

我没有特别实现梯度提升,但我需要在一些神经网络计算中实现这一技巧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16048561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档