【集成学习】笔记1:基本概念,Bagging与Boosting

学习视频来源:哔哩哔哩清华大学【数据挖掘:集成学习  教师:袁博】清华大学【数据挖掘:集成学习】_哔哩哔哩_bilibili

1.1 集成学习基础概念

集成学习(ensemble learning)是一种机器学习范式,通过使用多个学习器来解决同一问题,能够显著提高系统的准确率和泛化能力。它是一个框架,不是特定的某种算法。思想:按照某种策略汇集群体的智慧,效果大于个体的智慧(可以形成更优的决策)。

集成学习在机器学习领域中的地位(视频截图),如图1所示:

图1

机器学习-有监督学习 -分类问题-集成学习框架-boosting和bagging两个框架

集成学习还采用了Devide and Conquer(分而治之)思想:不同于使用神经网络拟合复杂的非线性分界面,Devide and Conquer思想是生成许多简单的分界面,用简单的分界面组合出复杂的分界面。

以分类问题为例,集成学习的意义在于多个分类器是“不同的”,这样才能集思广益。如果这些分类器是相同的,那么久白白浪费集成学习所占用的资源。“不同”可以体现在算法不同、分类器的初始参数、训练集、提取的特征不同(特征不同但是互相之间有关联)。

图2

 1.2 并行的Bagging与Stacking

Bagging即Bootstrap Aggregating,是集成学习的一种方式,代表有随机森林(多个不同的决策树组成随机森林)。它对已知的有限的数据集采用均匀、又放回的选取,可产生不同的训练样本用于训练不同的分类器,在测试时每个分类器都要有各自的输出,将这些输出按照少数服从多数的原则得到最终结果(取所有分类器结果的众数作为最终输出结果)。Bagging对于训练集和测试集的切分不同于传统分类器需要人为干预,因为可按照极限计算的方式,得出无穷多次选取后,数据集中每一个元素被抽取的概率近似2/3,那么没有被选中的近1/3样本自动作为测试集,注意同一个样本不能既作为训练样本又作为测试样本。以随机森林为例,如果数据集有100个特征可以用于分类,那么训练的时候,自动选取部分特征进行训练(如随机选择100的平方根个特征,即10个特征),使得每一棵决策树的属性不一样而产生“不同”。随机森林可以弱化、稀释每一棵决策树过学习对决策结果的负面影响。

 上述Bagging采用少数服从多数的方法选择最终结果,没有对每一个分类器的权重做出区分。如果区分分类器的权重,让这个权重也作为可训练的参数,有望提高模型的精度。Stacking算法就是按照这样的思路设计的,它包含2层训练,第1层训练和Bagging一模一样,标签为yi,得到k个分类器;第2层训练是为了得到这k个分类器的权重,标签仍然为yi。

图3

1.3 串行的Boosting

Boosting也是集成学习下的一大类算法,与并行的Bagging类算法不同的是,Boosting算法下的分类器是顺序生成并训练的,前后训练器之间有紧密的关联。

图4 Boosting训练流程1

基本流程如图4所示,以训练3个分类器解决二分类问题为例,先从数据集D中随机选取若干个元素生成分类器C1的训练集D1,再在数据集D中测试(【存疑】不确定是否挨个测试),分别选取部分测试结果正确的和错误的样本组成新的训练集D2用于分类器C2的训练。生成D2的目的是为了让C2更专注于学习C1分错了的样本。 样本被选中的概率被加权,如果上一级分类器将它分错了,那么下一级分类器选取它作为训练集的概率的权重相应增大(更倾向于选择学习上一级分错的样本),反之亦然。样本被选择时的权重不同,导致接下来的分类器更有针对性的进行训练。权重作为一个参数,也是被训练出来的,而不是人为设定。

图5 Boosting训练流程2

上述步骤后得到了分类器C1和C2,两者都在数据集D中测试,找出两者判断不同的那些样本组成新的训练集D3用于分类器C3的训练,C3作为C1和C2的判断出现分歧时的仲裁。【存疑】:O1和O2都分错了的样本,就能逃过D3的生成并再次用于训练,对模型的性能有什么影响?

上述3个分类器组成的模型的实际应用:三者都测试新的输入x,各自的输出为O1、O2、O3,当O1和O2相等的时候,模型的输出选取O1(此时O1=O2);当O1和O2不相等的时候,采取仲裁分类器C3的结果O3作为模型的输出。

图6 Boosting VS Bagging

相比于降低方差的Bagging(模型的方差指训练集的不同导致的模型生成的分类边界面的波动),Boosting更注重准确率的提升,因为它对于样本进行加权,每一级分类器更有针对性地训练。Boosting的每一级分类器可以比Bagging的每一个分类器简单许多,要求每一级分类器比随机分类的结果好就行,通过多级分类器的串行就能达到很好的分类效果。

以Boosting的代表算法AdaBoosting来生成包含3级子分类器的模型解决一个二分类问题。设每个分类器的分界面要么水平要么垂直。

                                

 (a)C1分界面及其分错的样本       (b)C2分界面及其分错的样本           (c)C3分界面

图7 C1、C2、C3分类器的实例

 训练得到分界面垂直的C1,红色虚线内是其分错的样本,将以很高的权重形成D2。以D2训练得到的C2的分界面为水平,红色虚线内是其分错的样本,将以很高的权重形成D3。以D3训练得到的C3的分界面为垂直。将三者结合起来,可得到如图8所示的模型,该模型准确率很高:

 图8 C1、C2、C3形成的最终分类器    

 这就是用AdaBoosting算法串行训练3个简单分类器形成复杂分界面的例子。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值