集成学习 | 集成学习思想:Boosting

在上一篇中,我们讨论了集成学习中的Bagging方法,在本文中,我们将继续深入研究集成学习,学习Boosting方法

一. Boosting思想

在对Bagging思想中随机森林算法有了一定了解之后,我们会发现

	在随机森林构建过程中,各棵树之间是相对独立的
		也就是说:在构建第m棵子树的时候,不会考虑前面的m-1棵树

那么,我们能否对这个现象进行优化呢?

  1. 在构建第m棵子树的时候,考虑到前m-1棵子树的结果,会不会对最终
    结果产生有益的影响?
  2. 各个决策树组成随机森林后,最终结果能否存在一种既定的决策顺序,即哪颗子树先进行决策、哪颗子树后进行决策

针对上面提出的优化方向,集成学习又提出了提升学习(Boosting)思想

	思想:
		在弱学习器A的基础上训练得到弱学习器B
		弱学习器B+弱学习器A的预测结果一定优于弱学习器A
		即:每一步产生的弱预测模型加权累加到总模型中
	boosting意义:
		弱预测模型可以通过提升技术得到一个强预测模型
	boosting思想:
		可以用于回归和分类的问题

在这里插入图片描述

1. Adaboost 算法

Adaptive Boosting是一种迭代算法,即将基学习器的线性组合作为强学习器
    既可以用于分类问题,也可以用于回归问题
    AdaBoost算法主要用于解决分类问题,基学习器是CART分类树
    AdaBoost算法也可以用于解决回归问题,基学习器是CART回归树,这种变体被称为AdaBoost.R2

	具体操作:
		1. 训练数据集,产生一个新的弱学习器
		2. 使用该学习器对所有训练样本进行预测
		3. 评估每个样本的重要性,即为每个样本赋予一个权重
				 如果某个样本点被预测的越正确,则将样本权重降低
				 如果某个样本点被预测的越错误,则将样本权重提高,即,越难区分的样本在下一次迭代中会变得越重要
		       注意:这里样本的权重是归一的
		4. 通过迭代,得到n个基学习器
		   		对于误差率较小的基学习器以大的权重值
		   		对于误差率较大的基学习器以小的权重值 
		   			注意:这里基学习器的权重不归一
	    5. 线性组合所有基学习器

	停止条件:
		错误率足够小或者达到一定的迭代次数

以二分类任务为例子,Adaboost 将基分类器的线性组合作为强分类器,即
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x) = \sum_{m=1}^{M}\alpha_{m}G_{m}(x) f(x)=m=1MαmGm(x)

公式解释:
G m ( x ) G_{m}(x) Gm(x)为基分类器,且 G m ( x ) = ± 1 G_{m}(x)=\pm1 Gm(x)=±1
α m \alpha_{m} αm为基分类器对应的权重,且 α m > 0 \alpha_{m}>0 αm>0,不归一

最终分类器是在线性组合的基础上进行Sign函数转换,因此最终的强学习器为:
G ( x ) = s i g n [ f ( x ) ] = s i g n [ ∑ m = 1 M α m G m ( x ) ] G(x) = sign[f(x)] = sign[\sum_{m=1}^{M}\alpha_{m}G_{m}(x)] G(x)=sign[f(x)]=sign[m=1MαmGm(x)]
在这里插入图片描述

公式解释:

当所有样本的加权和为正数时,输出 G ( x ) = 1 G(x)=1 G(x)=1
当所有样本的加权和为负数时,输出 G ( x ) = − 1 G(x)=-1 G(x)=1
当所有样本的加权和为0时,返回任意值

