集成学习(又称模型融合)就是结合若干个体分类器(基学习器)进行综合预测,各个个体学习器通常是弱学习器。集成学习相较于个体学习在预测准确率以及稳定性上都有很大的提高。
基本概念
弱学习器:泛化性能略优于随机猜测的学习器。直观地理解为预测准确率略高于50%。
同质学习:个体学习器是采用同类型的模型,亦称基学习器。例如随机森林中个体学习器都是决策树。
异质学习:个体学习器采用不同类型的模型,例如决策树与支持向量机结合。
分类
集成学习方法有“串行”以及“并行”两种方式。Boosting采用“串行”的方式,Bagging采用“并行”的方式。
- Boosting:逐步学习个体学习器,后一个学习的目标target建立在前面模型的基础上。例如提升树,后一个模型的target是前面所有模型的预测残差。
- Bagging:并行学习个体学习器,个体学习器之间彼此独立地进行学习。例如随机森林,从原样本中有放回抽取,构成多个训练样本,依此训练多个决策树。
为什么有效?
Dietterich对此进行了直观分析。
单个学习器产生预测误差的原因:
- 统计问题:存在多个假设在训练数据集上的误差接近,但是单个学习器仅从假设空间中挑出一个假设,可能误选导致假设不能覆盖未知数据。
- 计算问题:学习算法通常采用启发式,难以获取全局最优解。
- 表示问题:选取的模型不合理,假设空间不能覆盖真实的假设,学习效果与学习目标相差较大。
(图片摘自周志华《机器学习》)
集成学习对此进行改进:
- 统计上:保留多个与训练数据拟合较好的假设,综合预测可覆盖更多的未知数据。
- 计算上:多个个体学习器都有各自的局部最优解,那么结合起来可在一定程度上相互抵消。
- 表示上:多个个体学习器联合多个模型,使得表示范围更加广泛。
需要解决的问题
如果构建“好而不同”的个体学习器?
通过上文直观地分析,好的集成学习满足两个条件:
- 个体学习器预测准确率高。参考各个机器学习模型的学习方法。
- 个体学习器间差异大。
- 样本扰动:即对不同的个体学习器,尽可能使其输入样本不同
- 特征扰动:随机选取特征,使不同个体学习器输入特征不同
- 输出扰动:随机改变某些输出标记,将总的分类目标拆分成多个目标以方便扰动(例如对输出结果进行编码然后对编码随机扰动)
- 参数扰动:改变个体学习器的超参数
如何有效结合个体学习器的预测结果?
模型融合(blending) 是集成学习中最重要的问题之一,主要研究如何有效地结合个体学习器以提高总体的准确率。有两种融合方式:
- 均匀融合(uniform blending): 即简单地计算平均值或投票(多数表决)
- Stacking: 采用另一个学习器对个体学习器的预测结果进行学习,输出最终的学习结果。通常线性回归模型使用较多,即对个体学习器输出结果加权。
参考资料
周志华《机器学习》
注:如有不当之处,请指正。