线性基础学习器如何促进学习?以及它如何在xgboost库中工作?


9

我知道如何在XGBoost中实现线性目标函数和线性提升。我的具体问题是:当算法适合残差(或负梯度)时,是在每个步骤使用一个特征(即单变量模型)还是在所有特征(多元模型)中使用?

任何有关XGBoost中线性增强功能的文档参考都将受到赞赏。

编辑:通过将“ booster”参数设置为“ gblinear”,可以在XGBoost中实现线性增强。有关线性增强的有用信息,请参见:http : //www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/。请注意,我并不是在谈论目标函数(也可以是线性的),而是关于提升它们自己。

谢谢!


1
我不知道它是如何实现的,但是我没有理由为什么它一次只考虑一项功能
Alexey Grigorev

@AlexeyGrigorev很可能一次需要许多功能,但是,如何选择这些功能呢?关于线性增强的特定过程的任何文档都将非常明确。
Escachator

Answers:


17

对您问题的简短回答:

当算法适合残差(或负梯度)时,是在每一步使用一个特征(即单变量模型)还是使用所有特征(多元模型)?

该算法使用的是一项功能,还是所有功能都取决于您的设置。在下面列出的我的长答案中,在决策树桩和线性学习器示例中,它们都使用了所有功能,但是如果您愿意,还可以拟合一部分功能。采样列(特征)被视为减少模型的方差或增加模型的“鲁棒性”,尤其是当您具有大量特征时。

在中xgboost,对于树型学习者,您可以设置colsample_bytree样本特征以适合每次迭代。对于线性基础学习器,没有此类选项,因此,它应该适合所有功能。另外,通常没有太多人在xgboost或梯度提升中使用线性学习器。


线性作为弱势学习者的长答案:

在大多数情况下,我们可能不会将线性学习器用作基础学习器。原因很简单:将多个线性模型加在一起仍将是一个线性模型。

在增强我们的模型方面,有一些基础学习者:

FX==1个中号bX

中号bŤH

2b1个=β0+β1个Xb2=θ0+θ1个X

FX==1个2bX=β0+β1个X+θ0+θ1个X=β0+θ0+β1个+θ1个X

这是一个简单的线性模型!换句话说,集成模型与基础学习者具有“相同的力量”!

XŤXβ=XŤÿ


因此,人们希望使用线性模型以外的其他模型作为基础学习器。树是一个不错的选择,因为相加两棵树不等于一棵树。我将用一个简单的案例进行演示:决策树桩,这是一棵只有1个拆分的树。

FXÿ=X2+ÿ2

在此处输入图片说明

现在,检查前四个迭代。

在此处输入图片说明

请注意,与线性学习器不同,第4次迭代中的模型无法通过使用其他参数进行一次迭代(一个单一决策树桩)来实现。


到目前为止,我已经解释了为什么人们没有将线性学习器用作基础学习器。但是,没有什么可以阻止人们这样做。如果我们使用线性模型作为基础学习者,并限制迭代次数,则它等于求解线性系统,但在求解过程中会限制迭代次数。

相同的示例,但是在3d图中,红色曲线是数据,绿色平面是最终拟合。您可以轻松地看到,最终模型是线性模型,并且z=mean(data$label)与x,y平面平行。(您可以考虑为什么?这是因为我们的数据是“对称的”,所以平面的任何倾斜都会增加损耗)。现在,检查一下前4次迭代中发生了什么:拟合的模型正在慢慢上升到最佳值(平均值)。

在此处输入图片说明


最后的结论是,线性学习器并未得到广泛使用,但是没有什么可以阻止人们使用它或在R库中实现它。此外,您可以使用它并限制迭代次数以对模型进行正则化。

相关文章:

线性回归的梯度提升-为什么不起作用?

决策树桩是线性模型吗?


1
我要说的是n棵树的组合就是一棵树,无论n有多大!
Metariat

@Metariat不!,组合树不是树!对于树,您会在拆分时看到“ T”形。但是,增强的树桩将显示“#”形状。即,拆分将与其他拆分交叉!
海涛杜

你能举一个n棵树的例子吗?我会给你一棵等效的树!
Metariat

@Metariat对不起,我现在没有时间。但是我敢肯定,决策树无法轻易产生决策树桩。我有时间的时候会回到这个问题。
海涛杜

1
我同意n棵树的组合仍然是一棵树,但是这棵树会更大。在最坏的情况下,叶子数等于所有输入树中叶子数的乘积,因此这种树的复杂性是不切实际的。另一方面,在线性函数的情况下,复杂度完全相同。
Tomek Tarczynski,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.