sklearn:特征与树木森林的重要性

此博客展示了如何利用树木森林来评估特征在人工分类任务中的重要性。内容提到,通过森林的特征重要性和树间变异性,确认了前3个特征对任务有显著贡献,其余特征信息量较小。

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

这个例子展示了使用树木森林来评估特征对人工分类任务的重要性。 红色条是森林的特征重要性,以及它们的树间变异性。

正如预期的那样,该情节表明3个特征是提供信息的,而其余的则没有。

import numpy as np
import matplotlib.pyplot as plt

from sklearn.datasets import make_classification
from sklearn.ensemble import ExtraTreesClassifier

# Build a classification task using 3 informative features
X, y = make_classification(n_samples=1000,
                           n_features=10,
                           n_informative=3,
                           n_redundant=0,
                           n_repeated=0,
                           n_classes=2,
                           random_state=0,
                           shuffle=False)

# Build a forest and compute the feature importances
forest = ExtraTreesClassifier(n_estimators=250,
                              random_state=0)

forest.fit(X, y)
importances = forest.feature_importances_
std = np.std([t
### 随机森林特征重要性的计算方法 #### 原理概述 随机森林通过构建多个决策树来提高预测性能和控制过拟合。对于特征重要性的评估,主要依赖于袋外(OOB)数据集上的表现差异。OOB样本是指在构建某棵决策树时未被选中的训练样例。 #### 计算过程 针对每棵树,在其生长过程中会保留一部分作为OOB的数据用于测试。这些OOB实例会被用来估计变量m的重要性得分: 1. 对于每一棵树,记录原始OOB数据分类正确的票数。 2. 将变量m的值在其对应的OOB数据集中随机打乱顺序后再重新输入该树得到新的预测结果,并再次统计此时OOB数据分类正确的票数。 3. 比较两次投票的结果差值,即未经扰动经过扰动后的正确率之差,这个数值反映了当改变特定属性取值分布后对模型准确性的影响程度。 4. 取所有树木上相同位置处上述操作所得平均值得到最终版本的重要性分数[^3]。 ```python from sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifier # 加载鸢尾花数据集 data = load_iris() X, y = data.data, data.target # 创建随机森林分类器对象 rfc = RandomForestClassifier(n_estimators=100) # 使用默认参数训练模型 rfc.fit(X, y) # 输出各个特征的重要度评分 print(rfc.feature_importances_) ``` 此代码片段展示了如何利用`sklearn`库实现基于随机森林算法的特征选择功能。其中`feature_importances_`返回的是各维度下特征贡献比例的一个数组形式表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值