网站首页 > 技术文章 正文
最近在打算法竞赛的时候用到了集成算法,效果还不错,索性就总结了一篇集成算法的文章,希望能帮到正在转行的数据分析师们。
集成算法核心思想
集成算法的核心思想是通过构建并结合多个学习器来完成学习任务,也就是通俗意义上的三个“臭皮匠”顶个“诸葛亮”。
关注问题:1、如何产生一组“个体学习器”?
2、如何利用某种策略将“个体学习器”结合起来?
集成算法种类
根据个体学习器的生成方式,最常用的集成算法可以分为两大类,即个体学习器间存在强依赖关系(多项式学习算法)必须串行生成的序列化算法【Boosting方法,代表算法:Adaboost算法和Boosting tree】,以及个体学习器之间不存在强依赖关系,通过并行生成的集成算法【bagging方法,代表算法:随机森林(Randon Forest)】
Bagging
1、算法原理:
- 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
- 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
- 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
2、采样策略:
自助采样法,有放回抽样n次得到样本量为n的训练样本集用于每次基分类器的训练
3、基学习器组合策略:
对于分类问题,基分类器采用投票法得到结果,对于回归问题,通过对基分类器的预测值取平均值得到结果。
4、算法步骤:
4、随机森林
4.1算法原理:
以决策树作为基学习器构建bagging集成,并在决策树的训练过程中引入随机属性选择。
4.2随机性:
随机森林的随机性体现在样本的随机性和特征选择的随机性
Boosting
1、算法原理:
通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提升分类性能。大多数的提升方法都是改变训练数据的概率分布(权值),针对不同的训练数据分布调用弱分类算法学习一系列弱分类器。
2、Adaboost
2.1算法原理:
- 提高前一轮弱分类器错误分类样本的权值,降低正确分类样本的权值
- 弱分类器的组合,采用加权多数表决的方法,具体地,加大分类误差小的弱分类器的权值,使其在表决中起大作用,减小分类误差大的弱分类器权值
2.2算法步骤:
2.3机器学习视角的解释:
ModelSet:加法模型,基学习模型的线性组合
LossFunction:指数损失函数【分类问题】
优化策略:前向分步算法
3、提升树
3.1核心思想:
以分类树或回归树为基本分类器的提升方法,加法模型,与前向分步算法,以决策树为基分类器的提升方法,串联决策树模型,第一个决策树拟合具体数学,以后的决策树拟合前一个决策树的残差。
3.2算法步骤:
3.3机器学习视角的解释:
ModelSet:加法模型,基学习模型的线性组合
LossFunction:指数损失函数【分类问题】、平方误差损失函数【回归问题】
优化策略:前向分步算法
常见面试问题
1、bagging与boosting的区别
- 样本选择上:Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
- 样例权重:Bagging:使用均匀取样,每个样例的权重相等Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
- 预测函数:Bagging:所有预测函数的权重相等。Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
- 并行计算:Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
2、随机森林与GDBT(提升树)的区别:
- 随机森林采用的bagging思想,而GBDT采用的boosting思想。这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该算法对训练集训练t轮,每次训练后,对训练失败的样例赋以较大的权重),因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各训练集之间相互独立,弱分类器可并行,而Boosting的训练集的选择与前一轮的学习结果有关,是串行的。
- 组成随机森林的树可以是分类树,也可以是回归树;而GBDT只能由回归树组成。
- 组成随机森林的树可以并行生成;而GBDT只能是串行生成。
- 对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来。
- 随机森林对异常值不敏感;GBDT对异常值非常敏感。
- 随机森林对训练集一视同仁;GBDT是基于权值的弱分类器的集成。
- 随机森林是通过减少模型方差提高性能;GBDT是通过减少模型偏差提高性能。
- 上一篇: 集成学习算法是什么?如何理解集成学习?
- 下一篇: 超越个体的智慧:机器学习中的集成学习算法解析
猜你喜欢
- 2024-09-27 座舱内感知系统的算法及集成方式 智能座舱测试包含哪些
- 2024-09-27 新技术 | 交流电机无级调速新架构DAAC?,摆脱复杂算法设计
- 2024-09-27 计算机视觉十大算法:深度探索与未来展望 一、引言 ...
- 2024-09-27 机器学习的十大算法:千禧年的智慧之选(上)
- 2024-09-27 机器学习中的集成方法概述 集成方法论
- 2024-09-27 感知算法、规划地图……波士顿动力揭秘Atlas机器人跑酷背后技术
- 2024-09-27 机器学习AdaBoost算法指南 boost算法机器学习比较
- 2024-09-27 从内核性能到功能集成,PMSM驱控能力又进一步
- 2024-09-27 图卷积网络集成多组学数据分类新算法——MOGONET
- 2024-09-27 集成方法和深度集成方法 集成方法有哪些
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)