ExtraTrees原理
原文:http://blog.csdn.net/zhaocj/article/details/51648966
ET或Extra-Trees(Extremely randomized trees,极端随机树)是由PierreGeurts等人于2006年提出。该算法与随机森林算法十分相似,都是由许多决策树构成。但该算法与随机森林有两点主要的区别:
1、随机森林应用的是Bagging模型,而ET是使用所有的训练样本得到每棵决策树,也就是每棵决策树应用的是相同的全部训练样本;
2、随机森林是在一个随机子集内得到最佳分叉属性,而ET是完全随机的得到分叉值,从而实现对决策树进行分叉的。
对于第2点的不同,我们再做详细的介绍。我们仅以二叉树为例,当特征属性是类别的形式时,随机选择具有某些类别的样本为左分支,而把具有其他类别的样本作为右分支;当特征属性是数值的形式时,随机选择一个处于该特征属性的最大值和最小值之间的任意数,当样本的该特征属性值大于该值时,作为左分支,当小于该值时,作为右分支。这样就实现了在该特征属性下把样本随机分配到两个分支上的目的。然后计算此时的分叉值(如果特征属性是类别的形式,可以应用基尼指数;如果特征属性是数值的形式,可以应用均方误差)。遍历节点内的所有特征属性,按上述方法得到所有特征属性的分叉值,我们选择分叉值最大的那种形式实现对该节点的分叉。从上面的介绍可以看出,这种方法比随机森林的随机性更强。
对于某棵决策树,由于它的最佳分叉属性是随机选择的,因此用它的预测结果往往是不准确的,但多棵决策树组合在一起,就可以达到很好的预测效果。
当ET构建好了以后,我们也可以应用全部的训练样本来得到该ET的预测误差。这是因为尽管构建决策树和预测应用的是同一个训练样本集,但由于最佳分叉属性是随机选择的,所以我们仍然会得到完全不同的预测结果,用该预测结果就可以与样本的真实响应值比较,从而得到预测误差。如果与随机森林相类比的话,在ET中,全部训练样本都是OOB样本,所以计算ET的预测误差,也就是计算这个OOB误差。
在这里,我们仅仅介绍了ET算法与随机森林的不同之处,ET算法的其他内容(如预测、OOB误差的计算)与随机森林是完全相同的,具体内容请看关于随机森林的介绍。
ExtraTrees原理相关推荐
- python卡方检验筛选特征原理_基于Python的遥感特征筛选—递归特征消除(RFE)与极限树(Extra-Trees)...
引言 基于前几篇文章关于筛选方法的介绍,本篇同样给大家介绍两种python封装的经典特征降维方法,递归特征消除(RFE)与极限树(Extra-Trees, ET).其中,RFE整合了两种不同的超参数, ...
- scikit-learn机器学习常用算法原理及编程实战(五)
决策树 决策树是最经典的机器学习模型之一.预测速度快,可以处理类别型数据和连续型数据.通过本章读者可以掌握以下内容: 信息熵及信息增益的概念,以及决策树的分裂的原则: 决策树的创建及剪枝算法: sci ...
- 决策树与剪枝、bagging与随机森林、极端随机树、Adaboost、GBDT算法原理详解
目录 1.决策树 1.1 ID3 1.2 C4.5 1.3 CART 1.4 预剪枝和后剪枝 2 bagging与随机森林 2.1 bagging 2.2 随机森林 3 极端随机树 4 GBDT 5 ...
- xgboost参数原理详解,适合入门新人
sklearn集成方法 bagging 常见变体(按照样本采样方式的不同划分) Pasting:直接从样本集里随机抽取的到训练样本子集 Bagging:自助采样(有放回的抽样)得到训练子集 Rando ...
- UUID的使用及其原理
今天敲项目要用UUID,想起之前老师告诉UUID的使用,但没说具体的生成逻辑,于是我进行了百度 首先,UUID的使用: //生成随机的UUID String uuid = UUID.randomUUI ...
- etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...
- git原理及常见使用方法
Git 原理入门-来自阮一峰 Git 是最流行的版本管理工具,也是程序员的必备技能之一. 即使天天使用它,很多人也未必了解它的原理.Git 为什么可以管理版本?git add.git commit这些 ...
- 微机原理—定时计数控制接口
别看题目很高深,其实就是很简单的定时器和计数器而已. 通常用手机定个闹钟,就是定时器的使用. 工厂里通过传送带上安装传感器,传感器传输给计算机的信号用来计数. 这是一些很简单的应用,通过很小的一个芯片 ...
- 三层交换机原理:01路由器如何隔离广播域?
前言: 当网络规模较大的时候,需要设备来隔离广播域,防止网络中因产生广播风暴而导致网络效率降低,而二层交换机不能隔离广播域,所以需要三层路由器设备来隔离广播域! 但三层路由器为什么能够隔离广播域,是如 ...
最新文章
- mysql主从同步主服务器热切换
- Keil 运行.bat脚本文件
- 【记录】ubuntu18.04 终端下No module named numpy No module name cv2
- OS- -操作系统常见问题总结
- 张霖峰:AV1和VVC的格局将在2023年后明朗
- UVa 11059 Maximum Product
- Java StringBuilder length()方法与示例
- oopc——6.oopc的好处
- jQuery.treetable使用及异步加载
- 01.Unity设置成为中文
- ExtJs6 combo下拉框分页、提示、换行提示等增强功能
- ios识别人脸自动拍照_利用openCV实现自动抓拍,人脸识别,清晰度的验证等
- HTML学习(三):排版
- Hardhat 学习笔记
- 【Apache运维基础(4)】Apache的Rewrite攻略(1)
- poco c++感性认识
- SpringBoot之模板引擎
- Redis性能指标详解与监控
- 100内奇数之和流程图_干货分享| 画管道仪表流程图,详细步骤都在这里!
- html+js彩票预选页面
热门文章
- Mybatis实现*mapper.xml热部署-分子级更新
- 图表控件AnyChart如何创建JavaScript角度规
- Idea报错:@Override is not allowed when implementing interface method
- 三种价差交易,你知道几个?
- 通过仿制药质量和疗效一致性评价的公告
- Simulink Test自动化(三)-创建TestReport和CoverageReport
- 自学鸿蒙应用开发(26)- 自定义CommonDialog
- 如何判断电路板上贴片电容的参数
- 这里有一份关于英文怎么翻译的方法,快快学起来吧
- [vulhub]shiro