我从(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来计算模型分数。
发布于 2013-05-03 00:17:19
@rrenaud很接近,我所做的是:如果exp_arg > 16或exp_arg < -16,让我的exp_arg =16(或-16),它就能工作!(对于1.2 too的数据和700个特性也是如此!)
发布于 2013-04-17 22:52:36
您可以使用if对该表达式进行包装。
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我没有特别实现梯度提升,但我需要在一些神经网络计算中实现这一技巧。
https://stackoverflow.com/questions/16048561
复制相似问题