机器学习中的集成学习
- 串行集成
子学习器间存在强依赖关系,典型的是boosting系列: GBDT(两种高效实现:Xgboost----高效并行实现(代价函数引入二阶展开并加入正则项),LightGBM---GBDT算法的(多机)分布式高效框架) - 并行集成
子学习器之间不存在强依赖关系,典型的是Bagging系列:如Random Forest
可以看到,基本都是以决策树作为子学习器。
为什么要做集成学习?
假设基学习器之间的误差相互独立(好而不同),那么根据 霍夫丁hoffding不等式,随着集成中个体分类器的数目增大,集成模型的错误率呈指数下降,最终趋于0.
但是显然,这个假设不成立。。
Bagging
boostrap aggrating---自助采样 聚合
动机
既然要好而不同,那么就从训练数据集入手,每次只采样部分样本作为训练集并训练,通过多次采样训练就得到了多个尽可能不同的样本。
优点:
- 不加修改直接扩展到分类和回归任务
- 可以做泛化误差的包外估计
- 包外样本还可以用来辅助剪枝或这深度学习的earlystop减少过拟合风险。
bagging主要是对多个模型做夹权投票的思想,关注单模型算法在样本上的方差影响,降低方差。尤其在不剪枝的决策树及神经网络这种易受样本扰动的学习器上效果明显。