打字猴:1.700539767e+09
1700539767 再看Boosting,大家应该还记得Boosting的训练过程。在训练好一个弱分类器后,我们需要计算弱分类器的错误或者残差,作为下一个分类器的输入。这个过程本身就是在不断减小损失函数,来使模型不断逼近“靶心”,使得模型偏差不断降低。但Boosting的过程并不会显著降低方差。这是因为Boosting的训练过程使得各弱分类器之间是强相关的,缺乏独立性,所以并不会对降低方差有作用。
1700539768
1700539769 关于泛化误差、偏差、方差和模型复杂度的关系如图12.5所示。不难看出,方差和偏差是相辅相成,矛盾又统一的,二者并不能完全独立的存在。对于给定的学习任务和训练数据集,我们需要对模型的复杂度做合理的假设。如果模型复杂度过低,虽然方差很小,但是偏差会很高;如果模型复杂度过高,虽然偏差降低了,但是方差会很高。所以需要综合考虑偏差和方差选择合适复杂度的模型进行训练。
1700539770
1700539771
1700539772
1700539773
1700539774 图12.5 泛化误差、偏差、方差和模型复杂度的关系
1700539775
1700539776
1700539777
1700539778
1700539779 百面机器学习:算法工程师带你去面试 [:1700532243]
1700539780 百面机器学习:算法工程师带你去面试 05 梯度提升决策树的基本原理
1700539781
1700539782
1700539783
1700539784 场景描述
1700539785
1700539786 梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是Boosting算法中非常流行的模型,也是近来在机器学习竞赛、商业应用中表现都非常优秀的模型。GBDT非常好地体现了“从错误中学习”的理念,基于决策树预测的残差进行迭代的学习。GBDT几乎是算法工程师的必备技能,也是机器学习面试中常考察的内容。
1700539787
1700539788 知识点
1700539789
1700539790 GBDT,CART
1700539791
1700539792 问题1 GBDT的基本原理是什么?
1700539793
1700539794 难度:★★☆☆☆
1700539795
1700539796 分析与解答
1700539797
1700539798 本章第一节提到Bagging和Boosting两大集成学习的框架。相比于Bagging中各个弱分类器可以独立地进行训练,Boosting中的弱分类器需要依次生成。在每一轮迭代中,基于已生成的弱分类器集合(即当前模型)的预测结果,新的弱分类器会重点关注那些还没有被正确预测的样本。
1700539799
1700539800 Gradient Boosting是Boosting中的一大类算法,其基本思想是根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,然后将训练好的弱分类器以累加的形式结合到现有模型中。算法1描述了Gradient Boosting算法的基本流程,在每一轮迭代中,首先计算出当前模型在所有样本上的负梯度,然后以该值为目标训练一个新的弱分类器进行拟合并计算出该弱分类器的权重,最终实现对模型的更新。Gradient Boosting算法的伪代码如图12.6所示。
1700539801
1700539802
1700539803
1700539804
1700539805 图12.6 Gradient Boosting算法伪代码
1700539806
1700539807 采用决策树作为弱分类器的Gradient Boosting算法被称为GBDT,有时又被称为MART(Multiple Additive Regression Tree)。GBDT中使用的决策树通常为CART。
1700539808
1700539809 用一个很简单的例子来解释一下GBDT训练的过程,如图12.7所示。模型的任务是预测一个人的年龄,训练集只有A、B、C、D 4个人,他们的年龄分别是14、16、24、26,特征包括了“月购物金额”“上网时长”“上网历史”等。下面开始训练第一棵树,训练的过程跟传统决策树相同,简单起见,我们只进行一次分枝。训练好第一棵树后,求得每个样本预测值与真实值之间的残差。可以看到,A、B、C、D的残差分别是−1、1、−1、1。这时我们就用每个样本的残差训练下一棵树,直到残差收敛到某个阈值以下,或者树的总数达到某个上限为止。
1700539810
1700539811
1700539812
1700539813
1700539814 图12.7 GBDT的一个例子
1700539815
1700539816 由于GBDT是利用残差训练的,在预测的过程中,我们也需要把所有树的预测值加起来,得到最终的预测结果。
[ 上一页 ]  [ :1.700539767e+09 ]  [ 下一页 ]