集成学习的知识整理
集成学习
思维图
什么是集成学习?集成学习:通过某种策略来组合多个弱学习器来学习任务。
因此,我们就需要考虑以下几个问题:
- 选取什么弱学习器?
- 什么策略?
方法种类
集成学习最有代表性的两种boosting(结构:串行)和bagging(结构:并行).
集成方法原理
误差和方差
在机器学习的领域,我们评价一个模型是否能解决特定的问题可以有两个角度:定性和定量
-
定性:过拟合、欠拟合;
-
有监督学习的定量:偏差、方差,从 “泛化误差=偏差+方差“ 来理解集成学习;
那什么是偏差,什么是方差?
偏差:输出平均值与真实值的偏差,偏差高表示欠拟合,原因通常是先验假设是错误的
方差:用n个m样本训练n个模型,所以对同一个样本有n个输出值,方差大表示过拟合,原因通常是由于模型复杂度过高,把m个样本都记住了,导致泛化能力有点弱,没有学到真正的特征,只是针对了不同的训练集进行了记忆性学习。
原理
Bagging降低方差,Boosting降低偏差。
Bagging,再抽样,然后每个样本上训练出来的模型取平均,方差减小到原来的\(\frac{1}{n}\).
前提是n个随机变量完全独立,但n个模型之间不可能完全独立,解决办法:随机森林随机选取属性子集、训练集重采样
Boosting,串行结构,上一个弱分类器的错误或者残差作为下一个弱分类器的输入,本身在不断减小损失函数,因此偏差变小,但因为弱分类器之间是强相关的,因此不会对降低方差有任何作用。
可选取的基分类器
-
决策树
-
神经网络
选取的原因:
”不稳定学习器“更适合,“不稳定”就是数据样本的扰动对于学习器影响较大,因此引入了随机性。
决策树因为不仅具备”不稳定性“,而且将样本的权重整合到训练过程同时,节点分裂的过程中,随机选取特征子集。因此决策树是最常用的基分类器。
集成学习例子
Boosting算法代表
GBDT:梯度提升决策树
这个算法是基于决策树预测的残差进行迭代学习。常用的决策树为CART。
组合策略:把所有树的预测值加起来,得到最终的预测结果。
为啥使用梯度提升?梯度提升算法原理?
优缺点:
Adaboost:基于错误率的提升方法
训练方式:对分类正确的样本降低权重,对分类错误的样本升高权重或者保持权重不变。
组合策略:加权投票,错误率高的基分类器,权重为负,错误率低的基分类器,权重为正。
因此错误率的计算方式会成为一个问题:
Bagging算法代表
随机森林
随机森林通过数据集和特征的随机抽样并行构建完整的决策树。这里的随机性可以确保单个树之间的相关性较低,可以减少偏差风险,减少过拟合的问题,做出正确预测的可能性也会增加。随机森林在投票出结果的过程中会限制误差来保护每个树不互相伤害。
缺点
- 随机森林准确性优于决策树,但低于xgboost等梯度提升树集成。
- 随机森林包含大量决策树,速度比xgboost速度慢。
XGBoost库
这是一个实现了GBDT算法的开源机器学习项目库GitHub项目地址。
相比GBDT,加强的地方:
- GBDT的实现与拓展改进的项目
- 显式加入正则项来控制模型复杂度
- 同时使用一阶和二阶导数信息
- 支持多种类型基分类器,包括线性分类器
- 支持对数据的采样
- 自动学习出缺失值的处理策略
转载联系邮箱:liangfychn@163.com
参考
[1] 诸葛越. 白面机器学习. 人民邮电出版社, 2018.
[2] Tianqi Chen and Carlos Guestrin. XGBoost: A Scalable Tree Boosting System. In SIGKDD, 2016