集成学习算法的思想、通过集成学习提高整体泛化能力的前提条件、如何得到独立的分类器Bagging、Boosting、Stacking算法

集成学习算法

Ensemble learning algorithm

目的:让机器学习的效果更好,单个的分类器如果表现的好,那么能不能通过使用多个分类器使得分类效果更好呢?或者如果单个分类器分类效果不如人意,那么是否能够通过使用多个分类器来进一步提升分类效果呢?

通过集成学习可以提高整体的泛化能力,但是这种提高是有前提条件的。

通过集成学习提高整体泛化能力的前提条件:

  • 分类器之间是有差异的
  • 每个分类器的精度必须大于0.5

如果使用的分类器没有差异,那么集成起来的分类是没有变化的。如果分类器的精度 P &lt; 0.5 P&lt;0.5 P<0.5,随着集成规模的增加,分类的精度将不断下降,如果分类器的精度 P &gt; 0.5 P&gt;0.5 P>0.5,那么最终分类的精度可以趋近于1。
《集成学习算法的思想、通过集成学习提高整体泛化能力的前提条件、如何得到独立的分类器Bagging、Boosting、Stacking算法》

集成学习的基本思想

集成学习是在对数据进行分类的时候,把单个分类器集成起来,通过对多个分类器的分类结果进行某种组合来得到最终的分类,从而提升分类效果。就像高考阅卷一样,单个分类器就相当于同一份卷子只给一个老师阅卷,最终结果就只由这一个老师来决定。而集成学习的方法就相当于同一份卷子给至少两个老师阅,最后通过”某种组合”,比如:将老师的批阅成绩取均值或者其他方法。
《集成学习算法的思想、通过集成学习提高整体泛化能力的前提条件、如何得到独立的分类器Bagging、Boosting、Stacking算法》
《集成学习算法的思想、通过集成学习提高整体泛化能力的前提条件、如何得到独立的分类器Bagging、Boosting、Stacking算法》

如何得到多个独立的分类器

当然可以用不同的机器学习算法训练模型,比如决策树、KNN、逻辑回归、线性回归、贝叶斯等,但是这些分类器都不是独立的,他们会犯相同的错误因为许多分类器是线性模型,他们最终的投票结果并不会改进模型的预测结果。既然这些不同算法得到的分类器都不是独立的,那么可以通过将数据分成几部分,每个部分训练一个模型,最后将模型的结果进行整合。这样做的优点是不容易出现过拟合,缺点是数据量不足可能导致训练出来的模型泛化能力差。最常用的集成学习算法就是bagging算法和boosting算法,这两个算法可以得到独立的分类器。还有stacking算法可以聚合多个分类或回归模型可以分阶段来操作。

    原文作者:志存高远脚踏实地
    原文地址: https://blog.csdn.net/weixin_44451032/article/details/100068957
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