Python机器学习之AdaBoost算法
算法概述
AdaBoost是英文AdaptiveBoosting(自适应增强)的缩写,由YoavFreund和RobertSchapire在1995年提出。
AdaBoost的自适应在于前一个基本分类器分类错误的样本的权重会得到加强,加强后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮训练中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数时停止训练。
AdaBoost算法是一种集成学习的算法,其核心思想就是对多个机器学习模型进行组合形成一个精度更高的模型,参与组合的模型称为弱学习器。
算法原理
AdaBoost的核心思想是针对同一训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强大的最终分类器(强分类器)。也就是通过一些手段获得多个弱分类器,将它们集成起来构成强分类器,综合所有分类器的预测得出最终的结果。
AdaBoost算法本身是通过改变数据分布来实现的,它根据每次训练集中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。
算法优化
权值更新方法的改进
在实际训练过程中可能存在正负样本失衡的问题,分类器会过于关注大容量样本,导致分类器不能较好地完成区分小样本的目的。此时可以适度增大小样本的权重使重心达到平衡。在实际训练中还会出现困难样本权重过高而发生过拟合的问题,因此有必要设置困难样本分类的权值上限。
训练方法的改进
AdaBoost算法由于其多次迭代训练分类器的原因,训练时间一般会比别的分类器长。对此一般可以采用实现AdaBoost的并行计算或者训练过程中动态剔除掉权重偏小的样本以加速训练过程。
多算法结合的改进
除了以上算法外,AdaBoost还可以考虑与其它算法结合产生新的算法,如在训练过程中使用SVM算法加速挑选简单分类器来替代原始AdaBoost中的穷举法挑选简单的分类器。
以上内容为大家介绍了Python机器学习之AdaBoost算法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!