在机器学习中,咱们讲了不少不一样的算法。那些算法都是单打独斗的英雄。而集成学习就是将这些英雄组成团队。实现“3 个臭皮匠顶个诸葛亮”的效果。html
本文将介绍集成学习的 2 种主要思路:bagging、boosting。算法
集成学习归属于机器学习,他是一种「训练思路」,并非某种具体的方法或者算法。bootstrap
现实生活中,你们都知道「人多力量大」,「3 个臭皮匠顶个诸葛亮」。而集成学习的核心思路就是「人多力量大」,它并无创造出新的算法,而是把已有的算法进行结合,从而获得更好的效果。api
集成学习会挑选一些简单的基础模型进行组装,组装这些基础模型的思路主要有 2 种方法:dom
Bagging 的核心思路是——民主。机器学习
Bagging 的思路是全部基础模型都一致对待,每一个基础模型手里都只有一票。而后使用民主投票的方式获得最终的结果。函数
大部分状况下,通过 bagging 获得的结果方差(variance)更小。学习
具体过程:3d
举例:rest
在 bagging 的方法中,最广为熟知的就是随机森林了:bagging + 决策树 = 随机森林
《一文看懂随机森林(4个步骤+4种方式评测+10个优缺点)》
Boosting 的核心思路是——挑选精英。
Boosting 和 bagging 最本质的差异在于他对基础模型不是一致对待的,而是通过不停的考验和筛选来挑选出「精英」,而后给精英更多的投票权,表现很差的基础模型则给较少的投票权,而后综合全部人的投票获得最终结果。
大部分状况下,通过 boosting 获得的结果误差(bias)更小。
具体过程:
举例:
在 boosting 的方法中,比较主流的有 Adaboost 和 Gradient boosting 。
样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每一个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
样例权重:
Bagging:使用均匀取样,每一个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
预测函数:
Bagging:全部预测函数的权重相等。
Boosting:每一个弱分类器都有相应的权重,对于分类偏差小的分类器会有更大的权重。
并行计算:
Bagging:各个预测函数能够并行生成
Boosting:各个预测函数只能顺序生成,由于后一个模型参数须要前一轮模型的结果。
差异部份内容转自《Bagging和Boosting 概念及区别》本文首发自 产品经理的 AI 学习库 easyai.tech