根据上面的公式,我们用错误率构建损失函数,就会得到每个学习器的损失函数,即分错了的样本权重和
l o s s = ∑ i = 1 n w i I [ G ( x i ) ≠ y i ] , I ( b ) = { 1 , b = T r u e 0 , b = F a l s e , ∑ i = 1 n w i = 1 loss = \sum_{i=1}^{n}w_{i}I[G(x_{i})\ne y_{i}] ,I(b)=\left\{\begin{matrix}1,b=True \\0,b=False\end{matrix}\right.,\sum_{i=1}^{n} w_{i}=1{\tiny } loss=i=1nwiI[G(xi)=yi]I(b)={ 1b=True0b=Falsei=1nwi=1

公式解释:

x i , y i x_{i},y_{i} xi,yi分别为训练集的特征值和标签值

∑ i = 1 n \sum_{i=1}^{n} i=1n表示训练集中有n个样本

w i w_{i} wi为每个样本的权重,归一

G ( x i ) G(x_{i}) G(xi)为基学习器的预测值,即输入x值,输出+1 / -1

I [ G ( x i ) ≠ y i ] I[G(x_{i})\ne y_{i}] I[G(xi)=yi]表示当预测错误时, I 函数 I函数 I函数返回1

公式说明:

训练样本固定,但每个样本的权重不同,因此 G ( ) G( ) G()不同

这里,由于损失函数是分段函数,不方便求导,所以我们可以通过边界值来求导,即损失函数(上界)公式为:
l o s s = ∑ i = 1 n w i I [ G ( x i ) ≠ y i ] ≤ ∑ i = 1 n w i e ( − y i f ( x ) ) loss = \sum_{i=1}^{n}w_{i}I[G(x_{i})\ne y_{i}] \le \sum_{i=1}^{n}w_{i}e^{(-y_{i}f(x))} loss=i=1nwiI[G(xi)=yi]i=1nwie(yif(x))

公式解释:

G ( x i ) ≠ y i G(x_{i})\ne y_{i} G(xi)=yi I 函数 = 1 I函数=1 I函数=1,此时 f ( x ) < 0 , y i = 1 f(x)<0,y_{i} =1 f(x)<0yi=1,即 e x > 1 e^{x}>1 ex>1
G ( x i ) = y i G(x_{i})= y_{i} G(xi)=yi I 函数 = 0 I函数=0 I函数=0,此时 f ( x ) > 0 , y i = 1 f(x)>0,y_{i} =1 f(x)>0yi=1,即 e x > 0 e^{x}>0 ex>0

现在假设我们已经得到了第 k − 1 k-1 k1轮的强学习器:
f k − 1 ( x ) = ∑ j = 1 k − 1 α j G j ( x ) f_{k-1}(x)=\sum_{j=1}^{k-1}\alpha _{j}G_{j} (x) fk1(x)=j=1k1αjGj(x)

那么,对于第 k k k轮的强化学习器,可以写为:
f k ( x ) = f k − 1 ( x ) + α k G k ( x ) = ∑ j = 1 k α j G j ( x ) f_{k}(x)=f_{k-1}(x)+\alpha _{k}G_{k}(x)=\sum_{j=1}^{k}\alpha _{j}G_{j} (x) fk(x)=fk1(x)+αkGk(x)=j=1kαjGj(x)

因此对于第m次迭代,损失函数为:
l o s s ( α m , G m ( x ) ) = ∑ i = 1 n w m − 1 , i e − ( y i f m ( x ) ) loss(\alpha _{m},G_{m}(x)) = \sum_{i=1}^{n}w_{m-1,i}e^{-(y_{i}f_{m}(x))} loss(αm,Gm(x))=i=1nwm1,ie(yifm(x))

公式解释:

w m − 1 , i w_{m-1,i} wm1,i为第m-1轮中,每个样本的权重值

f m ( x ) f_{m}(x) fm(x)为第m轮传入的样本

注意:这里第m-1轮次的参数是已知的

公式推导:

= ∑ i = 1 n w m − 1 , i e − ( y i ( f m − 1 ( x ) + α m G m ( x ) ) ) =\sum_{i=1}^{n}w_{m-1,i}e^{-(y_{i}(f_{m-1}(x)+\alpha _{m}G_{m}(x)))} =i=1nwm1,ie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ToBeCertain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值