AdaBoost概述

本文深入探讨AdaBoost,一种著名的集成学习算法。通过多个弱分类器的加权组合形成强学习器,其中样本权重在迭代过程中动态调整,错误分类的样本权重逐渐增加。文章从算法思想、实例、广义加法模型角度和sklearn库的使用进行了全面讲解,揭示了AdaBoost如何通过调整样本权重来优化模型精度。
摘要由CSDN通过智能技术生成

原创: 陈超 Refinitiv  创新实验室ARGO 

“本文共3400余字,数学公式原理不深,预计阅读时间15分钟”

 

AdaBoost是Adaptive Boosting的简称,属于集成算法(Ensemble Method)中Boosting类别中的一种。AdaBoost是非常成功的机器学习算法,由Yoav Freund和RobertSchapire于1995年提出,他们因此获得了2003年的哥德尔奖(Gödel Prize)。本文将从下面几个方面对AdaBoost进行展开:

  • 算法思想和算法简易流程
  • 算法实例和算法总结
  • 从广义加法模型看AdaBoost
  • sklearn库相关函数

 

一 算法思想和算法简易流程

 

Agro的《XGBOOST(一)》一文中介绍了集成算法以及作为集成算法典型代表的Boosting算法。XGBOOST算法属于Gradient Boosting框架,是Boosting算法家族的一种。作为Boosting算法家族中出现更早也同样闻名的另外一种算法便是本文要论述的AdaBoost算法。Gradient Boost和AdaBoost 最显著的相同点都在于前一轮训练结果将用来调整本轮训练的样本,从而优化本轮训练出的模型,使得整个的模型更加精确。不同点在于Grandient Boost改变的是本轮训练的样本标签,而AdaBoost 则侧重于调整本轮样本的样本权重,从而改变样本的分布
 

读者可以通过AdaBoost的算法流程来发现这一不同。算法的简易流程表述如下:

 

1.     确定样本集

2.    初始化样本数据的权重,如每个样本的权重为1/n(假设样本个数为n)

3.    进行1,2,...,T轮迭代

a.    归一化样本权重

b.    对样本集进行训练,并计算训练误差

c.    选择误差最小的分类器作为本轮的分类器

d.    根据预测结果更新样本数据的权重:预测错误样本增加权重,预测正确样本降低权重

e.    计算分类器的权重

4.    根据分类器的预测结果及其权重加权表决最终结果

 

下面是一个AdaBoost的训练迭代变化图,我们可以看到在每次迭代中版本的权重的变化,分类错误的样本权重的逐渐加大,而分类正确的样本权重逐渐减少的过程。

图片来源:https://github.com/purelyvivid/DeepLearningMachineLearning_tutorial

 

接下来将通过实例展示AdaBoost的使用,归纳AdaBoost的算法详细流程,从广义加法模型(additive model)这一角度推导这一算法核心算法公式的由来。


 

二 算法实例和算法总结

 

假设训练样本如下,我们需要使用该样本对AdaBoost算法模型进行训练,训练轮数为3轮。x是特征值,y是标签(这个实例是AdaBoost的典型代表,在很多资料上都有提及)

 

第一轮(初始轮)

对训练数据设定为相等的权重。为了保证所有的权重值之和为1,权重一般设置为1/n,这里n=10,所以,权重值为0.1。如图所示,每个训练数据的权重如下,wn 代表的是对应x变量的权重。


 

i)  训练弱分类器

因此,我们使用这个数据训练得到第一个弱分类器模型:深度为1的决策树(简单的分段函数),这个模型用数学公式表示为:

ii)  计算弱分类器决策权重

用这个模型对该第一轮训练集的数据分类,得到的结果是[ 1,1,1,-1, -1,-1,-1,-1,-1,-1],能够发现x为6,7,8的数据结果分类错误,计算得到其错误率为:

计算此

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值