首页 > 编程知识 正文

gbdt优点,gbdt是什么

时间:2023-05-04 02:19:04 阅读:135184 作者:3694

——GBDT的原理很简单,将所有弱分类器的结果相加后等于预测值。 目录==——GBDT的原理很简单,将所有弱分类器的结果相加后就是预测值。==1.3. GBDT算法的过程1.1 Boosting思想1.2说明gbdt是怎么回事3. GBDT的优点和局限性有哪些? 3.1优势3.2局限性4. RF (随机森林)与GBDT的区别与联系5 .代码实现

说明GBDT算法的过程

gdt (gradientboostingdecisiontree )全部被称为坡度提升决策树,使用了boosting的思想。

1.1 Boosting思想Boosting方法在训练基分类器时采用串行方式,各基分类器之间存在依赖。 其基本思想是将基分类器层层叠加,每层在训练中,对前一层基分类器错误分类的样本给予更高的权重。 在测试时,根据各层分类器结果的权重得到最终结果。

Bagging与Boosting的串行训练方式不同,Bagging方法在训练过程中各基分类器之间没有很强的依赖,可以进行并行训练。

1.2 GBDT意味着GBDT的原理很简单,将所有弱鉴别器的结果加起来等于预测值,然后拟合弱鉴别器对误差函数的预测值的残差。 该残差是预测值和真值之间的误差。 当然,其中弱分类器的表现形式是各树。

举个非常简单的例子,比如我今年30岁了,但是计算机和型号的GBDT不知道我今年几岁。 GBDT怎么办?

它用第一个弱分类器(或第一棵树中)随意在20岁等年龄拟合,发现误差有10岁。

其次用第二棵树,6岁拟合剩余损失,发现相差才4岁;

接着在第三棵树上用3岁拟合剩余的差,差只有1岁;

最后用第四课的树一岁拟合剩下的残差,很完美。

最终,结合4棵树的结论,实际年龄为30岁(在实际工程中,gbdt计算负斜率,用负斜率近似残差)。

为何gbdt可以用用负梯度近似残差呢?

在回归任务中,GBDT在各轮迭代时每个样本都有预测值。 此时损失函数是均方误差损失函数

因此,如果将损耗函数的均方损耗函数设置为“是”,则每个拟合的值为“真值-当前模型的预测值”,即残差。 此时的变量是求出“当前预测模型的值”,即相对于其求出负斜率。

训练过程

简单来说,假设训练集中只有a、b、c和d四个人。 他们的年龄分别是14、16、24、26。 其中a、b分别是高一和高三学生; C、d分别是应届毕业生和工作两年的员工。 用传统的回归决策树训练,可以得到如下图所示的结果。

现在我们用GBDT做这件事。 因为数据太少,所以限定制作两个以上的叶子节点。 也就是说,每棵树上只有一根树枝。 然后,我只限定学习两棵树。 得到如下图所示的结果。

在第1个分枝中,与图1相同,由于a、b的年龄相近,c、d的年龄相近,所以左右分开,每1个分枝将平均年龄作为预测值。

此时,因为计算残差(所谓残差是指a的实际值- A的预测值=A的残差),所以a的残差为实际值14 -预测值15=残差值-1。

请注意。 A的预测值是指前面所有树累积的和。 这里,前面只有一棵树,所以直接15。 如果有树,则必须全部累计并作为a的预测值。

然后,去第二树学习那些残差- 1,1,- 1,1而不是A B C D的原始值。 第二个树只有两个值1和-1,直接分为两个节点。 也就是说,将a和c分为左,将b和d分为右进行计算。 (残差都为0,相当于第二棵树的预测值和实际值相等,只要把第二棵树的结论累加到第一棵树上就可以得到实际年龄,每个人都可以得到真正的预测值。

换言之,目前,a、b、c、d的预测值都与实际年龄一致。 好极了!

A: 14岁高一学生,购物少,经常向前辈提问,预测年龄a=151=14

B: 16岁高三学生,购物少,经常被badxbc提问,预测年龄b=15(1=16 )

C: 24岁应届毕业生,购物多,经常问ttdbg问题,预测年龄C=251=24

D: 26岁工作两年的员工,经常被购物多、粗鲁的行人提问,预测年龄D=25 1=26

因此,GBDT需要累积多棵树的得分以得到最终的预测得分,每次迭代时,基于现有树,增加一棵树来拟合前面的树的预测结果和真值之间的残差。

3. GBDT的优点和局限性是什么? 3.1优势预测阶段计算速度快,可以在树与树之间并行计算。

在分布密集的数据集上,由于泛化能力和表达能力出色,GBDT在Kaggle的许多竞赛中总是名列榜首。

通过采用决策树作为弱分类器,GBDT模型具有较好的解释和鲁棒性,能够自动发现特征之间的高阶关系。

3.2局限性GBDT在高维稀疏数据集上的表示比支持向量机和神经网络更差。

GBDT在处理文本分类的特征问题上,相对于其他模型的优越性不如处理数值

特征时明显。
训练过程需要串行训练,只能在决策树内部采用一些局部并行的手段提高训练速度。

4. RF(随机森林)与GBDT之间的区别与联系

相同点:

都是由多棵树组成,最终的结果都是由多棵树一起决定。
RF和GBDT在使用CART树时,可以是分类树或者回归树。
不同点:

组成随机森林的树可以并行生成,而GBDT是串行生成
随机森林的结果是多数表决表决的,而GBDT则是多棵树累加之和
随机森林对异常值不敏感,而GBDT对异常值比较敏感
随机森林是减少模型的方差,而GBDT是减少模型的偏差
随机森林不需要进行特征归一化。而GBDT则需要进行特征归一化

5. 代码实现

纸上得来终觉浅,绝知此事要躬行

GitHub:https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine%20Learning/3.2%20GBDT/GBDT_demo.ipynb

以上内容参考自:
Github/ML-NLP/Machine Learning/3.2 GBDT
代码补充参考for——开心的花瓣:
Python科学计算——Numpy.genfromtxt
pd.DataFrame()函数解析(最清晰的解释)
iloc的用法(最简单)
scikit-learn 梯度提升树(GBDT)调参小结(包含所有参数详细介绍)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。