上车|从一个分类案例领教“集成学习”的威力
来源: | 作者:k君 | 发布时间: 2017-03-22 | 304 次浏览 | 分享到:

世上没有一个分类器解决不了的分类问题

n

如果有,就多用几个

n

——TK

nnn
nn正文开始前,先讲个故事。nn场景:理综开卷考试:(选择题;试卷下发限时一天;答题过程不限)nn人物:学渣A、学渣B、学渣Cnn经过:nn学渣A单打独斗,很快交卷,不出意外考砸了;nn学渣B叫来很多“学弱”,每道题都要经讨论决定答案。最终B拿到比A高很多的分数;但由于众口不一,浪费了B大量打游戏的时间;nn学渣C只叫来为数不多的几个偏科“学弱”,他们每人都有自己最擅长的科目。C做好自己确定的题目后,把卷子扔给其他人就去打游戏了,最后一个人答完,C随便看了看就交卷了,结果成绩居然比B还高了一些,这让花费了大量时间、欠下众多人情的B愤愤不平……nn如果将上述场景类比到数据科学领域,A的做法是传统的训练分类器的办法,精度低,无法最大程度掌握训练数据中的信息,所以在测试数据上的表现往往不尽如人意;于是科学家们秉承“人多力量大”的基本原则,就像上述B和C一样,尝试着运用了多训练器一起解决问题的办法,这就是“集成学习”的思想雏形。nnn

图1 传统方法vs集成学习

n       同样是叫来了自己的朋友们,但是B和C采用了完全不同的策略来完成那份试卷。如果把“叫朋友”类比到机器学习领域的话,两位同学的策略正对应着“集成思想”孕育出的两大利器:nnB同学的“人海战术”---Bagging(Bootstrap Aggregation)nnC同学的“逐个击破”---Boostingnn作者接下来会根据自己对这两个算法的理解,力求以通俗的语言辅以图解来解释这两个“集成学习”中的著名思想。读者可以类比于场景中B、C同学的策略来辅助理解。(下面内容中相关术语均针对“分类”问题)nnB同学的“人海战术”---Baggingnn全称Bootstrap Aggregation,是一种在原始数据集上通过有放回抽样重新选出N个新数据集来训练分类器的集成技术。nnn

图2 Bagging流程

n       如图2所示,一次完整的Bagging迭代过程可以分为以下两步:nn①对原始数据(M个观测记录)进行m次随机有放回抽样,生成一份训练样本(m个观测记录"