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