随机森林里oob_score以及用oob判断特征重要性的理解

本文介绍了随机森林中的oob(oob_score)概念,以及如何利用oob数据评估特征的重要性。oob数据用于检测模型的泛化能力,类似于交叉验证。特征重要性可以通过比较特征值改变前后袋外数据误差的差异来衡量,但sklearn中的`feature_importances_`并非基于oob,而是基于不纯度减少。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文总结了我在学习随机森林时关于oob产生的一系列问题以及学习到的问题答案

在学习随机森林算法参数解释以及参数择优的过程中,注意到oob_score这一参数对应是否采用袋外样本来评估模型的好坏。
同时在学习随机森林的优点时,其中一条是训练后可以给出各个特征对于输出的重要性。

一开始未能清楚理解该优点的理论原因是什么,但在今天学习oob_score的时候,我就想这个优点是不是就是基于oob实现的(不是!具体看后文!)。

1. 什么是oob

首先简单说一下什么是袋外样本oob (Out of bag):在随机森林中,m个训练样本会通过bootstrap (有放回的随机抽样) 的抽样方式进行T次抽样每次抽样产生样本数为m的采样集,进入到并行的T个决策树中。这样有放回的抽样方式会导致有部分训练集中的样本(约36.8%)未进入决策树的采样集中,而这部分未被采集的的样本就是袋外数据oob。

而这个袋外数据就可以用来检测模型的泛化能力,和交叉验证类似。可以理解成从train datasets 中分出来的validation datasets。

2. 什么是oob_score

对于单棵用采样集训练完成的决策树Ti,用袋外数据运行后会产生一个oob_score (返回的是R square来判断),对每一棵决策树都重复上述操作,最终会得到T个oob_score,把这T和oob_score平均,最终得到的就是整个随机森林的oob_score
在这里插入图片描述

3. 如何用oob判断

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值