集成学习的作用
采用集成学习的原因有以下四点:
-
分类器间存在一定的差异性,这会导致分类的边界不同,也就是说分类器是一个比较专精的专家,它有它自己一定的适用范围和特长。那么通过一定的策略将多个弱分类器合并后,就可以拓展模型的适用范围,减少整体的错误率,实现更好的效果。
-
对于数据集过大或者过小,过大会导致训练一个模型太慢,过小则会导致训练不充分,在这种情况下可以分别对数据集进行划分和有放回的操作产生不同的数据子集,然后使用数据子集训练不同的分类器,最终再将不同的分类器合并成为一个大的分类器。
注:这种方案的优势就在于,提高了准确度和训练速度,使得之前很难利用的数据得到了充分的利用 -
如果数据的划分边界过于复杂,使用线性模型很难描述情况,那么可以训练多个模型,然后再进行模型的融合。
注:这种特性就好比当初素描老师教我们画圆一样,画一个正方形,再用一堆小直线一点一点切成圆形。 -
对于多个异构的特征集的时候,很难进行融合,那么可以考虑每个数据集构建一个分类模型,然后将多个模型融合。
集成学习的原理
-
集成学习是通过将多个单个学习器集成/组合在一起,使它们共同完成学习任务。对于训练集数据,通过训练若干个个体学习器,通过一定的结合策略,就可以最终形成一个强学习器,以达到博采众长的目的。
1)如何得到若干个个体学习器:- 第一种是所有的个体学习器都是一个种类的,是同质的。比如都是决策树个体学习器,或者都是神经网络个体学习器。第二种是所有的个体学习器不全是一个种类的,是异质的。比如我们有一个分类问题,对训练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某种结合策略来确定最终的分类强学习器。
- 同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。
2)学习器的结合策略
- 投票法
- 平均法
- 学习法
Bagging和Boosting的总结
-
样本选择:
Bagging算法是有放回的随机采样
Boosting算法是每一轮训练集不变,只是训练集中的每个样例在分类器中的权重发生变化,而权重根据上一轮的分类结果进行调整 -
样例权重:
Bagging使用随机抽样,样例的权重
Boosting根据错误率不断的调整样例的权重值, 错误率越大则权重越大 -
预测函数:
Bagging所有预测模型的权重相等
Boosting算法对于误差小的分类器具有更大的权重 -
并行计算:
Bagging算法可以并行生成各个基模型
Boosting理论上只能顺序生产,因为后一个模型需要前一个模型的结果 -
Bagging是减少模型的variance(方差),Boosting是减少模型的Bias(偏度)。
Bagging里每个分类模型都是强分类器,因为降低的是方差,方差过高需要降低是过拟合。Boosting里每个分类模型都是弱分类器,因为降低的是偏度,偏度过高是欠拟合。