eta正如您所说,每棵树都具有相同的权重,总预测是每棵树的预测总和。
您可能希望前面的树比后面的树具有更大的权重,但这不是必须的,因为在每棵树之后更新响应的方式都是如此。这是一个玩具示例:
假设我们有5个观测值,响应分别为10、20、30、40、50。第一棵树被构建并给出12、18、27、39、54的预测。
现在,如果
eta=
1,则传递到下一棵树的响应变量将为-2、2、3、1,-4(即,预测与真实响应之间的差)。然后,下一棵树将尝试学习第一棵树未捕获的“噪声”。如果
nrounds=
2,则来自两棵树的预测之和将给出模型的最终预测。
如果取而代之的是
eta= 0.1,则所有树的预测都将按缩小
eta,因此第一棵树将“预测”
1.2、1.8、2.7、3.9、5.4。传递给下一棵树的响应变量将具有值8.8、18.2、27.3、36.1、44.6(缩放后的预测与真实响应之间的差)。第二轮使用这些响应值来构建另一棵树-
再次是预测由缩放
eta。因此,树2预测说7、18、25、40、40,一旦缩放,它们将变为0.7、1.8、2.5、4.0、4.0。和以前一样,第三棵树将被传递这些值与前一棵树的响应变量之间的差(即8.1、16.4、24.8、32.1。40.6)。同样,来自所有树的预测的总和将给出最终的预测。
显然,当
eta= 0.1且
base_score为0时,您至少需要十轮才能获得接近明智的预测。通常,您需要绝对最小为1 /
eta轮,通常更多。
使用“小”的基本原理
eta是该模型受益于对预测采取小步骤,而不是让树1承担大部分工作。有点像结晶-
缓慢冷却,您会得到更大,更好的晶体。缺点是您需要增加
nrounds,从而增加了算法的运行时间。



