Adaboost、RandomFrest、GBRT都是基于决策树的组合算法

Adaboost是通过迭代地学习每一个基分类器,每次迭代中,把上一次错分类的数据权值增大,正确分类的数据权值减小,然后将基分类器的线性组合作为一个强分类器,同时给分类误差率较小的基本分类器以大的权值,给分类误差率较大的基分类器以小的权重值。

Adaboost使用的是自适应的方法,其中概率分布式变化的,关注的是难分类的样本。

随机森林RandomForest算法通过随机的方式建立一个森林,森林里的树相互独立。在新样本进来时,采用投票抉择出其所属的类别(分类问题)

在建树的过程中,有两点需要注意,即采样与完全分裂。随机森林不仅对样本进行抽样,还对变量进行抽样。

RF对输入的数据采用有放回的方式获取N个样本(行采样),这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,相对不容易出现over-fitting过拟合,然后从M个feature特征中,选择m个(m << M)(列采样);之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个类别,分裂的办法是:采用上面说的列采样的过程从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性

RF的两个随机采样的过程保证了随机性,所以就算不剪枝也不会出现over-fitting。随机森林的分类准确率可以与adaboost媲美。它对噪声数据更加鲁棒,运行速度比adaboost也快得多。

梯度提升树的每一次计算都是为了减少上一次的残差(residual),而为了减少这些残差,可以在残差减少的梯度(Gradient)方向上建立一个新模型。所以说,在Gradient Boost中,每个新模型的建立是为了使得先前模型残差往梯度方向减少

摘自:http://blog.csdn.net/dream_angel_z/article/details/48085889

转载于:https://www.cnblogs.com/xiaoyun94/p/7390201.html

Adaboost、RandomFrest、GBRT的区别相关推荐

  1. adaboost和GBDT的区别以及xgboost和GBDT的区别

    adaboost和GBDT的区别以及xgboost和GBDT的区别 AdaBoost:提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值.这样一来,那些没有得到正确分类的数据, ...

  2. gtb分类器参数调节_机器学习算法梯度树提升GTB(GBRT)

    Introduction 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比 ...

  3. gtb分类器参数调节_机器学习算法-梯度树提升GTB(GBRT)

    Introduction 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比 ...

  4. 统计学习方法笔记(8)——提升方法之梯度树提升GTB(GBRT)

    Introduction 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比 ...

  5. AdaBoost中样本权重对弱分类器的影响与作用

    AdaBoost中样本权重对弱分类器的影响与作用 最近在尝试用集成学习中的AdaBoost对项目进行改进,对AdaBoost做了一些学习,之前也了解过这个算法,大概懂得是个什么思想,个人理解就是,对每 ...

  6. gtb分类器参数调节_Gradient Tree Bo

    在机器学习各大算法中,决策树这种算法有着很多良好的特性,其现有的特点就有训练的时间复杂度OmegaOmega较低,对新样本预测的过程比较快,同时模型容易展示(容易将得到的决策树做成图片展示出来)等.但 ...

  7. 机器学习算法之集成学习

    集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < 0.5) ...

  8. 技术面常见问题(持续更新)

    一.数学基础: 1.微积分 1.SGD,Momentum,Adagard,Adam原理 SGD为随机梯度下降,每一次迭代计算数据集的mini-batch的梯度,然后对参数进行更新. Momentum参 ...

  9. 模型损失函数变化曲线图_第3章 第6节 模型融合和提升的算法

    ● bagging和boosting的区别 参考回答: Bagging是从训练集中进行子抽样组成每个基模型所需要的子训练集,然后对所有基模型预测的结果进行综合操作产生最终的预测结果. Boosting ...

最新文章

  1. redis学习之——Redis事务(transactions)
  2. matlab浮点运算的误差,MATLAB的eps,浮点数相对精度
  3. 【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )
  4. 【工具】更新arduino最新esp8266库离线安装包3.0.1、ESP32库离线安装包1.0.6,库编译报错解决方法...
  5. sprintf函数的格式化字符串_尚学堂百战程序员:Python 字符串处理
  6. 重庆邮电计算机科学分数线,2020重庆邮电大学录取分数线已公布
  7. 交叉编译docker_端侧推理引擎Tengine初识:安卓平台交叉编译并跑通MobileNetV1
  8. vm虚拟机联网最简单的方式
  9. Combine的使用案例
  10. [转]ASP.NET MVC中你必须知道的13个扩展点
  11. Handler处理机制
  12. ArcGIS符号库下载 | 制图规范、三调、1:1万地形图、土地利用总体规划图.....
  13. 建模与计算机应用,数学建模与计算机应用竞赛.doc
  14. 立即执行的js插件,转成可以在VUE环境下使用,
  15. 如何让自己的网站快速被百度收录(方法一)
  16. 高级java人员都用过的17个jvm参数
  17. OCP-1Z0-051 第21题 LONG类型
  18. 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心, 因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。
  19. C++ 数据结构学习 ---- 栈及其应用
  20. docker volume用法

热门文章

  1. 微软以白金会员加入 OpenChain 开源组织
  2. SQL 使用总结六(改善数据库性能)
  3. python 提取列表元素_Python如何获取列表中元素的索引,python,获得,某个,index
  4. android 例子源码_AOSP系列文章(一)-Android系统源码下载和编译
  5. hash算法_hash一致性算法
  6. net java互相调用_Java与.NET的WebServices相互调用
  7. c语言编程作业最大整数问题,C语言编程第六章作业答案.doc
  8. dragon编译linux,在Linux系统中安装Alibaba Dragonwell8的方法
  9. weblogic java vendor_配置jprofiler监控Weblogic-Zee
  10. python3 运行you get_一个基于Python3的神奇插件——you-get