Skip to content

Files

Failed to load latest commit information.

Latest commit

 Cannot retrieve latest commit at this time.

History

History

AdaBoost

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

AdaBoost(提升方法)

源码查看 : AdaBoost.py

训练数据集:data.txt


AdaBoost从训练数据集学习一系列弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器,这是一个有趣且大有用处的算法。

AdaBoost算法
输入:数据集 T = {(x1,y1),...,(xN,yN)},其中x∈R, y = {-1,+1}
输出:弱学习算法

(1)初始化训练数据的权值:
  ω = (1/N,....,1/N), ω的长度为N
(2)对 m = 1,2,....,M
  (a)使用带有权值分布的ω进行学习,得到基本分类器:
    G_m(x) : χ --> {-1, 1}
  (b)计算G_m(x)在训练数据集上的分类误差率:
    ϱ_m = P(G_m(xi)!=yi) = sum_{i=1}^N( ω_mi * I(G_m(xi)!=yi) )
  (c)计算G_m(x) 的系数:
    α = 1/2 * log( (1 - ϱ_m)/ϱ_m )
  (d)更新训练集的权值分布:
     ω_i = (ω_i / Z_m) * exp(-α_m * yi * G_m(xi)) , i = 1,2,...,N
  Z_m是规范化因子:
    Z_m = sum_{i=1}^N( ω_mi * exp(-α_m * yi * G_m(xi)) )
(3)构建基本分类器的线性组合:
  f(x) = sum_{m=1}^M( α_m * G_m(x))

得到最终分类器:
  G(x) = sign(f(x)) = sign(sum_{m=1}^M (α_m * G_m(x)))


运行结果: result