Gradient Boosting各个子模型之间使用的样本是一样的么,还是子模型2的输入数据只是模型1预测错的那部分数据
来源:13-6 Ada Boosting 和 Gradient Boosting
慕虎6493860
2020-03-05
Gradient Boosting各个子模型之间使用的样本是一样的么,还是子模型2的输入数据只是模型1预测错的那部分样本数据
1回答
-
liuyubobobo
2020-03-06
模型 2 的样本和模型 1 的样本完全一致。只不过对应的 y 变了,是真正的 y 和模型 1 预测的 y 的差。也就是 模型 2 拟合的是不能被模型 1 拟合的那部分。这里的“那部分”,不是从 x 的角度说的,而是从 y 的角度说的。
==========
我明白你的意思了。是这样的:gradient boosting 的原理主要作用在回归问题上。请首先基于回归问题。可以再理解一下上面我的回答,在回归问题上,应该很清晰。
比如 y 的真值是 1.5,但是模型 1 预测的结果是 1.2,那么对于模型 2 来说,这个 x 对应的 y 就是 0.3。也就是模型 2 的作用是预测出模型 1 的误差,把模型 1 犯得错误修正。当然,模型 2 可能也有误差,于是需要模型 3,依次类推。
但是,gradient boosting 的思想可以用在分类问题上。但是内部的具体计算,依然是回归的思路:计算的是损失函数的值。因为即使是分类问题,落实到具体计算上,我们依然是在最小化损失函数(再回顾一下逻辑回归?)如果损失函数是 0,我们的分类任务就 100% 正确了。
对于此,可以看一下 sklearn 的 GradientBoostingClassifier 的文档,说的很清晰:GB builds an additive model in a forward stage-wise fashion; it allows for the optimization of arbitrary differentiable loss functions.
划重点:differentiable loss functions。Gradient Boosting Classifier 是一个逐渐优化可微分的损失函数的过程。
传送门:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html
继续加油!:)
022020-03-07
相似问题