Python 3.x 随机森林中每个特征对每棵树的特征重要性计算

Python 3.x 随机森林中每个特征对每棵树的特征重要性计算,python-3.x,scikit-learn,random-forest,decision-tree,Python 3.x,Scikit Learn,Random Forest,Decision Tree,我使用python库sklearn.employee.RandomForestClassifier。 我想知道每个特性对所有树的重要性。假设我有P特征和M树。 我想计算PxM矩阵,其中每个特征的特征重要性计算到每个树。 是sklearn的源代码,对于随机森林特征很重要。在这个方法中,我认为所有重要的变量都是PxM矩阵。但我如何访问该变量 提前感谢。您可以使用访问各个树,然后调用功能\u importances\u 以下是一个例子: from sklearn.ensemble import Ran

我使用python库
sklearn.employee.RandomForestClassifier
。 我想知道每个特性对所有树的重要性。假设我有
P
特征和
M
树。 我想计算
PxM
矩阵,其中每个特征的特征重要性计算到每个树。 是sklearn的源代码,对于随机森林特征很重要。在这个方法中,我认为所有重要的变量都是PxM矩阵。但我如何访问该变量


提前感谢。

您可以使用访问各个树,然后调用
功能\u importances\u

以下是一个例子:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=1000, n_features=4,
                           n_informative=2, n_redundant=0,
                           random_state=0, shuffle=False)
clf = RandomForestClassifier(n_estimators=5, max_depth=2,
                             random_state=0)
clf.fit(X, y)

feature_imp_ = [tree.feature_importances_.T for tree in clf.estimators_]
输出:

[array([0.02057642, 0.96636638, 0.        , 0.01305721]),
 array([0.86128406, 0.        , 0.13871594, 0.        ]),
 array([0.00471007, 0.98648234, 0.        , 0.00880759]),
 array([0.02730208, 0.97269792, 0.        , 0.        ]),
 array([0.65919044, 0.34080956, 0.        , 0.        ])]