机器学习算法-Adaboost

Adaboost是一种集成学习算法,通过弱分类器的加权组合形成强分类器。本文详细介绍了Adaboost的算法步骤,举例展示了Adaboost的工作原理,并探讨了权值调整的原因。最后,给出了Adaboost在实际中的应用示例。
摘要由CSDN通过智能技术生成

Boosting是一类算法的统称,其基本思想很简单,就是”三个臭皮匠顶个诸葛亮”:针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。常见的分类算法,如kNN、线性分类器、决策树等,均可经过特殊约束构造弱分类器。

这里写图片描述

弱弱联合,变得更强!!!强在准确度上比较好理解,但是怎么提高效率就有点困惑了。因为本来只需训练单个强分类器便可以解决问题,现在却要多个弱分类器组合才能得到结果,计算次数和成本“明显”增加了。其实这块的优化是单个弱分类器的计算开销远远地低于单个强分类器,如判断一个新样本,单个强分类器可能需要对比十个属性才能得到分类结果,但每个弱分类器每次只需要对比一个属性,即使五个弱分类器组合,计算成本也远远小于单个强分类器。

对于Boosting算法,主要存在两个问题:

  1. 如何调整训练集,使得在训练集上训练的弱分类器得以进行?
  2. 如何将训练得到的各个弱分类器联合起来形成强分类器?

针对以上两个问题,1995年,Freund and Schapire改进了Boosting算法,取名为Adaboost算法。AdaBoost算法的调整主要是:

  1. 使用加权后选取的训练数据代替随机选取的训练样本,这样将训练的焦点集中在比较难分的训练数据样本上;   
  2. 将弱分类器联合起来,使用加权的投票机制代替平均投票机制。让分类效果好的弱分类器具有较大的权重,而分类效果差的分类器具有较小的权重。

一、Adaboost算法步骤

AdaBoost算法的具体步骤如下:

1.给定训练样本集S: (x1,y1),(x2,y2),......(xn,yn) ,其中 xiX yiY={ 1,+1} ;T为训练的最大循环次数;

2.初始化样本权重为 D1=1/n ,即为训练样本的初始概率分布;  
 
3.对于T轮训练,For t =1,2,……,T:
(1)基于当前训练样本的概率分布 Dt ,训练弱分类器 ht ;

(2)计算弱分类器的错误率:

ϵt=i=1N
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值