随机森林特征重要性

代码:

import numpy as np
from sklearn.ensemble import RandomForestClassifier

data = np.random.random((100,10))
lanel = np.zeros((100))
lanel[25:50] = 1
lanel[50:75] = 2
lanel[75:] = 3

model = RandomForestClassifier(max_depth=None,n_estimators=1000,
                               criterion='gini',class_weight="balanced")
model.fit(data,lanel)
train_score = model.score(data,lanel)
print('train_score: ', train_score)

# 特征重要性
feature_impotant = model.feature_importances_
print(feature_impotant)

train_score:  1.0
0.9999999999999998

更直观的演示:

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

iris = load_iris()
X, y = iris.data, iris.target

rfc = RandomForestClassifier(n_estimators=100, random_state=42)
rfc.fit(X, y)

importances = rfc.feature_importances_

indices = sorted(range(len(importances)), key=lambda i: importances[i], reverse=True)

print("Feature ranking:")
for f in range(X.shape[1]):
    print(f"{f+1}. {iris.feature_names[indices[f]]}: {importances[indices[f]]}")
Feature ranking:
1. petal length (cm): 0.4361295069034437
2. petal width (cm): 0.43606478004168353
3. sepal length (cm): 0.10612761987750428
4. sepal width (cm): 0.02167809317736852

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
随机森林是一种集成学习算法,它可以用于分和回归问题。在随机森林中,特征重要性评估是一项非常重要的任务,因为它可以帮助我们确定哪些特征对于预测目标变量最为重要。以下是两种计算随机森林特征重要性的方法: 1. 基于平均不纯度减少的方法 ```python from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_classification # 创建一个分数据集 X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=0, random_state=42) # 训练一个随机森林器 clf = RandomForestClassifier(n_estimators=100, random_state=42) clf.fit(X, y) # 输出每个特征重要性得分 for i, score in enumerate(clf.feature_importances_): print("Feature %d: %f" % (i, score)) ``` 2. 基于排列重要性的方法 ```python from sklearn.inspection import permutation_importance from sklearn.datasets import make_regression from sklearn.ensemble import RandomForestRegressor # 创建一个回归数据集 X, y = make_regression(n_samples=1000, n_features=10, n_informative=5, random_state=42) # 训练一个随机森林回归器 rf = RandomForestRegressor(n_estimators=100, random_state=42) rf.fit(X, y) # 计算每个特征的排列重要性 result = permutation_importance(rf, X, y, n_repeats=10, random_state=42) # 输出每个特征重要性得分 for i, score in enumerate(result.importances_mean): print("Feature %d: %f" % (i, score)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯世纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值