随机深林-特征重要性计算方式

本文介绍了一种使用随机森林算法进行特征重要性评估的方法。通过计算基尼指数或袋外数据错误率来衡量特征的重要性,帮助从众多特征中筛选出对结果影响最大的特征。

特征重要性

一个数据集中往往有成百上前个特征,如何在其中选择比结果影响最大的那几个特征。
这里我们要介绍的是用随机森林来对进行特征筛选。
用随机森林进行特征重要性评估的思想其实很简单,说白了就是看看每个特征在随机森林中的每颗树上做了多大的贡献,然后取个平均值,最后比一比特征之间的贡献大小。
好了,那么这个贡献是怎么一个说法呢?
通常可以用基尼指数(Gini index)或者袋外数据(OOB)错误率作为评价指标来衡量。

方法一、利用基尼指数计算

参考文献 https://blog.youkuaiyun.com/zjuPeco/article/details/77371645?locationNum=7&fps=1
这里写图片描述

方法二、利用袋外数据(OOB)错误率计算

参考文献 http://blog.sina.com.cn/s/blog_7103b28a0102w7q1.html

计算某个特征X的重要性时,具体步骤如下:

1)对每一颗决策树,选择相应的袋外数据(out of bag,OOB)​计算袋外数据误差,记为errOOB1.

袋外数据是指,每次建立决策树时,通过重复抽样得到一个数据用于训练​决策树,这时还有大约1/3的数据没有被利用,没有参与决策树的建立。这部分数据可以用于对决策树的性能进行评估,计算模型的预测错误率,称为袋外数据误差。

​已经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计。

​2)随机对袋外数据OOB所有样本的特征X加入噪声干扰(可以随机改变样本在特征X处的值),再次计算袋外数据误差,记为errOOB2。

3)​假设森林中有N棵树,则特征X的重要性=∑(errOOB2-errOOB1)/N。这个数值之所以能够说明特征的重要性是因为,如果加入随机噪声后,袋外数据准确率大幅度下降(即errOOB2上升),说明这个特征对于样本的预测结果有很大影响,进而说明重要程度比较高。

可参考的文献
https://www.cnblogs.com/zhouxiaohui888/p/6008454.html
https://blog.youkuaiyun.com/xiaocong1990/article/details/61414747

<think>我们正在回答用户的问题:“我想理解随机森林的概念 请问什么是随机森林” 根据用户提供的引用,我们可以总结随机森林的关键点: 1. 随机森林是一种集成学习方法,由多棵决策树组成(森林)。 2. 随机性体现在两个方面:随机选择样本(有放回抽样,即Bootstrap采样)和随机选择特征。 3. 最终结果通过投票(分类)或平均(回归)得到。 我们将用通俗易懂的语言解释随机森林,并适当使用数学表达和示例。 结构: 1. 核心思想 2. 两个随机性 3. 决策过程 4. 优势 5. 简单示例(伪代码或流程图) 6. 相关问题 注意:用户可能没有机器学习基础,所以避免过于技术化。</think>### 随机森林概念详解 随机森林(Random Forest)是一种**集成学习算法**,通过组合多棵决策树提升预测准确性和鲁棒性。其核心思想可概括为: **“随机样本 + 随机特征 = 差异化的决策树森林”** --- #### 1. **核心组成** 随机森林包含两个关键设计: - **森林(Forest)** 由多棵决策树($T_1, T_2, ..., T_k$)组成,每棵树独立训练并预测 - **随机性(Randomness)** - **样本随机**:每棵树训练时,从原始数据集中**有放回地随机抽取**样本(Bootstrap采样) $$ S_i = \text{Bootstrap}(D) \quad \text{其中} \ |S_i| = |D| $$ [^2][^3][^4] - **特征随机**:每棵树分裂节点时,仅从**随机子集**的特征中选择最优分裂特征 $$ F_{\text{split}} = \arg\max_{f \in F_{\text{sub}}} \ \text{Gain}(f) \quad \text{且} \ |F_{\text{sub}}| \ll |F| $$ [^1][^4][^5] > 示例: > 原始数据:1000样本 × 20特征 > - 树1:用样本{1,3,5...}(随机抽取)和特征{年龄,收入}(随机子集)训练 > - 树2:用样本{2,2,7...}和特征{职业,地区}训练 > *每棵树看到不同的数据和特征组合* --- #### 2. **决策机制** - **分类问题**(如判断是否关店): 每棵树投票 → 取多数票为最终结果 $$ \hat{y} = \text{mode}\{T_1(x), T_2(x), ..., T_k(x)\} $$ - **回归问题**(如预测销售额): 所有树输出的平均值 $$ \hat{y} = \frac{1}{k} \sum_{i=1}^{k} T_i(x) $$ [^1][^5] --- #### 3. **为何优于单棵决策树?** 通过双重随机性实现: - **降低过拟合**:单棵树可能过度依赖特定样本或特征随机森林通过平均化降低方差 $$ \text{Var}(\hat{y}_{\text{RF}}) < \text{Var}(\hat{y}_{\text{Tree}}) $$ - **提升泛化能力**:不同树关注不同特征模式,集体决策更鲁棒 - **处理高维数据**:特征随机选择自动实现特征重要性筛选 [^3][^4] ```mermaid graph LR A[原始数据] --> B[随机样本] A --> C[随机特征] B & C --> D[决策树1] B & C --> E[决策树2] B & C --> F[决策树...k] D & E & F --> G{投票/平均} G --> H[最终预测] ``` --- #### 4. **关键优势** | 特性 | 说明 | |---------------|----------------------------------------------------------------------| | **抗噪声** | 异常样本仅影响少数树,不影响整体森林 [^4] | | **并行训练** | 每棵树独立训练,支持分布式计算 | | **特征重要性**| 通过特征在分裂节点中的出现频率量化重要性(如 `sklearn.feature_importances_`) | | **无需预处理**| 自动处理缺失值和离散特征 | --- ### 总结 随机森林 = **多棵差异化决策树 + 集体决策机制** - 双重随机性(样本&特征)是核心创新 - 通过“三个臭皮匠赛过诸葛亮”原理提升模型性能 [^4] - 适用于分类/回归任务,尤其在特征多、数据杂的场景表现突出
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值