开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第十五天,点击查看活动详情
总结:此文为12月更文计划第十五天第二十八篇。
集成学习
面对一个机器学习问题,通常有两种策略。一种是研发人员尝试各种模型,选择其中表 现最好的模型做重点调参优化。这种策略类似于奥运会比赛,通过强强竞争来选拔最优的运 动员,并逐步提高成绩。另一种重要的策略是集各家之长,如同贤明的君主广泛地听取众多 谋臣的建议,然后综合考虑,得到最终决策。后一种策略的核心,是将多个分类器的结果统 一成一个最终的决策。使用这 类策略的机器学习方法统称为集成学习。其中的每个单独的 分类器称为基分类器
1 问题 集成学习分哪几种?他们有何异同?
Boosting(串行)
Boosting 方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。
它的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,
给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。
Boosting 的过程很类似于人类学习的过程,我们学习新知识的过程往往是迭代
式的,第一遍学习的时候,我们会记住一部分知识,但往往也会犯一些错误,对于这些错误,
我们的印象会很深。第二遍学习的时候,就会针对犯过错误的知识加强学习,以减少类似的
错误发生。不断循环往复,直到犯错误的次数减少到很低的程度。
Bagging(并行)
Bagging 与 Boosting 的串行训练方式不同,Bagging 方法在训练过程中,各基分类器之间无强 依赖,可以进行并行训练。其中很著名的算法之一是基于决策树基分类器的随机森林 (Random Forest)。为了让基分类器之间互相独立,将训练集分为若干子集(当训练样本 数量较少时,子集之间可能有交叠)。Bagging 方法更像是一个集体决策的过程,每个个体 都进行单独学习,学习的内容可以相同,也可以不同,也可以部分重叠。但由于个体之间存 在差异性,最终做出的判断不会完全一致。在最终做决策时,每个个体单独作出判断,再通 过投票的方式做出最后的集体决策
两者之间的区别
Boosting 方法是通过逐步聚焦于基分类器分错的样本,减小集成分类器的偏差。Bagging 方 法则是采取分而治之的策略,通过对训练样本多次采样,并分别训练出多个不同模型,然后 做综合,来减小集成分类器的方差。假设所有基分类器出错的概率是独立的,在某个测试样 本上,用简单多数投票方法来集成结果,超过半数基分类器出错的概率会随着基分类器的 数量增加而下降。
区别:
1. 训练样本
· Boosting:每一轮的训练集都是原始训练集,只是每次训练后会根据本轮的训练结果调整训练集中的各个样本的权重,调整完权重的训练集用于下一轮的训练.
· Bagging:每个训练集都是以原始训练集中有放回的选取出来的,每个训练集各不相同且相互独立.
2. 样本权重不同
· Boosting:根据每轮的训练不断调整权值,分类错误的样本拥有更高的权值.
· Bagging:使用Boostraping的方式均匀抽样,每个样例权重相等
3. 分类器权重
· Boosting:每个弱分类器都有响应的权重,对分类误差小的分类器有更大的权重,结果是基分类器加权结合.
· Bagging:所有若分类器权重相同,对分类任务使用简单投票法,对回归任务使用简单平均法决定最终结果.
4. 并行计算
· Boosting:各个预测函数只能顺序生成,因为每一个模型的训练永远建立在前一个模型的基础上.
· Bagging:各个预测函数可以并行生成,因为数据集相互独立,每个模型之间也独立,没有序列关系.
5. 从偏差-方差
· Boosting关注于降低偏差,Bagging关注于降低方差