Adaptive Boost

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

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

算法完整描述

Adaptive Boost_第1张图片
Adaboost算法

Note:

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

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


    Adaptive Boost_第2张图片
    弱分类器权重函数分布
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例子

你可能感兴趣的:(Adaptive Boost)