本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。