1. 什么是Adaboost?

AdaBoost算法是基于Boosting思想的机器学习算法,其中AdaBoost是Adaptive Boosting的缩写,AdaBoost是一种迭代型的算法,其核心思想是针对同一个训练集训练不同的学习算法,即弱学习算法,然后将这些弱学习算法集合起来,构造一个更强的最终学习算法。AdaBoost算法示意图1

集成学习之Adaboost算法基本原理

假设有n个样本,为了构造出一个强的学习算法,首先需要选定一个弱学习算法,并利用同一个训练集不断训练弱学习算法,以提升弱学习算法的性能。在AdaBoost算法中,有两个权重,第一个数训练集中每个样本有一个权重,称为样本权重,用向量D表示,初始的权重为D1=(w11,w12,...,w1n);另一个是每一个弱学习算法具有一个权重,用向量α表示。假设有n个样本的训练集,初始时,设定每个样本的权重是相等的,即1n,利用第一个弱学习算法h1对其进行学习,学习完成后进行错误率ε的统计2

ε=NerrorNall

其中,Nerror表示被错误分类的样本的数目,Nall表示所有样本的数目。因此,弱学习算法h1的权重α1可以通过ε求得:
α1=12ln(1εε)

在第一次学习完成后,需要重新调整样本的权重,以使得在第一分类中被错分的样本的权重,使得在接下来的学习中可以重点对其进行学习,所以需要更新训练的权值分布:

Dm+1=(wm+1,1,wm+1,2,...,wm+1,n)

wm+1,i=wmiZmexp(αmyiGm(xi)),i=1,2,...,n

其中,αm表示第m训练器的权重值,Gm代表第m个分类器,Zt是一个归一化因子:

Zm=i=1nwmiexp(αmyiGm(xi))

之后,使用更新后的权重值进行下一轮学习,直到M轮结束,得到M个弱学习方法{G1,G2,...,GM}及其权重

{α1,...,αM}
。对新的分类数据,分别计算M个弱分类器的输出{G1(X),G2(X),...,GM(X)},最终的AdaBoost算法的输出结果为:

G(X)=sign(f(X))=sign(m=1MαmGm(X))


2. Adaboost算法

Adaboost基本的算法流程为3

集成学习之Adaboost算法基本原理

AdaBoost算法是一种具有很高精度的分类器,其实AdaBoost算法提供的是一种框架,在这种框架下,我们可以使用不同的弱分类器,通过AdaBoost框架构建出强分类器。

相关文章:

  • 2021-05-21
  • 2022-12-23
  • 2021-11-11
  • 2021-06-29
  • 2021-12-03
  • 2021-07-01
  • 2021-07-02
  • 2021-08-14
猜你喜欢
  • 2021-08-03
  • 2022-12-23
  • 2021-04-06
相关资源
相似解决方案