gbdt的缺点,GBDT是什么

  gbdt的缺点,GBDT是什么

  ——GBDT的原理很简单,所有弱分类器的结果加在一起等于预测值。directory==3354GBDT的原理很简单。将所有弱分类器的结果相加后,就是预测值。==1.3.gbdt算法的过程1.1助推思想1.2解释GBDT是怎么一回事3。GBDT的优势和局限是什么?3.1优势3.2局限4。RF(随机森林)和GBDT 5的区别与联系。代码实现

  解释GBDT算法的过程

  Gdt (GradientBoosting决策树)全称为斜率改进的决策树,它采用了Boosting的思想。

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

  装袋不同于系列训练中的助推。Bagging方法在训练过程中对各个基分类器没有很强的依赖性,可以并行训练。

  1.2 GBDT是指GBDT的原理很简单,把所有弱判别器的结果加起来等于预测值,然后用弱判别器拟合误差函数预测值的残差。残差是预测值和真实值之间的误差。当然,弱分类器用树来表示。

  举个很简单的例子,比如我30岁了,但是计算机和模型的GBDT不知道我多大了。GBDT怎么样?

  它在20岁时用第一个弱分类器(或者第一棵树)随机拟合,发现误差是10岁。

  其次,用第二棵树,6年生,拟合剩余损失,发现相差只有4年生;

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

  最后用第四课的树来拟合剩余的残差,非常完美。

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

  

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

  在回归任务中,GBDT预测了每次迭代中每个样本的值。这时的损失函数就是均方误差损失函数。

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

  

训练过程

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

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

  在第一个分支中,如图1所示,A和B的年龄相近,C和D的年龄相近,所以把它们分开,用每个分支的平均年龄作为预测值。

  这时计算残差(残差是指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的预测值与实际年龄相符。太好了!

  答:答:14岁高一种马

  D: 26岁,工作两年的员工,经常被粗鲁的行人质疑购物太多。预测年龄D=25 1=26。

  因此,GBDT需要累积多个树的分数来获得最终的预测分数。在每次迭代中,基于现有的树,添加一棵树来拟合预测结果和前一棵树的真实值之间的残差。

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

  在密集分布的数据集上,GBDT凭借其优秀的泛化能力和表达能力,在Kaggle的多次比赛中始终名列前茅。

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

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

  与其他模型相比,GBDT在处理文本分类特征方面不如数值。

  特征明显的时候。

  训练过程需要串行训练,所以只能在决策树中使用一些局部并行的方法来提高训练速度。

  4.RF(随机森林)和GBDT的异同:

  都是由多棵树组成的,最终的结果是由多棵树共同决定的。

  当使用CART树时,RF GBDT可以是分类树或回归树。

  差异:

  形成随机森林的树可以并行生成,而GBDT是串行生成的。

  随机森林的结果是多数票,而GBDT是多棵树的累积和。

  随机森林对异常值不敏感,而GBDT对异常值敏感。

  随机森林是为了减少模型的方差,而GBDT是为了减少模型的偏差。

  随机森林不需要特征规范化。而GBDT需要特征归一化。

  5.代码的实现是表面的,但需要实践。

  GitHub:https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine学习/3.2 GBDT/GBDT_demo.ipynb

  以上内容引用自:

  github/ML-NLP/机器学习/3.2 GBDT

  ——快乐花瓣补充代码参考:

  Python科学计算——Numpy.genfromtxt

  pd的分析。DataFrame()函数(最清晰的解释)

  iloc的使用(最简单)

  scikit-learn梯度提升树(GBDT)概述(包括所有参数的详细介绍)

gbdt的缺点,GBDT是什么