Adaboost

2019-08-23  本文已影响0人  大熊的Yowai

Adaboost

集成学习

定义

在机器学习的有监督学习算法中,我们的目标是学习出一个稳定且在各个方面表现都较好的模型,但是实际情况往往不这么理想,有时候我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。

集成学习就是组合这里的多个弱分类器以得到一个更好更全面的强分类器,集成学习潜在的思想是:即便某些弱分类器得到了错误的预测,其他的弱分类器也可以将其纠正回来。

特点:
种类:
新算法:

Bagging+决策树=随机森林

Adaboost+决策树=提升树

Gradient Boosting+决策树=GBDT

Adaboost

Adaboost的核心问题
  1. 在每一轮如何改变训练数据的权值?

    通过提高哪些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,来让分类器对误分的数据有较好的效果。

  2. 怎么组合弱分类器?

    通过加法模型将弱分类器进行线性组合。刚开始训练时对每一个训练样本赋相同的权重,然后训练T轮,每次训练后都改变样本的权重,也就是说每次都让分类器更关注分错的样本,从而得到多个分类器。通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。

    image

result=sign[\sum { { \alpha }_{ n }{ T }_{ n }(x) } ]

Adaboost计算过程

Adaboost是adapitive boosting(自适应boosting)的缩写。

1.计算样本权重

训练数据中的每个样本,赋予其权重,用向量D表示,这些权重都初始化成相等值。假设有n个样本的训练集:
\{ ({ x }_{ 1 },{ y }_{ 1 }),({ x }_{ 2 },{ y }_{ 2 })...({ x }_{ m },{ y }_{ m })\}
设定每个样本的权重都是相等的,即\frac { 1 }{ m }

2.计算样本错误率

利用第一个弱学习器算法{ T }_{ 1 }(x)对其进行训练,训练完成后对错误率\epsilon的统计:
\epsilon =\frac { 未正确分类的项目 }{ 所有样本数目 }

3.计算分类器权重

{ \alpha }=\frac { 1 }{ 2 } ln(\frac { 1-\epsilon }{ \epsilon } )

4.更新样本权重

​ 在第一个分类器训练完成后,需要重新调整样本的权重,以使得第二个分类器更注重分类错误的样本,从而对其重点学习:
{ D }_{ t+1 }(i)=\frac { { D }_{ t }(i) }{ { Z }_{ t } } x\begin{cases} { e }^{ -\alpha t }\quad \quad \quad if\quad { T }_{ t }({ x }_{ i })={ y }_{ i } \\ e^{ \alpha t }\quad \quad \quad \quad if\quad { T }_{ t }({ x }_{ i })≠{ y }_{ i } \end{cases}
其中{ Z }_{ t }是归一化因子,{ Z }_{ t }=sum(D)

将以上两个式子合并:
{ D }_{ t+1 }(i)=\frac { { D }_{ t }(i)exp(-{ \alpha }_{ t }{ y }_{ i }{ T }_{ t }(x)) }{ sum(D) }

5.结果输出
  1. 重复进行分类器学习,经过n轮学习后,就会得到n个弱分类器,以及各个弱分类器的权重:

n个分类器\quad \quad \quad \quad \quad \quad \quad \{ { T }_{ 1 },{ T }_{ 2 }...{ T }_{ n }\}

n个权重\quad \quad \quad \quad \quad \quad \quad\quad \{ { \alpha }_{ 1 },{ \alpha }_{ 2 }...{ \alpha }_{ n }\}

  1. 对弱分类器进行线性组合:
    result=sign[\sum { { \alpha }_{ n }{ T }_{ n }(x) } ]
上一篇 下一篇

猜你喜欢

热点阅读