在本合集的上一篇文章完成了目标函数的泰勒展开,得到了形如(4)式的函数:
接下来,求其最小值。
1.(4)式的变体
先引入几个新的变量和函数定义:
Ij:若特征空间X存在划分I1, I2,…,Im 则 Ij 是该划分的一项,即X的第j个子集。对于XGBoost树,Ij包含且只包含所有映射到某一个叶子节点的特征值。
q(xi):一个以特征空间为出发域,以叶子节点索引值为到达域的映射,即给定一个输入项xi,得到一个叶子节点的索引。
2025年09月04日
在本合集的上一篇文章完成了目标函数的泰勒展开,得到了形如(4)式的函数:
接下来,求其最小值。
1.(4)式的变体
先引入几个新的变量和函数定义:
Ij:若特征空间X存在划分I1, I2,…,Im 则 Ij 是该划分的一项,即X的第j个子集。对于XGBoost树,Ij包含且只包含所有映射到某一个叶子节点的特征值。
q(xi):一个以特征空间为出发域,以叶子节点索引值为到达域的映射,即给定一个输入项xi,得到一个叶子节点的索引。
2025年09月04日
在合集的上一篇文章介绍了XGBoost的目标函数(1)式:
本文推导(1)式的二阶泰勒展开过程。
1.目标函数为什么要进行二阶泰勒展开
要计算sin23应该怎么做?
当然是首先将其展开为麦克老林级数:
此时,将23代入,就方便多了。尤其对编程而言,这几乎是唯一合适的算法。
为什么是二阶泰勒展开而不是三阶?
因为二阶已经够用了,三阶反而增加了计算量。一阶导数向模型指示梯度(方向)信息,明确模型的下一步调整方向;二阶导数向模型指示变化速率信息,让模型的调整既不能龟速也不能超速。