本文簡要介紹python語言中 sklearn.metrics.roc_auc_score
的用法。
用法:
sklearn.metrics.roc_auc_score(y_true, y_score, *, average='macro', sample_weight=None, max_fpr=None, multi_class='raise', labels=None)
根據預測分數計算接收器操作特征曲線 (ROC AUC) 下的麵積。
注意:此實現可用於二元、多類和多標簽分類,但有一些限製(參見參數)。
在用戶指南中閱讀更多信息。
- y_true:形狀為 (n_samples,) 或 (n_samples, n_classes) 的類似數組
真標簽或二進製標簽指示符。二元和多類情況需要形狀為 (n_samples,) 的標簽,而多標簽情況需要形狀為 (n_samples, n_classes) 的二元標簽指示符。
- y_score:形狀為 (n_samples,) 或 (n_samples, n_classes) 的類似數組
目標分數。
- 在二進製情況下,它對應於一個形狀數組
(n_samples,)
.可以提供概率估計和非閾值決策值。概率估計對應於具有更大標簽的類的概率, IE。estimator.classes_[1]
因此estimator.predict_proba(X, y)[:, 1]
.決策值對應於estimator.decision_function(X, y)
.查看更多信息用戶指南; - 在多類情況下,它對應於一個形狀數組
(n_samples, n_classes)
由提供的概率估計predict_proba
方法。概率估計必須在所有可能的類中總和為 1。此外,類分數的順序必須與labels
,如果提供,或其他標簽的數字或字典順序y_true
.查看更多信息用戶指南; - 在多標簽情況下,它對應於一個形狀數組
(n_samples, n_classes)
.概率估計由predict_proba
方法和非閾值決策值由decision_function
方法。概率估計對應於每個輸出具有更大標簽的類的概率的分類器。查看更多信息用戶指南.
- 在二進製情況下,它對應於一個形狀數組
- average:{‘micro’, ‘macro’, ‘samples’, ‘weighted’} 或無,默認='宏'
如果
None
,則返回每個類的分數。否則,這確定對數據執行的平均類型: 注意:多類 ROC AUC 當前僅處理 ‘macro’ 和 ‘weighted’ 平均值。'micro'
:通過將標簽指標矩陣的每個元素視為標簽來全局計算指標。
'macro'
:計算每個標簽的指標,並找到它們的未加權平均值。這沒有考慮標簽不平衡。
'weighted'
:計算每個標簽的指標,並找到它們的平均值,按支持度加權(每個標簽的真實實例數)。
'samples'
:計算每個實例的指標,並找到它們的平均值。
當
y_true
為二進製時將被忽略。- sample_weight:形狀類似數組 (n_samples,),默認=None
樣本權重。
- max_fpr:浮點數 > 0 和 <= 1,默認 = 無
如果不是
None
,則返回 [0, max_fpr] 範圍內的標準化部分 AUC [2]。對於多類情況,max_fpr
應該等於None
或1.0
,因為多類目前不支持 AUC ROC 部分計算。- multi_class:{‘raise’, ‘ovr’, ‘ovo’},默認='raise'
僅用於多類目標。確定要使用的配置類型。默認值會引發錯誤,因此必須顯式傳遞
'ovr'
或'ovo'
。'ovr'
:代表One-vs-rest。計算每個類別相對於其餘類別的 AUC [3] [4]。這以與多標簽情況相同的方式處理多類情況。即使
average == 'macro'
也對類別不平衡敏感,因為類別不平衡會影響每個 ‘rest’ 分組的組成。'ovo'
:代表One-vs-one。計算類的所有可能的成對組合的平均 AUC [5]。
average == 'macro'
時對類不平衡不敏感。
- labels:形狀類似數組 (n_classes,),默認=無
僅用於多類目標。索引
y_score
中的類的標簽列表。如果None
,則使用y_true
中標簽的數字或字典順序。
- auc:浮點數
參數:
返回:
參考:
- 1
- 2
- 3
教務長,F.,多明戈斯,P. (2000)。 Well-trained PETs:改進概率估計樹(第 6.2 節),CeDER 工作論文 #IS-00-04,紐約大學斯特恩商學院。
- 4
- 5
手,D.J.,蒂爾,R.J. (2001 年)。多類分類問題的 ROC 曲線下麵積的簡單概括。機器學習,45(2),171-186。
例子:
二進製情況:
>>> from sklearn.datasets import load_breast_cancer >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.metrics import roc_auc_score >>> X, y = load_breast_cancer(return_X_y=True) >>> clf = LogisticRegression(solver="liblinear", random_state=0).fit(X, y) >>> roc_auc_score(y, clf.predict_proba(X)[:, 1]) 0.99... >>> roc_auc_score(y, clf.decision_function(X)) 0.99...
多類案例:
>>> from sklearn.datasets import load_iris >>> X, y = load_iris(return_X_y=True) >>> clf = LogisticRegression(solver="liblinear").fit(X, y) >>> roc_auc_score(y, clf.predict_proba(X), multi_class='ovr') 0.99...
多標簽案例:
>>> import numpy as np >>> from sklearn.datasets import make_multilabel_classification >>> from sklearn.multioutput import MultiOutputClassifier >>> X, y = make_multilabel_classification(random_state=0) >>> clf = MultiOutputClassifier(clf).fit(X, y) >>> # get a list of n_output containing probability arrays of shape >>> # (n_samples, n_classes) >>> y_pred = clf.predict_proba(X) >>> # extract the positive columns for each output >>> y_pred = np.transpose([pred[:, 1] for pred in y_pred]) >>> roc_auc_score(y, y_pred, average=None) array([0.82..., 0.86..., 0.94..., 0.85... , 0.94...]) >>> from sklearn.linear_model import RidgeClassifierCV >>> clf = RidgeClassifierCV().fit(X, y) >>> roc_auc_score(y, clf.decision_function(X), average=None) array([0.81..., 0.84... , 0.93..., 0.87..., 0.94...])
相關用法
- Python sklearn roc_curve用法及代碼示例
- Python sklearn r2_score用法及代碼示例
- Python sklearn recall_score用法及代碼示例
- Python sklearn resample用法及代碼示例
- Python sklearn rand_score用法及代碼示例
- Python sklearn radius_neighbors_graph用法及代碼示例
- Python sklearn rbf_kernel用法及代碼示例
- 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用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn ndcg_score用法及代碼示例
- Python sklearn ShrunkCovariance用法及代碼示例
- Python sklearn SelfTrainingClassifier用法及代碼示例
- Python sklearn load_svmlight_file用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.metrics.roc_auc_score。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。