对您问题的简短回答:
当算法适合残差(或负梯度)时,是在每一步使用一个特征(即单变量模型)还是使用所有特征(多元模型)?
该算法使用的是一项功能,还是所有功能都取决于您的设置。在下面列出的我的长答案中,在决策树桩和线性学习器示例中,它们都使用了所有功能,但是如果您愿意,还可以拟合一部分功能。采样列(特征)被视为减少模型的方差或增加模型的“鲁棒性”,尤其是当您具有大量特征时。
在中xgboost
,对于树型学习者,您可以设置colsample_bytree
样本特征以适合每次迭代。对于线性基础学习器,没有此类选项,因此,它应该适合所有功能。另外,通常没有太多人在xgboost或梯度提升中使用线性学习器。
线性作为弱势学习者的长答案:
在大多数情况下,我们可能不会将线性学习器用作基础学习器。原因很简单:将多个线性模型加在一起仍将是一个线性模型。
在增强我们的模型方面,有一些基础学习者:
F(x )= ∑m = 1中号b米(x )
中号b米米Ť ^ h
2b1个= β0+ β1个Xb2= θ0+ θ1个X
F(x )= ∑m = 12b米(x )= β0+ β1个x + θ0+ θ1个x = (β0+ θ0)+ (β1个+ θ1个)x
这是一个简单的线性模型!换句话说,集成模型与基础学习者具有“相同的力量”!
XŤXβ= XŤÿ
因此,人们希望使用线性模型以外的其他模型作为基础学习器。树是一个不错的选择,因为相加两棵树不等于一棵树。我将用一个简单的案例进行演示:决策树桩,这是一棵只有1个拆分的树。
F(x ,y)= x2+ y2
现在,检查前四个迭代。
请注意,与线性学习器不同,第4次迭代中的模型无法通过使用其他参数进行一次迭代(一个单一决策树桩)来实现。
到目前为止,我已经解释了为什么人们没有将线性学习器用作基础学习器。但是,没有什么可以阻止人们这样做。如果我们使用线性模型作为基础学习者,并限制迭代次数,则它等于求解线性系统,但在求解过程中会限制迭代次数。
相同的示例,但是在3d图中,红色曲线是数据,绿色平面是最终拟合。您可以轻松地看到,最终模型是线性模型,并且z=mean(data$label)
与x,y平面平行。(您可以考虑为什么?这是因为我们的数据是“对称的”,所以平面的任何倾斜都会增加损耗)。现在,检查一下前4次迭代中发生了什么:拟合的模型正在慢慢上升到最佳值(平均值)。
最后的结论是,线性学习器并未得到广泛使用,但是没有什么可以阻止人们使用它或在R库中实现它。此外,您可以使用它并限制迭代次数以对模型进行正则化。
相关文章:
线性回归的梯度提升-为什么不起作用?
决策树桩是线性模型吗?