作者简介
张磊:从事AI医疗算法相关工作
个人微信公众号:机器学习算法那些事(微信ID:zl13751026985)
前言
集成学习的Boosting算法串行生成多个弱学习器并按一定的结合策略生成强学习器,AdaBoost算法是Boosting系列算法中的一种,本文详细总结了AdaBoost算法的相关理论。
目录
1. Boosting算法基本原理
2. Boosting算法的权重理解
3. AdaBoost的算法流程
4. AdaBoost算法的训练误差分析
5. AdaBoost算法的解释
6. AdaBoost算法的正则化
7. AdaBoost算法的过拟合问题讨论
8. 总结
Boosting的算法流程
Boosting算法是一种由原始数据集 生成不同弱学习器 的 迭代算法 ,然后把这些弱学习器结合起来,根据 结合策略 生成强学习器。
如上图,Boosting算法的思路:
(1)样本权重表示样本分布,对特定的样本分布生成一个弱学习器。
(2)根据该弱学习器模型的误差率e更新 学习器权重 α。
(3)根据上一轮的学习器权重α来更新下一轮的 样本权重 。
(4)重复步骤(1)(2)(3),结合所有弱学习器模型,根据 结合策略 生成强学习器。
Boosting算法的权重理解
Boosting算法意为 可提升算法 ,可提升方法具体表现在(一)改变训练数据的概率分布(训练数据的权值分布),(二)弱分类器权重的生成。理解这两个原理是理解AdaBoost算法的基础。
1. 训练数据的权重理解
我们对癌症病人和健康人作一个定性的分析,目的是理解Boosingt算法训练数据权重更新的思想。
如下图为分类器G(1)的分类情况,假设样本数据的权重相等。
癌症误分类成健康人的结果很可能是丧失生命,因此这种误分类情况肯定不能出现的,若我们对该 误分类点的权重增加一个极大值,以突出该样本的重要性 ,分类结果如下图:
因此, 增加误分类样本的权重,使分类器往该误分类样本的正确决策边界方向移动,当权重增加到一定值时,误分类样本实现了正确分类,因为训练样本的权重和是不变的,增加误分类样本权重的同时,也降低了正确分类样本的权重。 这是Boosting算法的样本权重更新思想。
2. 弱学习器的权重理解
Boosting算法通过迭代生成了一系列的学习器,我们给予误差率低的学习器一个高的权重,给予误差率高的学习器一个低的权重,结合弱学习器和对应的权重,生成强学习器。弱学习器的权重更新是符合常识的, 弱学习器性能越好,我们越重视它,权重表示我们对弱学习器的重视程度,即权重越大, 这是Boosting算法弱学习器权重的更新思想。
AdaBoost的算法流程
第一节描述了Boosting算法的流程,但是没有给出具体的算法详细说明:
(1)如何计算弱学习器的学习误差;
(2)如何得到弱学习器的权重系数α;
(3)如何更新样本权重D;
(4)使用何种结合策略;
我们从这 四种问题的角度 去分析AdaBoost的分类算法流程和回归算法流程。第k轮的弱分类器为 ,且训练数据集在第K轮训练样本的权重分布为:
1. AdaBoost的分类算法流程
我们假设是二分类问题,输出为{-1,1}。第K轮的弱分类器为
1) 计算弱分类器的分类误差
在训练集上的加权误差率为:
2) 弱学习权重系数α的计算
由上式可知,学习器误差率越小,则权重系数越大。
3) 下一轮样本的权重更新
其中Zk是规范化因子, 使每轮训练数据集的样本权重和等于1 。
当样本处于误分类的情况, ,则 ,该误分类样本的权重增加;当样本是处于正确分类的情况, ,则 ,该正确分类样本的权值减小。
4) 结合策略,构建最终分类器为:
2. AdaBoost的回归算法流程
1) 计算弱学习器的回归误差率:
a) 计算训练集上的最大误差:
b) 计算每个样本的相对误差:
如果是线性误差,则
如果是平方误差,则
如果是指数误差,则
c) 计算回归误差率
(2) 弱学习权重系数α的计算
(3) 下一轮样本的权重更新
Zk是规范化因子,使样本权重的和为1,
(4) 结合策略,构建最终学习器为:
AdaBoost算法的训练误差分析
过程就不推倒了,可参考李航《统计学习方法》P142~P143,这里就只给出结论。
AdaBoost的训练误差界:
由上式可知 , AdaBoost的训练误差是以指数速率下降的,即AdaBoost算法随着迭代次数的增加,训练误差不断减小,即模型偏差显著降低 。
本文倾向于入门AdaBoost算法,下一篇文章会发散思维,介绍AdaBoost算法的相关性质,
参考:
https://www.cnblogs.com/pinard/p/6133937.html
李航《统计学习方法》
- END -
往期推荐:
公众号后台回复关键词学习
获取免费课程
回复 直播 获取系列直播课
回复 Python 1小时破冰入门Python
回复 人工智能 从零入门人工智能
回复 深度学习 手把手教你用 Python 深度学习
回复 机器学习 小白学数据挖掘与机器学习
回复 贝叶斯算法 贝叶斯与新闻分类实战
回复 数据分析师 数据分析师八大能力培养
回复 自然语言处理 自然语言处理之AI深度学习
本文由人工智能爱好者社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。