AdaBoost 算法

您所在的位置:网站首页 人脸识别的设计思路优点和缺点是什么 AdaBoost 算法

AdaBoost 算法

2024-07-13 13:48| 来源: 网络整理| 查看: 265

        AdaBoost 算法 是一种经典的集成学习算法,它将多个弱分类器集成起来,以达到较高的分类准确率,广泛应用于数据分类、人脸检测等应用中。尤其在人脸检测方面,AdaBoost 是非常经典、成功的一个算法。弱分类器被线性组合成为一个强分类器。

一、面临两个问题: 在每一轮,如何改变训练数据的概率分布或者权值分布。如何将弱分类器组合成强分类器。 二、AdaBoost 的思路: 提高那些被前一轮弱分类器错误分类样本的权值,降低那些被正确分类的样本的权值。采用加权多数表决。具体的,加大分类错误率低的分类器的权值,使其在表决中起较大作用,减少分类误差率大的弱分类器的权值,使其在表决中起较小作用。 三、训练目标:

最小化指数损失函数。

四、三部分组成: 初始化训练数据的权值分布。如果有N个样本,则每一个训练样本最开始时都被赋予相同的权值:1/N。训练弱分类器。具体训练过程中,如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它的权值就被降低;相反,如果某个样本点没有被准确地分类,那么它的权值就得到提高。然后,权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。 五、具体步骤:

输人参数:e是预测误差,m 是需要构建的单决策器的个数,如:

if(x < 3 ) y ﹦1 else y =-1

就是一个简单的单决策器,基于x 预测y。α是每个单决策器的不同权重。n 是数据集中点的个数。

W = [ 1/n,1/n,…,1/n ]   # W是一个数组,表示每个数据点的权重,初始相同

C = {};  # C 是一个集合,存放每次循环得到的最佳单决策器

For i = 1 : m

1) 在当前的权重W 下,尝试各种不同的单决策器,直到找到预测误差最小的那个单决策器Hi(针对所有数据),使得误分的数据点的权重之和最小。对Hi预测错误的数据点,计算这些点的权重之和εi;

2) C ﹦C 与 Hi 的并集;

3) 计算分类器的权重αi, αi = 1/2 *log((1-εi + /εi) ;

4) 更新W 数组,

    w_right = exp( - αi) ,w_wrong = exp( αi) ; # exp 是自然对数

    预测正确的数据点,原始权重乘以w_right;

    预测错误的数据点,原始权重乘以w_rong;

5) W = W/sum(W) ;    # 规范化W,规范化之后,使各元素之和为1

6) 对C 中保留的所有分类器,集成决策器为:H_all = α1 * H1 + …αi* Hi

7)使用H_all对所有数据点再次预测,如果 H_a11 预测的误差e为0 或小于某个阈值,终止 for 循环;否则继续 for 循环。

六、AdaBoost的优缺点

1、AdaBoost算法优点

在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。AdaBoost具有很高的精度,训练误差以指数速率下降。相对于bagging算法和Random Forest算法,AdaBoost充分考虑的每个分类器的权重。

2、Adaboost算法缺点

AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。数据不平衡导致分类精度下降。训练比较耗时,每次重新选择当前分类器最好切分点。对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

3、AdaBoost应用领域

模式识别、计算机视觉领域,用于二分类和多分类场景 

参考:

《数据挖掘必备算法详解》https://blog.csdn.net/u012258999/article/details/42457577


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3