Boosting:AdaBoost理论知识

来源:互联网 发布:汽修管理系统源码 编辑:程序博客网 时间:2024/06/08 01:54

Boosting思想:

    Boosting主要是一种思想,表示“知错就改”。是一族可将弱学习器提升为强学习器的算法,如Adaboost、GBDT、XGBOOST,这组算法的工作机制类似。先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个学习器,如此重复进行下去,直到基学习器数目达到事先指定的值T,最终将这 T个基学习器进行加权结合。

    Boosting是串行构造模型,不断使用后一个弱分类器弥补前一个弱分类器的不足的过程。

    Boosting族著名的算法:Adaboost、GBDT、XGBOOST


1、AdaBoosting

    AdaBoosting(adaptive boosting自适应boosting的缩写)中“不足”是指被前一个弱学习器误分类的点,在下一次分类中被赋予更大的权重。与其他的Boosting实现不同的是这种算法可以适应各弱分类模型各自的训练误差。

其运行过程如下:

    训练数据中的每个样本,并赋予其一个权重,这些权重构成了向量D,这些权重初始值都相等。

    首先在训练集上训练出一个弱分类器,并计算该分类器的错误率,然后在同一数据集上再次训练弱分类器,

    在分类器二次训练中,将会重新调整每个样本的权重,其中,第一次分对的样本的权重将会降低,而第一次分错的权重将会提高。

    为了从所有弱分类器中得到最终的分类结果,AdaBoost为每个分类器都分配了一个权重值alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。


AdaBoost算法示意图:

    左边是数据集,其中直方图的不同宽度表示每个样例上的不同权重,在经过一个分类器后,加权的预测结果会通过三角形中的alpha值进行加权,每个三角形中输出的加权结果再圆形中求和,从而得到最终的输出结果。


原创粉丝点击