当前位置: 代码迷 >> 综合 >> 『机器学习算法』集成学习——AdaBoost
  详细解决方案

『机器学习算法』集成学习——AdaBoost

热度:69   发布时间:2024-01-04 11:29:38.0

1、基本属性

a、算法名称

英文名:AdaBoost

中文名:

b、属于分类、回归或其它算法中的哪种类别

属于分类算法

c、属于有监督、无监督、半监督的哪种类别

属于有监督

d、对于数据分布是否有要求,如果有,要求是哪种分布?


e、是否属于集成学习方法,如果是,基学习器是否可以并行运行

属于集成学习方法;不可以并行运行,只可以串行运行


f、适应于哪种类型的数据集(如 数值型、标称型)?


g、是否可以处理数据集有缺失值的情况?


h、是否可以处理数据集有异常值的情况?


i、对异常值是否敏感?


j、数据抽样方式(如自助采样(有放回采样)、无放回采样等)


k、是否会改变训练集的样本分布?


2、什么是 AdaBoost 算法

AdaBoost 算法是针对同一训练集训练出不同的弱分类器,然后通过集成的方法,得到一个最终的强分类器。


3、工作原理

先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,

然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值 T ,最终将这 T 个基学习器进行加权结合


4、算法伪代码 (非 latent 版)

输入:训练集 D = {(x1, y1), (x2, yx), ... , (xm, ym)};

注:xm 是个向量

           基学习算法 a

           训练轮数 T 

过程:

1: D1(x) = 1 / m

2:f or t = 1, 2, ... , T do

3:     ht = a(D, Dt) ;   注:Dt 是样本分布

4:     et = Px ~ Dt(ht(x) ≠ f(x));

5:     if et > 0.5 then break

6:     αt = 1/2 ln((1 - et) / et);

7:     


步骤 6 的图像