美文网首页
基于树的集成学习简介(bagging, boosting, st

基于树的集成学习简介(bagging, boosting, st

作者: ebook_sea | 来源:发表于2020-07-09 10:36 被阅读0次

基本思路:集成学习的思路是通过合并多个模型来提升机器学习的技能,相对于单个模型通常可以获得更好的预测结果。

分类1:用于减少方差的bagging, 用于减少偏差的boosting, 用于提升预测结果的stacking

分类2: 

串行集成方法,这种方法串行地生成基础模型(如AdaBoost)。串行集成的基本动机是利用基础模型之间的依赖。通过给错分样本一个较大的权重来提升性能。

并行集成方法,这种方法并行地生成基础模型(如Random Forest)。并行集成的基本动机是利用基础模型的独立性,因为通过平均能够较大地降低误差。

Bagging(袋装):训练集随机采样

Bagging是引导聚合的意思。减少一个估计方差的一种方式就是对多个估计进行平均。例如,随机选择训练集的不同子集,训练M个不同的树,然后求平均计算最后的结果。

Bagging使用装袋采样来获取数据子集训练基础学习器。通常分类任务使用投票的方式集成,而回归任务通过平均的方式集成。

tips1: 随机选择80%的数据作为训练集,同样随机选择80%的特征进行训练。

tips2: 整合稳定学习器对于提升泛化性能没有帮助。

tips3: 最常用的集成算法原模型是随机森林。

Boosting(提高):加权错分数据迭代弱分类器

Boosting是指通过算法集合将弱学习器(弱学习器是指仅比随机猜测好一点点的模型)转换为强学习器。boosting的主要原则是训练一系列的弱学习器,例如较小的决策树,进行不断的迭代,且在训练的早期对于错分数据给予较大的权重。

对于训练好的弱分类器,如果是分类任务按照权重进行投票,而对于回归任务进行加权,然后再进行预测。boosting和bagging的区别在于是对加权后的数据利用弱分类器依次进行训练。

梯度树提升(Gradient Tree Boosting)是一个boosting算法在损失函数上的泛化。能够用于分类和回归问题。Gradient Boosting采用串行方式构建模型。

每新增一个决策树hm(x)都尽可能的选择是的当前模型Fm-1(x)损失最小的那个:

注意:分类和回归使用的损失函数有所差别。

Stacking(堆叠):

Stacking是通过一个元分类器或者元回归器来整合多个分类模型或回归模型的集成学习技术。基础模型利用整个训练集做训练,元模型将基础模型的特征作为特征进行训练。

基础模型通常包含不同的学习算法,因此stacking通常是异质集成。例如分别在K-NN,Random Forest,Naive Bayes做训练和预测,然后将其输出结果作为特征,利用逻辑回归作为元模型进一步训练。如图所示,stacking集成的结果由于每个基础模型,并且没有过拟合。

Code:https://github.com/vsmolyakov/experiments_with_python/blob/master/chp01/ensemble_methods.ipynb

Reference:https://blog.statsbot.co/ensemble-learning-d1dcd548e936

相关文章

网友评论

      本文标题:基于树的集成学习简介(bagging, boosting, st

      本文链接:https://www.haomeiwen.com/subject/stkjcktx.html