乐趣区

关于算法:浅析集成学习的策略

一. 简述

面对一个机器学习问题,通常有两种策略。一种是开发人员尝试各种模型,抉择其中体现最好的模型做重点调参优化。这种策略相似于奥运会较量,通过强强竞争来提拔最优的运动员,并逐步提高问题。另一种重要的策略是集各家之长,如同贤明的君主宽泛地听取泛滥谋臣的倡议,而后综合思考,失去最终决策。后一种策略的外围,是将多个分类器的后果对立成一个最终的决策。应用这类策略的机器学习办法统称为集成学习。其中的每个独自的分类器称为基分类器。

俗语说“三个臭皮匠,顶一个诸葛亮”,基分类器就相似于“臭皮匠”,而之前介绍的很多简单模型能够认为是“诸葛亮”。即便繁多一个“臭皮匠”的决策能力不强,咱们无效地把多个“臭皮匠”组织联合起来,其决策能力很有可能超过“诸葛亮”。而如何将这些基分类器集成起来。

集成学习不仅在学界的钻研热度不减,在业界和泛滥机器学习比赛中也有十分胜利的利用。例如在 Kaggle 比赛中所向无敌的 XGBoost,就是胜利利用集成学习思维的一个例子。

二. Bossting

Boosting 办法训练基分类器时采纳串行的形式,各个基分类器之间有依赖。它的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,依据各层分类器的后果的加权失去最终后果。Boosting 的过程很相似于人类学习的过程,咱们学习新常识的过程往往是迭代式的,第一遍学习的时候,咱们会记住一部分常识,但往往也会犯一些谬误,对于这些谬误,咱们的印象会很深。第二遍学习的时候,就会针对犯过谬误的常识增强学习,以缩小相似的谬误产生。一直周而复始,直到犯错误的次数缩小到很低的水平。

image.png

三. Bagging

Bagging 与 Boosting 的串行训练形式不同,Bagging 办法在训练过程中,各基分类器之间无强依赖,能够进行并行训练。其中很驰名的算法之一是基于决策树基分类器的随机森林(Random Forest)。为了让基分类器之间相互独立,将训练集分为若干子集(当训练样本数量较少时,子集之间可能有交叠)。Bagging 办法更像是一个个体决策的过程,每个个体都进行独自学习,学习的内容能够雷同,也能够不同,也能够局部重叠。但因为个体之间存在差异性,最终做出的判断不会完全一致。在最终做决策时,每个个体独自作出判断,再通过投票的形式做出最初的个体决策。

image.png

咱们再从打消基分类器的偏差和方差的角度来了解 Boosting 和 Bagging 办法的差别。基分类器,有时又被称为弱分类器,因为基分类器的错误率要大于集成分类器。基分类器的谬误,是偏差和方差两种谬误之和。偏差次要是因为分类器的表达能力无限导致的系统性谬误,体现在训练误差不收敛。方差是因为分类器对于样本分布过于敏感,导致在训练样本数较少时,产生过拟合。

Boosting 办法是通过逐渐聚焦于基分类器分错的样本,减小集成分类器的偏差。Bagging 办法则是采取分而治之的策略,通过对训练样本屡次采样,并别离训练出多个不同模型,而后做综合,来减小集成分类器的方差。假如所有基分类器出错的概率是独立的,在某个测试样本上,用简略少数投票办法来集成后果,超过半数基分类器出错的概率会随着基分类器的数量减少而降落。

图是 Bagging 算法的示意图,Model 1、Model 2、Model 3 都是用训练集的一个子集训练进去的,独自来看,它们的决策边界都很波折,有过拟合的偏向。集成之后的模型(红线所示)的决策边界就比各个独立的模型平滑了,这是因为集成的加权投票办法,减小了方差。

image.png

四. 总结

Boosting 是一种框架算法, 次要是通过对样本集的操作取得样本子集, 而后用弱分类算法在样本子集上训练生成一系列的基分类器。他能够用来进步其余弱分类算法的识别率, 也就是将其余的弱分类算法作为基分类算法放于 Boosting 框架中, 通过 Boosting 框架对训练样本集的操作, 失去不同的训练样本子集, 用该样本子集去训练生成基分类器; 每失去一个样本集就用该基分类算法在该样本集上产生一个基分类器, 这样在给定训练轮数 n 后, 就可产生 n 个基分类器, 而后 Boosting 框架算法将这 n 个基分类器进行加权交融, 产生一个最初的后果分类器, 在这 n 个基分类器中, 每个单个的分类器的识别率不肯定很高, 但他们联结后的后果有很高的识别率, 这样便进步了该弱分类算法的识别率。

退出移动版