姓名:黄睿
学号:22011110004
学院:通信工程学院
节选自:https://blog.csdn.net/coffee_cream/article/details/108696981?spm=1001.2014.3001.5502
【嵌牛导读】本文初步介绍集成学习的初步理解
【嵌牛鼻子】集成学习定义、理解、分类学
【嵌牛提问】集成学习如何运作?
【嵌牛正文】
集成学习(Ensemble Learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
根据个体学习器的生成方式,目前的集成学习方法大致分成两大类:
个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表算法为:Boosting
个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表方法为:Bagging
集成学习一般可分为以下三个步骤:
找到误差互相独立的基分类器
训练基分类器
合并基分类器的结果
合并基分类器的方法有 voting 和 stacking 两种
voting 是用投票的方式,将获得最多选票的结果作为最终的结果
stacking 是用串行的方式,把前一个基分类器的结果输出到下一个分类器;将所有基分类器的输出结果相加(或者用更复杂的算法融合,比如把各基分类器的输出作为特征,使用逻辑回归作为融合模型进行最后的结果预测)作为最终的输出。
1 Boosting
Boosting 是一族可将弱学习器提升为强学习器的算法,这类算法的工作机制大致为:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直到基学习器数目达到事先指定的值 T,最终将这 T 个基学习器进行加权结合。
Boosting 方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。
它的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。
Boosting 的过程很类似于人类学习的过程,我们学习新知识的过程往往是迭代式的,第一遍学习的时候,我们会记住部分知识,但往往也会犯一些措误,对于这些错误,我们的印象会很深,第二遍学习的时候,就会针对犯过错误的知识加强学习,以减少类似的错误发生。不断循环往复,直到犯错误的次数减少到很低的程度
2 Bagging
Bagging 这个名字是由 Bootstrap AGGregatING 缩写而来,是并行式集成学习方法最著名的代表。
Bagging 和 Boosting 的串行训练方式不同,Bagging 方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练,其中最著名的算法之一是基于决策树基分类器的随机森林(Random Fareast)。
从名字也可以看出,Bagging 直接基于自助采样法,给定包含 m 个样本的数据集,先随机取出一个样本放到采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍可以被选中,这样经过 m 次随机采样操作,我们就得到了含 m 个样本的采样集。照这样,我们可以采样出 T 个含 m 个训练样本的采样集。基于每个采样集训练出一个基学习器,最后将这些基学习器进行结合,这就是 Bagging 的基本流程。
Bagging 方法更像是一个集体决策的过程,每个个体都可以进行单独学习,学习的内容可以相同,也可以不同,也可以部分重叠。但由于个体之间存在差异性,最终做出的判断不会完全一致。在最终做决策时,每个个体单独做出判断,再通过投票的方式做出最后的集体决策。