集成学习

简介

多个“弱学习器”,组合产生了最终结果,往往具备比较好的泛化特征

简单分析

考虑二分类问题 y ∈ { − 1 , 1 } y \in \{-1,1\} y{1,1},假设基分类器的错误率为 ϵ \epsilon ϵ
p ( h i ( x ) ≠ g ( x ) ) = ϵ p(h_i(x)\neq g(x))=\epsilon p(hi(x)=g(x))=ϵ
利用投票法集成
H ( x ) = s i g n ( ∑ t = 1 T h t ( x ) ) H(x)=sign(\sum_{t=1}^Th_t(x)) H(x)=sign(t=1Tht(x))
错误率:
P ( H ( x ) ≠ g ( x ) ) = ∑ k = 0 [ T / 2 ] ( T k ) ( 1 − ϵ ) k ϵ T − k ≤ e x p { − 0.5 T ( 1 − 2 ϵ ) 2 } P(H(x)\neq g(x))=\sum_{k=0}^{[T/2]}\tbinom{T}{k}(1-\epsilon)^k\epsilon^{T-k}\leq exp\{-0.5T(1-2\epsilon)^2\} P(H(x)=g(x))=k=0[T/2](kT)1ϵ)kϵTkexp{0.5T(12ϵ)2}
(根据Hoeffding不等式)
comment:

  1. ϵ < 0.5 \epsilon<0.5 ϵ<0.5
  2. T ↑ \uparrow ,exp ↓ \downarrow
  3. h t ( x ) h_t(x) ht(x)独立性有关
    要求:好而不同

提升方法(Boosting)

Adaboost:提高那些前一轮被弱分类器分错的样本的权值,降低正确的(loss function weight)

Adaboost 算法

在这里插入图片描述
在这里插入图片描述

Adaboost 算法解读

前向分布算法

可加模型
f ( x ) = ∑ m = 1 M β m b ( x , γ m ) f(x)=\sum_{m=1}^M\beta_mb(x,\gamma_m) f(x)=m=1Mβmb(x,γm)

优化损失函数
m i n ( β m , γ m ) , 0 ≤ m ≤ M ∑ i L ( y i , ∑ m = 1 M β m b ( x i , γ m ) ) min_{(\beta_m,\gamma_m),0\leq m \leq M}\sum_iL(y_i,\sum_{m=1}^M\beta_mb(x_i,\gamma_m)) min(βm,γm),0mMiL(yi,m=1Mβmb(xi,γm))

算法

输入 :数据集,损失函数,基函数集
输出:加法模型 f ( x ) f(x) f(x)
step:

  1. 初始化 f 0 ( x ) = 0 f_0(x)=0 f0(x)=0
  2. m = 1 , ⋯   , M m=1,\cdots,M m=1,,M
    (a)极小化损失函数
    ( β m , γ m ) = a r g m i n ∑ i n L ( y i , f m − 1 ( x i ) β m b ( x i , γ m ) ) (\beta_m,\gamma_m)=argmin\sum_i^nL(y_i,f_{m-1}(x_i)\beta_mb(x_i,\gamma_m)) (βm,γm)=argmininL(yi,fm1(xi)βmb(xi,γm))
    (b)更新
    f m ( x ) = f m − 1 ( x ) + β m b ( x , γ m ) f_m(x)=f_{m-1}(x)+\beta_mb(x,\gamma_m) fm(x)=fm1(x)+βmb(x,γm)
  3. 得到加法模型
    f ( x ) = ∑ m = 1 M β m b ( x , γ m ) f(x)=\sum_{m=1}^M\beta_mb(x,\gamma_m) f(x)=m=1Mβmb(x,γm)

comment
将同时求解 m = 1 , ⋯   , M m=1,\cdots,M m=1,,M ( γ m , β m ) (\gamma_m,\beta_m) (γm,βm),转变为逐个求解的问题

前向分布与Adaboost

定理: adaboost是前向分布算法的特例,其中模型是基本模型组成的加法模型,损失函数是指数函数,其中指数函数的形式是
L ( y , f ( x ) ) = e x p { − y f ( x ) } L(y,f(x))=exp\{-yf(x)\} L(y,f(x))=exp{yf(x)}

proof:
需要证明 α m \alpha_m αm的计算公式和权重更新公式
假设 m − 1 m-1 m1轮迭代已经得到了 f m − 1 ( x ) f_{m-1}(x) fm1(x)
第m轮迭代需要得到 α m , G m ( x ) , f m ( x ) \alpha_m,G_m(x),f_m(x) αm,Gm(x),fm(x)
( α m , G m ( x ) ) = a r g m i n ∑ i n e x p { − y i ( f m − 1 ( x ) + α G ( x ) ) } = a r g m i n ∑ i n w ˉ m i e x p { − y i ( α G ( x ) ) } (\alpha_m,G_m(x))=argmin \sum_{i}^{n} exp\{ -y_i(f_{m-1}(x)+\alpha G(x))\}=argmin \sum_{i}^{n} \bar w_{mi}exp\{ -y_i(\alpha G(x))\} (αm,Gm(x))=argmininexp{yi(fm1(x)+αG(x))}=argmininwˉmiexp{yi(αG(x))}
w ˉ m i \bar w_{mi} wˉmi:没有经过归一化的 w m i w_{mi} wmi
最优的 G ( x ) G(x) G(x)由下式得到
G m ∗ = a r g m i n G ∑ i n w ˉ m i I ( Y i ≠ G ( x i ) ) G_m^*=argmin_{G}\sum_{i}^{n} \bar w_{mi} I(Y_i\neq G(x_i)) Gm=argminGinwˉmiI(Yi=G(xi))
α \alpha α求导,即可证,并可证权重更新公式

