GBDT基本原理
GBDT基本原理是通过多轮迭代,每轮迭代产生一个弱分类器(利用CART回归树构建),每个分类器在上一轮分类器的残差基础上进行训练
GBDT优点
1.可以灵活处理各种类型的数据,包括连续值和离散值;
2. 在相对少的调参时间情况下,预测的准确率也比较高 ;
3. 使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。
GBDT缺点
由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行
GBDT分裂规则
GBDT分裂会选取使得误差下降最多的特征进行分裂(在进行节点的分裂时,需要计算每个特征的信息增益,最终选信息增益最大的那个特征去做分裂),如果这棵树不能拟合好,那么就要通过负梯度计算出新的残差向量来拟合新的cart回归树
信息增益: 表示在一个条件下,信息不确定性减少的程度
GBDT继续分裂的终止条件
主要可以通过以下手段进行操作:
1.节点分裂时的最小样本数;
2.树的最大深度;
3.树的最大叶子节点数;
4.loss满足约束条件
GBDT的“梯度提升”体现在哪个阶段
前面提到,在构建CART树时使用了损失函数的负梯度,而不是所谓的残差=真值-预测值;实际上是一种更宽广的概念,但是在平方损失的情况下,上面等式是成立的。另外使用损失函数的梯度可以保证损失函数最小值。所以GBDT的梯度提升体现在构建cart树的所需的负梯度阶段,其利用最快速下降的近似方法
GBDT如何做特征选择
通过特征j在单颗树中的重要度的平均值来衡量特征j的全局重要度,从而做特征选择
GBDT为什么使用CART回归树而不是使用分类树
这个是GBDT基本原理决定的,GBDT主要是利用残差逼近的方式,这就意味每棵树的值是连续的可叠加的,这一点和回归树输出连续值不谋而合,如果采用分类树,那么残差逼近进行叠加就会使得这种叠加没有意义
GBDT哪些部分可以并行
1.计算每个样本的负梯度;
2.分裂挑选最佳特征及其分割点时,对特征计算相应的误差及均值时;
3.更新每个样本的负梯度时;
4.最后预测过程中,每个样本将之前的所有树的结果累加的时候
为什么GBDT的树深度较RF通常都比较浅
对于机器学习来说,泛化误差可以理解为两部分,分别是偏差(bias)和方差(variance);偏差指的是算法的期望预测与真实预测之间的偏差程度,反应了模型本身的拟合能力;方差度量了同等大小的训练集的变动导致学习性能的变化,刻画了数据扰动所导致的影响。当模型越复杂时,拟合的程度就越高,模型的训练偏差就越小;但此时如果换一组数据可能模型的变化就会很大,即模型的方差很大,所以模型过于复杂的时候会导致过拟合。对于RF来说由于并行训练很多不同的分类器的目的就是降低这个方差(variance)。所以对于每个基分类器来说,目标就是如何降低这个偏差(bias),所以我们会采用深度很深甚至不剪枝的决策树。而对于GBDT来说由于利用的是残差逼近的方式,即在上一轮的基础上更加拟合原数据,所以可以保证偏差(bias),所以对于每个基分类器来说,问题就在于如何选择 variance 更小的分类器,即更简单的分类器,所以我们选择了深度很浅的决策树。
GBDT与RF的区别
相同点:
GBDT与RF都是采用多棵树组合作为最终结果
不同点:
1.RF的树可以是回归树也可以是分类树,而GBDT只能是回归树。
2.RF中树是独立的,相互之间不影响,可以并行;而GBDT树之间有依赖,是串行。
3.RF最终的结果是有多棵树表决决定,而GBDT是有多棵树叠加组合最终的结果。
4.RF对异常值不敏感,原因是多棵树表决,而GBDT对异常值比较敏感,原因是当前的错误会延续给下一棵树。
5.RF是通过减少模型的方差来提高性能,而GBDT是减少模型的偏差来提高性能的。
6.RF不需要进行数据预处理,即特征归一化。而GBDT则需要进行特征归一化
参考文章
参考文章1
如有侵权,请联系,速删除