乐百事

  • 11

    获得赞
  • 3

    发布的文章
  • 0

    答辩的项目

机器学习boosting算法的简单介绍

机器学习

最后更新 2020-05-12 10:17 阅读 5079

最后更新 2020-05-12 10:17

阅读 5079

机器学习

      boost算法是一种集成算法,就是把多个弱分类器,集成在一起,形成一个强分类器.以决策树为例,单决策树时间复杂度较低,模型容易展示,但是容易过拟合.决策树的boost方法就是:迭代过程,新的训练为了改进上一次的结果.

     传统boost方法: 对正确、错误的样本进行加权,每一步结束后,增加分错点的权重(增加分错的样本数),减少对分对点的权重(减少分对的样本数).

    Adaboost算法:关注被错分的样本,器重性能好的分类器.如下图,是adaboost的一般步骤:

  1. 每一轮训练计算该轮训练的误差比率,(分错的样本占总样本的比例) 
  2. 当误差比率大于等于0.5,说明误差太大,需要重新选择模型或者调整模型
  3. 通过任意的一个单调函数(函数值随误差比率的增大而减小) ,计算出该轮的分类器占最终分类结果的权重
  4. 增加分错样本的数量,该比重根据误差比率的增加而减大,并不小于1.(因为比重小于1,是减少分错样本数量)
  5. 综合所有轮次的结果,得出最终结果            

image.png

    GBDT(Gradient Boosting Decision Tree)算法:常用于回归算法.思路为:用一个初始值来学习一棵决策树,叶子处可以得到预测的值,以及预测之 后的残差,然后后面的决策树就要基于前面决策树的残差来学习,直到预 测值和真实值的残差为零. 这个描述可能难于理解,举个例子说明:

     假设预测年龄.  第一轮:A 真实年龄:15, 预测年龄: 13  这个残差(误差)是:真实值-预测值 = 2

                             第二轮训练时,A的真实标签修改为上一轮的残差:2 ,  预测值为:3,  残差为: -1

                            第三轮训练  A 的真实标签: -1 ,预测值: -1.1,  残差为: 0.1

      直到最后所有都训练结束,把最后预测值累加起来,

 XGBoost是一个优化的分布式梯度提升库,旨在高效、灵活 便携式。XGBoost类似于gbdt的优化版,不论是精度还是效率上都有了提升。与gbdt相比,具体的优点有:

1.损失函数是用泰勒展式二项逼近,而不是像gbdt里的就是一阶导数

2.对树的结构进行了正则化约束,防止模型过度复杂,降低了过拟合的可能性

3.节点分裂的方式不同,gbdt是用的gini系数,xgboost是经过优化推导后的


           

   

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://flyai.com/article/458
讨论
500字
表情
发送
删除确认
是否删除该条评论?
取消 删除