集成学习-Adaboost

Adaboost是一种集成学习算法,通过结合多个弱分类器形成强分类器。它通过迭代调整训练样本的权重,使得弱分类器在处理错误分类样本时权重增大,从而提升整体分类性能。算法包括初始化权值分布、训练弱分类器、更新权值和构建最终分类器等步骤。Adaboost在分类和回归问题中均有应用,并与bagging、GBDT等算法有所不同,其关键在于通过误差调整样本权重。
摘要由CSDN通过智能技术生成

Adaboost 算法简介

集成学习(ensemble learning)通过构建并结合多个学习器(learner)来完成学习任务,通常可获得比单一学习器更良好的泛化性能,特别是在集成弱学习器(weak learner)时。

集成学习两大类:
  • 以bagging、Random Forest等算法为代表的,各个学习器之间相互独立、可同时生成的并行化方法;
  • 以boosting、Adaboost等算法为代表的,个体学习器是串行序列化生成的、具有依赖关系,它试图不断增强单个学习器的学习能力。

算法详解

Adaboost步骤概览
  1. 初始化训练样本的权值分布,每个训练样本的权值相等(如果一共有N个样本,则每个样本的权值为1/N)
  2. 依次构造训练集并训练弱分类器。如果一个样本被准确分类,那么它的权值在下一个训练集中农会降低;相反,如果它分类错误,那么它在下一个训练集中的权值会提高。权值更新过后的训练集会用于训练下一个分类器。
  3. 训练好的弱分类器集成为一个强分类器集,误差率小的弱分类器会在最终的强分类器里占据更大的权重,否则较小。
Adaboost 算法流程

给定一个样本数量为m的数据集 T = { ( x 1 , y 1 ) , … , ( x m , y m ) } T=\left \{\left(x_{1}, y_{1}\right), \ldots,\left(x_{m}, y_{m}\right) \right \} T={ (x1,y1),,(xm,ym)}yi 属于标记集合{-1,+1}。

训练集的在第k个弱学习器的输出权重为 D ( k ) = ( w k 1 , w k 2 , … w k m ) ; w 1 i = 1 m ; i = 1 , 2 … m D(k)=\left(w_{k 1}, w_{k 2}, \ldots w_{k m}\right) ; \quad w_{1 i}=\frac{1}{m} ; i=1,2 \ldots m D(k)=(wk1,wk2,wkm);w1i=m1;i=1,2m
​① 初始化训练样本的权值分布,每个训练样本的权值相同: D ( 1 ) = ( w 11 , w 12 , … w 1 m ) ; w 1 i = 1 m ; i = 1 , 2 … m D(1)=\left(w_{1 1}, w_{1 2}, \ldots w_{1 m}\right) ; \quad w_{1 i}=\frac{1}{m} ; i=1,2 \ldots m D(1)=(w11,w12,w1m);w1i=m1;i=1,2m
② 进行多轮迭代,产生T个弱分类器。

​ for t = 1, … , T :

​ a. 使用权值分布 D(t) 的训练集进行训练,得到一个弱分类器 G t ( x ) : χ → { − 1 , + 1 } G_{t}(x) : \quad \chi \rightarrow\{-1,+1\} Gt(x):χ{ 1,+1} ​ b. 计算 Gt(x) 在训练数据集上的分类误差率(其实就是被 Gt(x) 误分类样本的权值之和):
e t = P ( G t ( x i ) ≠ y i ) = ∑ i = 1 m w t i I ( G t ( x i ) ≠ y i ) e_{t}=P\left(G_{t}\left(x_{i}\right) \neq y_{i}\right)=\sum_{i=1}^{m} w_{t i} I\left(G_{t}\left(x_{i}\right) \neq y_{i}\right) et=P(Gt(xi)̸=yi)=i=1mwtiI(Gt(xi)̸=yi)
c. 计算弱分类器 Gt(x) 在最终分类器中的系数(即所占权重) α t = 1 2 ln ⁡ 1 − e t e t \alpha_{t}=\frac{1}{2} \ln \frac{1-e_{t}}{e_{t}} αt=21lnet1et ​ d. 更新训练数据集的权值分布,用于下一轮(t+1)迭代
D ( t + 1 ) = ( w t + 1 , 1 , w t + 1 , 2 , ⋯ w t + 1 , i ⋯   , w t + 1 , m ) D(t+1)=\left(w_{t+1,1} ,w_{t+1,2} ,\cdots w_{t+1, i} \cdots, w_{t+1, m}\right) D(t+1)=(wt+1,1,wt+1,2,w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值