将功能扩展到 xgboost 有什么影响?

机器算法验证 机器学习 正则化 岭回归 助推
2022-02-08 16:29:17

在研究 xgboost 算法时,我浏览了文档

听说xgboost不太关心输入特征的规模

在这种方法中,使用复杂度定义 对树进行正则化 ,其中是参数,是终端叶子和是每个叶子的分数。

Ω(f)=γT+12λj=1Twj2
γλTwj

那么,在输入 xgboost 之前扩展功能不是很重要吗?成本函数正则化部分中的项直接受特征规模的影响j=1Twj2

1个回答

XGBoost 对其特征的单调变换不敏感,原因与决策树和随机森林不敏感的原因相同:模型只需要在特征上选择“切点”来分割节点。拆分对单调变换不敏感:在一个尺度上定义拆分在变换后的尺度上具有相应的拆分。

您的困惑源于误解在“模型复杂性”一节中,作者写道w

这里是叶子上的分数向量......w

分数衡量叶子的重量。请参阅“树合奏”部分中的图表;作者将叶子下方的数字标记为“分数”。

分数图

表达式之前的段落中也更精确地定义了分数Ω(f)

我们需要定义树的复杂度。为此,我们首先将树的定义细化为 这里是叶子上的分数向量,是将每个数据点分配给相应叶子的函数,是叶子的数量。Ω(f)f(x)

ft(x)=wq(x),wRT,q:Rd1,2,,T.
wqT

这个表达式的意思是的分区函数,而是与每个分区相关的权重。分区可以通过坐标对齐的拆分来完成,而坐标对齐的拆分是决策树。qRdwRd

的含义是它是一个选择的“权重”,使得新树的集合的损失低于没有新树的集合的损失。这在文档的“结构分数”部分中进行了描述。的分数由下式给出wj

wj=GjHj+λ

其中是损失函数的偏导数的函数之和,个叶子中样本的(详见“附加训练”。)GjHjt1j