Adaptive Boost

AdaBoost算法是一种迭代算法,其核心思想是针对一个训练集训练不同的弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器。具体来说,就是把多个不同的决策树用一种非随机的方式组合起来,使决策树的准确率大大提高,并且,速度快,基本不用调参数,不会overfitting。

AdaBoost算法本身是通过改变数据分布实现的,它根据每次训练集中的每个样本的分类是否正确,以及上次的总体分类的准确率,来更新每个样本的权值。将修改权值的新数据送给下层分类器进行训练,然后将每次训练得到的分类器融合起来,作为最后的决策分类器。

算法完整描述

Adaboost算法

Note:

  • [Get weak hypothesis]在该加权训练集(初始加权相同)中使用弱分类器选择假设。

  • [Choose]这里弱分类器权重函数分布是依赖于分类错误率的,该函数分布见下图


    弱分类器权重函数分布
import numpy as np
import math
x = np.arange(0.0,1.0,0.002)
y = [math.log((1.0-s)/s,math.e)/2.0 for s in x]
plot(x,y)
show()

带权分类误差越小,该分类器对应的权值越大。

  • [Update]训练得到新的弱分类器后,需要对样本权值进行更新:如果该分类器在该样本上分类正确,则降低该样本的权值,如果分类错误,则提高该样本的权值。

Adaboost讲解01 Python代码实现
Adaboost讲解02 深度讲解
Adaboost讲解03例子

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容