本系列将提供几种经典的集成学习方法,并应用于分类任务。可以有效增强神经网络的性能。
本章内容仅简要介绍下集成学习的知识,熟悉的可以直接略过。
代码实现的干货在文章最后的链接处。
一、集成学习的概念
集成学习(ensemble learning) 通过构建并结合多个学习器来完成任务,有时也被称为多分类器系统(multi-classifer system)————《机器学习》周志华
(学习器多指我们所说的分类器,比如支持向量机(SVM)、决策树、基于BP算法的神经网络等)
下面,简要的说说鄙人的理解,有问题请多多指出。
二、集成学习的作用
φ(◎ロ◎;)φ 怎么理解一中的概念呢?
如果把学习器看成异火
那么结合策略 就是融合异火的功法(焚决)
集成学习,就是通过功法让异火之间产生联系,并迸发出更强大的力量
在实际中的表现就是:一个分类器在一个样本上的准确率如果最高只能达到60%,通过集成学习的方式就可能让分类器达到60+%,70%甚至更高。
2.1 集成学习的优点
①准确率高:既然是融合了多种异火(分类器),如果威力没提升那岂不是鸡肋?
②提高泛化能力:因为数据集训练是要打乱的,打乱后划分的训练集和测试集不同,因此同一或者同种学习器在不同样本上训练后得到的学习器不同,不同类型的学习器在不同样本上训练后得到的学习器就更不同了。集成学习就把这么多种分布的学习器进行整合。看不懂?没事,那就再具体化,好比考试可以合作,集成学习相当于五个人(每个人都是学习器)复习了同样的内容然后考一张卷子,每个人对知识的接收可能会有差距。A不会的B试试,B不会的再换C试试,五个人都不会就算了下一道,总体下来总比一个人会的多吧(当然前提是大家学的都不差)?所以整合后的学习器容错率往往更高,最终的集成学习器具有更好的性能。
③可利用更多学习器的特性:集成是多种学习器的集成,你不一定只用五个同一种学习器,也可以是多种多样的混合型,某一种学习器也许对其中一个类别有很好的识别效果,另一种学习器则可能对别的类别有很好的区分能力,结合下就是互相补足了(类似取长补短)。如下图所示(西瓜书172页左右)。好而不同就是性能好,种类多样。测试例就可以等同于我们要区别的类(比如区别猫狗猪)
2.2 集成学习的缺点
①时间成本增加:这很容易理解,本来训练一个学习器,由于集成那自然要训练多个,时间是成倍的。也应和那句话:“天下没有免费的午餐”,准确率的提升是通过牺牲时间成本换取的。
②算力开销和复杂度上升
三、结合策略(简要了解)
在得到一堆学习器后需要整合,而这整合的方式我们称之为结合策略。主要的结合策略有一下几种:
①简单平均法
②投票法(绝对多数投票法、相对多数投票法、加权投票法)
③学习法(用于数据量大的时候)
四、常见的集成学习方法
①Boosting,扩展算法adaboost(机器学习十大算法之一👍可以说,Adaboost的出现才让boosting算法真正意义上实现)
②Bagging【集成学习:Bagging(bootstrap sampling)】
论文出处
③Random forest(随机森林:bagging扩展算法)
④Stacking