Adaboost训练误差分析

定理:Adaboost的最终分类器的训练误差边界
1 N ∑ i I ( G ( x i ) ≠ y i ) ≤ 1 N ∑ i e x p ( − y i f ( x i ) ) = ∏ m Z m \frac{1}{N}\sum_{i}I(G(x_i)\neq y_i)\leq \frac{1}{N} \sum_iexp(-y_if(x_i))=\prod_mZ_m N1iI(G(xi)=yi)N1iexp(yif(xi))=mZm
其 中 Z m = ∑ i w m i e x p ( − α m y i G m ( x i ) ) 其中Z_m=\sum_i w_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=iwmiexp(αmyiGm(xi))
proof
第一个不等式:
e x p ( − y i f ( x i ) ) > 1 exp(-y_if(x_i))>1 exp(yif(xi))>1 if y i ≠ f ( x i ) y_i\neq f(x_i) yi=f(xi)
第二个等式证明
w m + 1 , i = w m , i e x p { − α m y i G m ( x i ) } Z m w_{m+1,i}=\frac{w_{m,i}exp\{-\alpha_m y_i G_m(x_i)\}}{Z_m} wm+1,i=Zmwm,iexp{αmyiGm(xi)}

1 N ∑ i e x p ( − y i f ( x i ) ) = 1 N ∑ i ∏ m = 1 e x p ( − α m y i G m ( x i ) ) = w 1 , 1 ∑ i ∏ m = 2 z 1 w 2 , 1 w 1 , 1 e x p ( − α m y i G m ( x i ) ) = ∏ m Z m \frac{1}{N} \sum_iexp(-y_if(x_i))\\=\frac{1}{N} \sum_i \prod_{m=1} exp(-\alpha_m y_i G_m(x_i)) \\=w_{1,1} \sum_i \prod_{m=2} z_1\frac{w_{2,1}}{w_{1,1}} exp(-\alpha_m y_i G_m(x_i))\\=\prod_mZ_m N1iexp(yif(xi))=N1im=1exp(αmyiGm(xi))=w1,1im=2z1w1,1w2,1exp(αmyiGm(xi))=mZm

定理:二分类问题的训练误差界
在这里插入图片描述

提升树

提升树模型

以决策树为基的提升方法称为提升树,提升树可以表示为决策树的加法模型
f M ( x ) = ∑ m T ( x , θ m ) f_M(x)=\sum_m T(x,\theta_m) fM(x)=mT(x,θm)
对于分类问题,只需要将Adaboost中的所有集分类器设为2分类树
对于回归问题,采用平方误差
L ( y , f m − 1 ( x ) + T ( x , θ m ) ) = { y − f m − 1 ( x ) − T ( x , θ m ) } 2 L(y,f_{m-1}(x)+T(x,\theta_m))=\{y-f_{m-1}(x)-T(x,\theta_m)\}^2 L(y,fm1(x)+T(x,θm))={yfm1(x)T(x,θm)}2

梯度提升算法

在这里插入图片描述

Bagging 算法

希望个体学习器尽可能的独立
解决方法:多次使用重抽样数据
步骤:

  1. 对数据进行T次bootstrp重抽样,每次采样M个样本进行训练
  2. 输出最终结果
    分类问题:投票法
    回归问题:求平均
    注:泛化误差的包外估计(out of bag estimate)
    对于每棵树在“包内”(M个训练样本)在“包外”预测,泛化误差可以用“包外”的错误率估计

随机森林(Random Forest)

算法

  1. for b = 1 , ⋯   , B b=1,\cdots,B b=1,,B
    (a)draw a bootstrap sample z ∗ z^* zof size N from the training data
    (b)grow a tree T b T_b Tb to the bootstrap data by random selecting p 1 p_1 p1 features from p p p variables
  2. output the ensemble trees { T b } b = 1 B \{T_b\}_{b=1}^B {Tb}b=1B,make prediction

评估变量的重要性

方法一:(用训练数据)
对于每一棵树,变量重要性可以用该变量分裂后的评价指标(e.g.基尼指数)的下降来量化
对所有树取平均,可以作为重要性的度量
方法二:(用包外数据)
评价 x j x_j xj的重要性,对包外数据的第 x j x_j xj列进行干扰(随机变换顺序)
计算预测值的降低
所有树取平均

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值