随机森林不需要交叉验证!

随机森林属于bagging集成算法,采用Bootstrap,理论和实践可以发现Bootstrap每次约有1/3的样本不会出现在Bootstrap所采集的样本集合中。故没有参加决策树的建立,这些数据称为袋外数据oob,歪点子来了,这些袋外数据可以用于取代测试集误差估计方法,可用于模型的验证。

袋外数据(oob)误差的计算方法如下:

对于已经生成的随机森林,用袋外数据测试其性能,假设袋外数据总数为O,用这O个袋外数据作为输入,带进之前已经生成的随机森林分类器,分类器会给出O个数据相应的分类

因为这O条数据的类型是已知的,则用正确的分类与随机森林分类器的结果进行比较,统计随机森林分类器分类错误的数目,设为X,则袋外数据误差大小=X/O

随机森林树模型的特征重要性排序常见有两种方法

1、基于OOB的评估指标

先用训练好的模型对OOB数据进行打分,计算出AUC或其他业务定义的评估指标;接着对OOB数据中的每个特征:(1) 随机shuffle当前特征的取值(即依次对每个特征赋予一个随机数,观察算法性能的变化);(2) 重新对当前数据进行打分,计算评估指标;(3)计算指标变化率。按照上面方式,对每个特征都会得到一个变化率,最后按照变化率排序来量化特征重要性。

2、基于gini指数

就是看看每个特征在随机森林中的每颗树上做了多大的贡献,然后取个平均值,最后比一比特征之间的贡献大小。对于生成的每棵树,计算每个分裂节点的Gini指数,计算公式如下:

其中,K表示K个类别,

 表示第

个分裂点中k类别所占的比例。特征

 在节点m的重要性可以通过分裂前后的特征

 的差值来表示,可以表示为

最后,把所有求得的重要性评分做一个归一化处理即可

具体计算例子可以参考【3】

Reference:

python随机森林 交叉验证_随机森林是否需要交叉验证+特征的重要性相关推荐

  1. python随机森林 交叉验证_随机森林算法详解及Python实现

    一 简介 随机森林是一种比较有名的集成学习方法,属于集成学习算法中弱学习器之间不存在依赖的一部分,其因为这个优点可以并行化运行,因此随机森林在一些大赛中往往是首要选择的模型. 随机森立中随机是核心,通 ...

  2. 基于python的随机森林回归实现_随机森林理论与python代码实现

    1,初品随机森林 随机森林,森林就是很多决策树放在一起一起叫森林,而随机体现在数据集的随机采样中和特征的随机选取中,具体下面再讲.通俗的说随机森林就是建立多颗决策树(CART),来做分类(回归),以多 ...

  3. java 随机四位数字组合_随机组合生成好听的名字(java)

    前言 初学java,今天学到了字符串数组,于是乎:利用数组+Random(系统随机生成数字)组合生成随机好听的名字: 如图 图片.png 需求:设置两个数组分别保存姓和名然后利用随机数组合 思考:利用 ...

  4. java程序license验证_基于TrueLicense实现产品License验证功能

    受朋友所托,需要给产品加上License验证功能,进行试用期授权,在试用期过后,产品不再可用. 通过研究调查,可以利用Truelicense开源框架实现,下面分享一下如何利用Truelicense实现 ...

  5. python 随机森林调参_随机森林调参

    前两天写了个scikit-learn初步学习,今天没事又照着写了个RF模型的,刚开始还不懂这个python列表推导式,想了想还是挺好用的. 然后用了GridSearchCv这个参数优化类,遍历多种参数 ...

  6. python k折交叉验证_机器学习之K折交叉验证

    本文主题:使用 train/test split 进行模型评估的缺点 K-fold cross-validation 如何克服这些缺点 K-fold cross-validation 如何用于参数调优 ...

  7. 5折交叉验证_[Machine Learning] 模型评估——交叉验证/K折交叉验证

    首先区分两个概念:'模型评估' 与 '模型性能度量' 模型评估:这里强调的是如何划分和利用数据,对模型学习能力的评估,重点在数据的划分方法. Keywords: 划分.利用数据 模型性能度量:是在研究 ...

  8. 蚂蚁森林消息气泡_元气森林靠代工借单品蹿红 成立3年估值40亿元如今自建工厂...

    作者:有局儿 来源:GPLP犀牛财经(ID:gplpcn) 为解决饮料代加工存在的隐患问题,元气森林终于自建工厂了. 元气森林最近可谓是风光无二,先有"乘风破浪的姐姐"张雨绮代言旗 ...

  9. python 登陆网站图片验证_登陆需要密码以及图片验证的网站 如知乎

    [实例简介] 登陆知乎 这样需要输入密码以及验证图片的网站 [实例截图] 无.. [核心代码] def land_zhihu(url, id, password): opener = makeMyOp ...

最新文章

  1. kong plugin rate limiting
  2. WPF简单的口算案例
  3. 搜索算法-三个简单的小问题
  4. 【maven详解-插件】maven插件学习之maven-source-plugin
  5. 简单python脚本实例-python脚本例子
  6. mac xampp连接mysql_MAC系统XAMPP 中 MySQL命令行client配置使用
  7. CRM客户关系管理系统源码 CRM小程序源码
  8. python爬虫登录正方教务管理系统获取成绩数据_「武汉理工大学教务处管理系统」Python爬虫初学(4)登陆武汉理工大学教务处并转到成绩管理 - seo实验室...
  9. 经过本人盘点与细数,总结出个人云存储与传统网盘五大差别
  10. Android开发学习之WindowManager实现弹窗
  11. 【C基础】11 指针与数组
  12. 微信电脑版只能扫码登录的原因,你一定想不到
  13. 如何利用python给女友制造惊喜(微信每日weather report)
  14. 攻城狮的苦逼选车经历
  15. Web 组态运用之用户数据 ARPU 分析图
  16. Draw.io--一款强大且支持在线编辑和导出的流程图绘制软件
  17. mysql语句:SET NAMES UTF8
  18. Linux操作系统基
  19. 【敬伟ps教程】颜色和图案的填充
  20. 基于ZYNQ的片上系统(Soc)简介(一)

热门文章

  1. JavaScript事件处理程序的3种方式
  2. 使用java api操作HDFS文件
  3. 25条提高iOS App性能的建议和技巧
  4. C#: Writing a CookieContainer to Disk and Loading Back In For Use
  5. 修改Extmail和Extman的源代码增加公司部门和中文名字段
  6. 使用Acronis Disk Director Suite调整分区大小
  7. centos7 卸载安装失败的mysql7
  8. git 查看、创建、切换、删除、重命名和推送分支
  9. vue-cli 中stylus写样式莫名报错?
  10. NAT技术代理服务器