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 ...
随机推荐
- 【转】Entity Framework教程(第二版)
源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...
- JavaScript 上万条数据 导出Excel文件 页面卡死
最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var ...
- Qt绘制字体并获取文本宽度
参考资料: https://blog.csdn.net/liang19890820/article/details/51227894 QString text("abc");QPa ...
- react router @4 和 vue路由 详解(七)react路由守卫
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 12.react路由守卫? a.在之前的版本中,React Router 也提供了类似的 ...
- C++解析五-this 指针,指向类的指针
C++this指针 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址.this 指针是所有成员函数的隐含参数.因此,在成员函数内部,它可以用来指向调用对象.友元函数没有 this 指 ...
- day_07_python_1124
01 昨日内容回顾 数据类型补充: str <---> list split join list <---> set set(list) list(set()) list &l ...
- Python Django 之 静态文件存放设置
一.静态文件存放路径设置STATICFILES_DIRS 1.在django项目目录下面新建静态文件保存目录 2.在setting中添加相应寻找静态文件目录的配置 STATICFILES_DIRS=( ...
- bluemix部署(一)简单测试,搭建样本flask程序。
1.注册bluemix 这个略 2.登录bluemix 这个也略 3.创建组织 这个确实是和我们的思想不一样.要创建组织.为什么呢?国内的很多服务都没见过组织这个概念.貌似神符合一个中国人是条龙,十个 ...
- sys.argv]的用法
Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...
- c/c++动态内存分配的区别
c中动态内存分配使用malloc和free. malloc指定需要分配的内存大小,分配成功则返回指向该内存的指针,不成功则返回空指针.返回的指针类型为void *,表示不确定指针所指内存存放的数据类型 ...