Bagging-Adaboost-RF的粗糙理解
三种方法都是组合方法,组合方法是使用多个分类器进行投票【构造每个分类器的样本都是通过有放回抽样得到的】
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的粗糙理解的更多相关文章
- Bagging 和RF的区别
跑训练无聊看了看别人的面经,发现自己一时半会答不上来,整理一下. 一.Bagging介绍 先看一个Bagging的一个概念图(图来自https://www.cnblogs.com/nickchen12 ...
- Bagging与随机森林(RF)算法原理总结
Bagging与随机森林算法原理总结 在集成学习原理小结中,我们学习到了两个流派,一个是Boosting,它的特点是各个弱学习器之间存在依赖和关系,另一个是Bagging,它的特点是各个弱学习器之间没 ...
- Bagging与随机森林算法原理小结
在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...
- Bagging之随机森林
随机森林(Random Forest)是一种Bagging(Bootstrap Aggregating)集成算法,在样本随机(样本扰动)的基础上,进一步运用特征随机(属性扰动)的机制,得到比一般的Ba ...
- 十大算法---Adaboost
当我们有针对同一数据集有多个不同的分类器模型时,怎样组合它们使预测分类的结果更加准确, 针对这种情况,机器学习通常两种策略. 1 一种是bagging,一种是boosting bagging:随机对样 ...
- 基于Haar特征Adaboost人脸检测级联分类
基于Haar特征Adaboost人脸检测级联分类 基于Haar特征Adaboost人脸检测级联分类,称haar分类器. 通过这个算法的名字,我们能够看到这个算法事实上包括了几个关键点:Haar特征.A ...
- 数据挖掘学习笔记--AdaBoost算法(一)
声明: 这篇笔记是自己对AdaBoost原理的一些理解,如果有错,还望指正,俯谢- 背景: AdaBoost算法,这个算法思路简单,但是论文真是各种晦涩啊-,以下是自己看了A Short Introd ...
- 基于Haar特征的Adaboost级联人脸检测分类器
基于Haar特征的Adaboost级联人脸检测分类器基于Haar特征的Adaboost级联人脸检测分类器,简称haar分类器.通过这个算法的名字,我们可以看到这个算法其实包含了几个关键点:Haar特征 ...
- 照片美妆---基于Haar特征的Adaboost级联人脸检测分类器
原文:照片美妆---基于Haar特征的Adaboost级联人脸检测分类器 本文转载自张雨石http://blog.csdn.net/stdcoutzyx/article/details/3484223 ...
随机推荐
- redis 管道原理
命令行使用管道(命令以换行符分隔): (printf "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379 redis ...
- Cppcheck - A tool for static C/C++ code analysis
cppcheck是一个个检测源码的工具,对编译工具的一个补充,mark Cppcheck - A tool for static C/C++ code analysis Syntax: cppchec ...
- python3 get/post/使用代理/自定义header/自定义Cookie
说明:urllib发送http请求并不是很人性化,更推荐使用在urllib基础上封装的.python2和python3都兼容的requests模块,移步查看. 一.get请求 get请求就是在构造Re ...
- springmvc 自定义view支持json和jsonp格式数据返回
1.如果controlloer上用@ResponseBody注解,则用<mvc:message-converter>里面配置的json解析器进行解析 <mvc:annotation- ...
- Web应用的统一异常处理(二十四)
我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况.Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来 ...
- SpringBoot使用Spring Initializer
IDE都支持使用Spring的项目创建Spring的项目创建向导,快速创建一个SpringBoot项目:选择我们需要的模块:向导会联网创建SpringBoot项目:默认生成的SpringBoot项目: ...
- mysql索引类型和方式
索引 数据库的索引就像一本书的目录,能够加快数据库的查询速度. MYSQL索引有四种PRIMARY.INDEX.UNIQUE.FULLTEXT, 其中PRIMARY.INDEX.UNIQUE是一类,F ...
- xml常用操作(js、sql、vb)
我们经常会用到xml操作,如下介绍了js.sql.vb等对xml的操作. JS创建xml对象 //创建对象 function getDataXML() { var objTds = $(&qu ...
- mac mysql 操作
参考 http://www.cnblogs.com/chenmo-xpw/p/6102933.html http://www.cnblogs.com/uoar/p/6492521.html 1.启动M ...
- django_rq无法监听两个队列问题
django_rq是为django集成redis队列,这个用的少,一般会选择celery,没办法项目中用到了.用起来很简单,配置可以参考官方文档:https://pypi.org/project/dj ...