以AdaBoost算法为例,详解集成学习的思想(一)

秉承在总结的过程中继续挖掘问题的心态,现在将学习到的知识做一个阶段性的总结。
本篇内容主要会讲到集成学习的思想,最后会将AdaBoost算法的思想进行简单的介绍,后期会介绍公式的推导。

很多的博客都是参照的周志华教授的西瓜书和李航教授的《统计学习方法》以及相关的论文、大牛们的博客。

我也不例外,但是会加入一些自己的思考,并且将里面内容的讲述顺序做一个修改。

集成学习可以用“三个臭皮匠,顶个诸葛亮”这句话来形象的描述,弱分类器经过组合,会形成一个强的分类器。

集成学习分为同质学习和异质学习。
同质学习:基学习器是同种类型的;异质学习:基学习器是不同种类型的。

根据个体学习器的生成方式,集成学习可以分为两大类,个体学习器间存在强依赖关系、必须串行生成的序列算法,代表为boosting算法;个体学习器之间不存在强的依赖关系、可同时生成的并行化方法,代表为随机森林算法。
例子
测试例1,2,3的值都是1,(a)中,单个分类器的准确率是66.6%,集成后的准确率为100%,个体学习器满足“好而不同”。
要获得好的集成,个体学习器应该 “好而不同”,即个体学习器要有一定的准确性,并且要有差异性。

如何产生并结合”好而不同“的个体学习器,是集成学习研究的核心。

随着集成中个体分类器数目T的增大,集成的错误率将指数级下降,最终趋向于零。
证明方法:Hoeffding不等式,考虑伯努利随机变量的特例公式。
证明引导
需被证明
证明过程
在这个地方,知乎上有人提出了这样一个问题:数量多,错误率大(接近99%)的基分类器组合起来也可以使集成误差小吗?
答:我们在证明的时候,假设基分类器的正确率是大于0.5(即e的最大值小于0.5),分类正确的数量为T/2上取整,这也就是说在这种情况下该式子才有意义。
也就是说,讨论的弱学习器指的是泛化性能略优于随机猜测的学习器。

但是以上的内容只能是一个定性的分析。上面的分析有一个关键的假设:基学习器的误差相互独立。在现实任务中,个体学习器是为解决同一个问题训练出来的,显然是不可能相互独立的。

个体学习器的准确性和多样性本身就存在冲突。(为什么?还没有学习)

那么,个体学习器为什么要”好而不同“呢?举个例子,就比如一个强大的团队,团队中的每一个成员必须是在各领域都是大牛,这样做出来的项目才是最好的。
如果每个基本分类器分类结果差不多,则集成后的分类器整体和单个分类器做出的决策实际上没有什么差异,这样集成后的分类器就难以保证比单个分类器有更好的性能。集成学习里的不同并不是指任务分工不同,而是指最后的输出结果尽可能的不同。

证明方法采用误差-分岐分解:
误差-分岐分解证明方法
上面最终的式子证明:个体学习器准确性越高、多样性越大,则集成越好。
以上的推导过程只适用于回归学习,难以直接推广到分类学习任务上去,那么分类上的”好而不同“应该怎样证明呢?

以下三个方面也是集成学习研究的重要内容,有多样性度量方法、多样性增强方法和结合策略。

1、多样性度量方法,用于度量集成中个体分类器的多样性。典型的做法是考虑个体分类器的两两相似/不相似性。
多样性度量方法
具体内容请查看西瓜书187页。
1)不合度量
2)相关系数
3)Q-统计量
4)k-统计量
2、多样性增强方法,一般思路是在学习过程中引入随机性,常见做法主要是对数据样本、输入属性、输出表示、算法参数进行扰动。
数据样本扰动通常是基于采样法,该方法对决策树、神经网络等不稳定基学习器很有效。但是对线性学习器、支持向量机、朴素贝叶斯、k近邻学习器等稳定基学习器不敏感。
输入属性扰动,从初始属性集中抽取若干个属性子集,再基于每个属性子集训练一个基学习器。
详细内容查看西瓜书188页。

3、结合策略:
学习器结合可能会从三个方面带来好处:
1)从统计方面,由于学习任务的假设空间很大,单学习器可能因误选造成泛化性能不佳
2)从计算方面,学习算法往往会陷入局部极小,结合后可降低糟糕局部极小的可能性
3)从表示方面,某些真实假设可能不在当前的假设空间当中,结合多个学习器相当于假设空间扩大,逼近真实的结果。
1)对数值型输出,常见的是平均法
平均法
集成学习中的各种结合方法都可以视为加权平均法的特例或变体。
加权平均法是集成学习研究的基本出发点。
不同集成学习方法可视为通过不同的方式来确定加权平均法中基学习器的权重。
个体学习器性能相差较大,建议使用加权平均法,性能相差较小,建议使用简单平均法。
2)对分类任务来说,常见的是投票法
投票法
若学习任务必须提供预测结果,绝对多数退化为相对多数。
不同类型的个体学习器产生不同类型的预测值。常见的有类标记(硬投票)和类概率(相当于对后验概率P(cj|x)的一个估计,称为软投票)。
3)学习法 stacking个体学习器称为初级学习器,用于结合的学习器称为次级学习器。具体方法:初始训练集D中训练初级学习器,将初级学习器的输出当作样例的输入特征(使用训练初级学习器未使用的样本,防止过拟合),初始样本的标记被当作样例的标记,训练次级学习器。

参考文献:
1、www.datakit.cn/blog/2014/11/02/Ensemble_learning.html
2、学习 ensemble learning 要如何开始呢?https://www.zhihu.com/question/29036379#answer-12595052
3、Kaggle Ensembling Guide https://mlwave.com/kaggle-ensembling-guide/
4、http://nooverfit.com/wp/集成学习和多样性的那些事儿/
5、《机器学习》和《统计学习方法》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值