三种方法都是组合方法,组合方法是使用多个分类器进行投票【构造每个分类器的样本都是通过有放回抽样得到的】

1、Bagging(装袋):k次抽样,训练k次,得到k个模型(分类器),等权重投票

2、Adaboost(提升):【在样本抽取上做文章,按权取样本,按权投票】

  1)k次抽样:每个样本被抽到的机会由其权重决定(初始时样本权重一样)

  2)训练k次:每次训练结束后要使用得到模型的错误率(<0.5)来修改样本权重,提高那些前一轮弱分类器错误分类样本的权值,降低那些被正确分类样本的权值。

  3)得到k个模型:每个模型的权重由其错误率决定

  4)加权投票【累计】。

3、RF(随机森林)【在分裂属性上做文章】

  1)k次抽样(有放回抽样)【行抽样】

  2)训练k次:(独立训练,可以采用分布式计算)

      每次训练都是得到一棵决策树,可以用任意一种(不剪枝的)决策树算法(ID3/C45/CART),但是分裂节点使用的候选特征不再是全部特征。

      Forest-RI:每一个节点都随机选择F个特征【列抽样】作为节点划分候选特征。

   Forest-RC:每一个节点随机选择L个特征【列抽样】,并且从[-1,1]中随机选择系数,相加得到一个特征。由此法得到F个特征,使用CART进行分支

  3)得到k个模型:k棵决策树

  4)等权投票。


比较:

1、过拟合问题

  1)Bagging:不存在过拟合:因为它每个分类器都是独立的,训练数据不一样(行抽样)

  2)Adaboost:存在过拟合:因为它总是关注分错了的样本

  3) RF:不存在过拟合:因为每个分类器都是独立的,不但训练数据不同(行抽样),而且特征也不一样(列抽样,类似于领域专家)

2、性能比较

  1)Adaboost比Bagging准确率高,但存在过拟合

  2)RF准确率和Adaboost差不多,但更具鲁棒性,不存在过拟合,对F值敏感【通常取log2d+1,一般F=1的效果很好】

Bagging-Adaboost-RF的粗糙理解的更多相关文章

  1. Bagging 和RF的区别

    跑训练无聊看了看别人的面经,发现自己一时半会答不上来,整理一下. 一.Bagging介绍 先看一个Bagging的一个概念图(图来自https://www.cnblogs.com/nickchen12 ...

  2. Bagging与随机森林(RF)算法原理总结

    Bagging与随机森林算法原理总结 在集成学习原理小结中,我们学习到了两个流派,一个是Boosting,它的特点是各个弱学习器之间存在依赖和关系,另一个是Bagging,它的特点是各个弱学习器之间没 ...

  3. Bagging与随机森林算法原理小结

    在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...

  4. Bagging之随机森林

    随机森林(Random Forest)是一种Bagging(Bootstrap Aggregating)集成算法,在样本随机(样本扰动)的基础上,进一步运用特征随机(属性扰动)的机制,得到比一般的Ba ...

  5. 十大算法---Adaboost

    当我们有针对同一数据集有多个不同的分类器模型时,怎样组合它们使预测分类的结果更加准确, 针对这种情况,机器学习通常两种策略. 1 一种是bagging,一种是boosting bagging:随机对样 ...

  6. 基于Haar特征Adaboost人脸检测级联分类

    基于Haar特征Adaboost人脸检测级联分类 基于Haar特征Adaboost人脸检测级联分类,称haar分类器. 通过这个算法的名字,我们能够看到这个算法事实上包括了几个关键点:Haar特征.A ...

  7. 数据挖掘学习笔记--AdaBoost算法(一)

    声明: 这篇笔记是自己对AdaBoost原理的一些理解,如果有错,还望指正,俯谢- 背景: AdaBoost算法,这个算法思路简单,但是论文真是各种晦涩啊-,以下是自己看了A Short Introd ...

  8. 基于Haar特征的Adaboost级联人脸检测分类器

    基于Haar特征的Adaboost级联人脸检测分类器基于Haar特征的Adaboost级联人脸检测分类器,简称haar分类器.通过这个算法的名字,我们可以看到这个算法其实包含了几个关键点:Haar特征 ...

  9. 照片美妆---基于Haar特征的Adaboost级联人脸检测分类器

    原文:照片美妆---基于Haar特征的Adaboost级联人脸检测分类器 本文转载自张雨石http://blog.csdn.net/stdcoutzyx/article/details/3484223 ...

随机推荐

  1. redis 管道原理

    命令行使用管道(命令以换行符分隔): (printf "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379 redis ...

  2. Cppcheck - A tool for static C/C++ code analysis

    cppcheck是一个个检测源码的工具,对编译工具的一个补充,mark Cppcheck - A tool for static C/C++ code analysis Syntax: cppchec ...

  3. python3 get/post/使用代理/自定义header/自定义Cookie

    说明:urllib发送http请求并不是很人性化,更推荐使用在urllib基础上封装的.python2和python3都兼容的requests模块,移步查看. 一.get请求 get请求就是在构造Re ...

  4. springmvc 自定义view支持json和jsonp格式数据返回

    1.如果controlloer上用@ResponseBody注解,则用<mvc:message-converter>里面配置的json解析器进行解析 <mvc:annotation- ...

  5. Web应用的统一异常处理(二十四)

    我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况.Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来 ...

  6. SpringBoot使用Spring Initializer

    IDE都支持使用Spring的项目创建Spring的项目创建向导,快速创建一个SpringBoot项目:选择我们需要的模块:向导会联网创建SpringBoot项目:默认生成的SpringBoot项目: ...

  7. mysql索引类型和方式

    索引 数据库的索引就像一本书的目录,能够加快数据库的查询速度. MYSQL索引有四种PRIMARY.INDEX.UNIQUE.FULLTEXT, 其中PRIMARY.INDEX.UNIQUE是一类,F ...

  8. xml常用操作(js、sql、vb)

    我们经常会用到xml操作,如下介绍了js.sql.vb等对xml的操作. JS创建xml对象 //创建对象 function getDataXML() {     var objTds = $(&qu ...

  9. mac mysql 操作

    参考 http://www.cnblogs.com/chenmo-xpw/p/6102933.html http://www.cnblogs.com/uoar/p/6492521.html 1.启动M ...

  10. django_rq无法监听两个队列问题

    django_rq是为django集成redis队列,这个用的少,一般会选择celery,没办法项目中用到了.用起来很简单,配置可以参考官方文档:https://pypi.org/project/dj ...