当前位置:   article > 正文

利用随机森林对特征重要性进行评估_随机森林 因子重要性程度

随机森林 因子重要性程度

转自:https://blog.csdn.net/zjuPeco/article/details/77371645?locationNum=7&fps=1#commentsedit

我们知道,随机森林大致可以看成是从生成的多个决策树种挑选最优的那一棵。所以在训练的过程中就会按照不同特征维度的先后划分方式来建立决策树。因此,最优那棵树所对应的特征划分顺序也就代表着特征的重要程度。

看例子:

from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import numpy as np

data=load_wine()
x_train,x_test,y_train,y_test=train_test_split(data.data,data.target,test_size=0.3,random_state=22)
forest=RandomForestClassifier(n_estimators=10,n_jobs=-1,random_state=9)
forest.fit(x_train,y_train)

importances=forest.feature_importances_
print('每个维度对应的重要性因子:\n',importances)
indices = np.argsort(importances)[::-1]# a[::-1]让a逆序输出
print('得到按维度重要性因子排序的维度的序号:\n',indices)
most_import = indices[:3]#取最总要的3个
print(x_train[:,most_import])


>>
每个维度对应的重要性因子:
 [0.17340555 0.00990344 0.01416615 0.00880821 0.05553781 0.03865726
 0.08544822 0.01149787 0.0478397  0.10337597 0.08948192 0.0930718
 0.26880612]
得到按维度重要性因子排序的维度的序号:
 [12  0  9 11 10  6  4  8  5  2  7  1  3]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

我们可以看到,最重要的是第12维,依次是第0维,9维。

另外说一下,原文中维度对应关系应该室友错误的。

 print("%2d) %-*s %f" % (f + 1, 30, feat_labels[f], importances[indices[f]]))
  • 1

f=0时,indices[f]=12,此时importances[12]对应的就是最后一个特征,而feat_labels[0]却指的是第一个特征。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/97668
推荐阅读
相关标签
  

闽ICP备14008679号