本文简要介绍python语言中 sklearn.inspection.permutation_importance
的用法。
用法:
sklearn.inspection.permutation_importance(estimator, X, y, *, scoring=None, n_repeats=5, n_jobs=None, random_state=None, sample_weight=None, max_samples=1.0)
特征评估的排列重要性[BRE]。
估计器必须是拟合估计器。
X
可以是用于训练估计器的数据集或 hold-out 集。特征的排列重要性计算如下。首先,通过评分定义的基线指标在X
定义的(可能不同的)数据集上进行评估。接下来,对验证集中的特征列进行置换,并再次评估指标。排列重要性定义为基线度量与排列特征列的度量之间的差异。在用户指南中阅读更多信息。
- estimator:对象
已安装并与 scorer 兼容的估计器。
- X:ndarray 或 DataFrame,形状(n_samples,n_features)
将计算排列重要性的数据。
- y:类似数组或无,形状 (n_samples, ) 或 (n_samples, n_classes)
受监督的目标或无监督的
None
。- scoring:str,可调用,列表,元组或字典,默认=无
使用的记分员。如果
scoring
表示单个分数,则可以使用:- 单个字符串(参见评分参数:定义模型评估规则);
- 一个可调用的(见从度量函数定义你的评分策略) 返回单个值。
如果
scoring
代表多个分数,可以使用:- 唯一字符串的列表或元组;
- 一个可调用的返回一个字典,其中键是指标名称,值是指标分数;
- 以度量名称作为键和可调用值的字典。
将多个分数传递给
scoring
比为每个分数调用permutation_importance
更有效,因为它重用预测以避免冗余计算。如果没有,则使用估计器的默认记分器。
- n_repeats:整数,默认=5
置换特征的次数。
- n_jobs:int 或无,默认=无
并行运行的作业数。计算是通过计算每列的排列分数并在列上并行化来完成的。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关详细信息,请参阅词汇表。- random_state:int,RandomState 实例,默认=无
伪随机数生成器,用于控制每个特征的排列。传递 int 以获得跨函数调用的可重现结果。请参阅词汇表。
- sample_weight:形状类似数组 (n_samples,),默认=None
评分中使用的样本权重。
- max_samples:int 或浮点数,默认=1.0
从 X 抽取的样本数,用于计算每次重复中的特征重要性(无需替换)。
- 如果是 int,则绘制
max_samples
样本。 - 如果浮点数,则绘制
max_samples * X.shape[0]
样本。 - 如果
max_samples
等于1.0
或X.shape[0]
,则将使用所有样本。
虽然使用此选项可能提供不太准确的重要性估计,但在评估大型数据集上的特征重要性时,它使该方法易于处理。结合
n_repeats
,这允许控制此方法的计算速度与统计精度的权衡。- 如果是 int,则绘制
- result:
Bunch
或此类实例的字典 类似字典的对象,具有以下属性。
- importances_mean:ndarray 形状 (n_features, )
n_repeats
上的特征重要性平均值。- importances_std:ndarray 形状 (n_features, )
n_repeats
的标准偏差。- 重要性:ndarray 形状(n_features,n_repeats)
原始排列重要性分数。
如果评分参数中有多个评分指标
result
是一个以评分者名称作为键(例如 ‘roc_auc’)和Bunch
对象作为值的字典。
- result:
参数:
返回:
参考:
- BRE
L. Breiman,“Random Forests”,机器学习,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. ])
相关用法
- Python sklearn power_transform用法及代码示例
- Python sklearn.metrics.plot_confusion_matrix用法及代码示例
- Python sklearn.metrics.plot_roc_curve用法及代码示例
- Python sklearn parallel_backend用法及代码示例
- Python sklearn pairwise_distances_chunked用法及代码示例
- Python sklearn plot_tree用法及代码示例
- Python sklearn partial_dependence用法及代码示例
- Python sklearn parametrize_with_checks用法及代码示例
- Python sklearn pair_confusion_matrix用法及代码示例
- Python sklearn.metrics.plot_det_curve用法及代码示例
- Python sklearn precision_score用法及代码示例
- Python sklearn.inspection.plot_partial_dependence用法及代码示例
- Python sklearn precision_recall_fscore_support用法及代码示例
- Python sklearn polynomial_kernel用法及代码示例
- Python sklearn paired_distances用法及代码示例
- Python sklearn precision_recall_curve用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
- Python sklearn VotingRegressor用法及代码示例
- Python sklearn gen_batches用法及代码示例
- Python sklearn ExpSineSquared用法及代码示例
- Python sklearn MDS用法及代码示例
- Python sklearn adjusted_rand_score用法及代码示例
- Python sklearn MLPClassifier用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.inspection.permutation_importance。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。