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) 原始排列重要性得分。 |
参考
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 = [[1, 9, 9],[1, 9, 9],[1, 9, 9],
... [0, 9, 9],[0, 9, 9],[0, 9, 9]]
>>> y = [1, 1, 1, 0, 0, 0]
>>> 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. ])