adaboost算法_adaboost算法原理学习笔记

adaboost算法是boosting系列算法的一种,boosting系列算法是串行生成多个弱学习器,并根据结合策略得到强学习器。Adaboost算法能用于分类和回归,本文只介绍分类算法。

上篇文章讲到了boosting系列的算法思想,adaboost算法是它的具体实现。

boosting系列算法都需要解决下面几个问题:

1)如何计算学习误差率e

2)如何得到弱学习器的系数α

3)每次迭代过程中,如何更新样本权重D

4)采用何种结合策略

本文介绍的adaboosting算法回答了上述的4个问题。

1. Adaboosting算法步骤

假设训练集样本为:

7d2abd10d2c21338f787c574b0f684bf.png

第k轮迭代的数据集样本权重为:

a7f55edbb9b367adc3f97754f9e30df6.png

初始化样本权重为:

9bb9609ab153456029273fb53bf77469.png

下面基于boosting系列算法的4个基本问题来介绍Adaboost算法

1) 学习率误差的计算

81360d4cc9816425566c8e5520fe3493.png

其中87591ec840a558638da844fdbb464dd8.png为第k轮弱学习器的输出。

2)如何得到弱学习器的系数α

53dbf54f70c94dc707f908c861394043.png

751422fcc45e337bb7dc1e6027da915c.png表示第k轮迭代的弱学习器的系数。

3)如何更新样本权重D

77ff5b157ed3e17e17d3aa34e05db77c.png

3532bc1cfcd8865ca785fdeafecfdc0c.png表示第k轮迭代过程中,第i个样本的权重。

4)采用何种结合策略

Adaboost算法采用加权平均的方法,并通过sign函数得到最终的分类结果:

4425edd24914315e8947840223c6d826.png

2. Adaboost算法的几个知识要点

Adaboost算法一系列弱学习器的加权平均,暂不考虑sign函数(因为不影响算法的思想),有:

9963ae557da3da8ada9d1ed615607a76.png

由上式可知,Adaboost算法是一种加法模型。

b3d36eb61653bdf0bb817e5a2563c449.png表示为第k轮迭代后的强学习器,由加法模型可得:

43010b71293d1301be7a2f3dd0bbf2cf.png

Adaboost算法的损失函数为指数函数,即:

533a57faeba83fa65d2c3175baad33cc.png

根据本节介绍的这几个知识点,可反推出样本权重的更新公式和弱学习器的权重系数,具体请参考https://www.cnblogs.com/pinard/p/6133937.html。

Adaboost的优点在于简单,且模型不易过拟合。缺点是若数据集包含了异常样本,则异常样本在迭代过程中会获得较高的权重,导致模型分类性能较差。

欢迎扫码关注:

adaboost算法_adaboost算法原理学习笔记_第1张图片

你可能感兴趣的:(adaboost算法,boosting算法,sgp4模型具体算法)