sklearn.inspection.permutation_importance

sklearn.inspection.permutation_importance(estimator, X, y, *, scoring=None, n_repeats=5, n_jobs=None, random_state=None)

[源码]

特征评估的置换重要性[BRE]。 估算器必须是拟合估算器。X可以是用于训练估算器的数据集,也可以是保留集。特征的排列重要性计算如下。首先,在X定义的(可能不同的)数据集上评估通过评分定义的基线度量。接着,对验证集中的特征列进行置换,并再次评估度量。 排列重要性定义为基线度量和来自排列特征列的度量之间的差异。 在用户指南中阅读更多内容。

参数 说明
estimator object
一个已经训练并且与计分器兼容的估计器。
X ndarray or DataFrame, shape (n_samples, n_features)
将计算排列重要性的数据。
y array-like or None, shape (n_samples, ) or (n_samples, n_classes)
有监督的目标,无监督的目标。
scoring string, callable or None, default=None
使用的评分器。它可以是单个字符串(请参阅评分参数:定义模型评估规则),也可以是可调用的(请参阅从度量函数定义评分策略)。如果为None,则使用估算器的默认评分器。
n_repeats int, default=5
置换特征的次数。
n_jobs int or None, default=None
用于计算的作业数。除非在joblib.parallel_backend上下文中,否则None表示1。 -1表示使用所有处理器。有关更多详细信息,请参见词汇表
random_state int, RandomState instance, default=None
伪随机数生成器,用于控制每个特征的排列。传递一个int通过函数调用获得可重复的结果。参见:term:词汇表<random_state>。
返回值 说明
result Bunch
类字典对象,具有以下属性。
- importances_meanndarray, shape (n_features, )
特征重要性超过n_repeats的平均值。
- importances_stdndarray, shape (n_features, )
n_repeats的标准偏差。
- importancesndarray, shape (n_features, n_repeats)
原始排列重要性得分。

参考

BRE

L. Breiman, “Random Forests”, Machine Learning, 45(1), 5-32, 2001. https://doi.org/10.1023/A:1010933404324

示例

>>>
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.inspection import permutation_importance
>>> X = [[199],[199],[199],
...      [099],[099],[099]]
>>> y = [111000]
>>> clf = LogisticRegression().fit(X, y)
>>> result = permutation_importance(clf, X, y, n_repeats=10,
...                                 random_state=0)
>>> result.importances_mean
array([0.4666..., 0.       , 0.       ])
>>> result.importances_std
array([0.2211..., 0.       , 0.       ])