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 | array-like of shape (n_samples,) or (n_samples, n_classes) 真實標簽或二進制標簽指示符。二元和多類情況下期望形狀(n_samples,)的標簽,而多標簽情況則期望形狀(n_samples,n_classes)的二進制標簽指示符。 |
y_score | array-like of shape (n_samples,) or (n_samples, n_classes) 目標分數。在二進制和多標簽的情況下,這些值可以是概率估計值,也可以是非閾值決策值(由某些分類器上的Decision_function返回)。在多類情況下,這些必須是總和為1的概率估計值。在二進制情況下,期望的形狀是(n_samples,),并且分數必須是標簽較大的類別的分數。 多類和多標簽的情況需要一個形狀(n_samples,n_classes)。在多類情況下,類分數的順序必須與標簽的順序(如果提供)相對應,或者與y_true中標簽的數字或詞典順序相對應。 |
average | {‘micro’, ‘macro’, ‘samples’, ‘weighted’} or None, default=’macro’ 如果為None,則返回每個類的分數。否則,將根據數據的平均表現確定類型:注意:多類ROC AUC當前僅處理‘macro’和‘weighted’平均值。 - 'micro' :通過將標簽指標矩陣的每個元素都視為標簽來全局計算指標。 - 'macro' :計算每個標簽的指標,并找到其未加權平均值。此處未考慮標簽不平衡。 - 'weighted' :計算每個標簽的指標,并找到它們的平均值,然后按支持率(每個標簽的真實實例數)加權。 - 'samples' :計算每個實例的指標,并找到它們的平均值。 當y_true為二進制時將被忽略。 |
sample_weight | array-like of shape (n_samples,), default=None 樣本權重。 |
max_fpr | float > 0 and <= 1, default=None 如果不為None,則返回范圍為[0,max_fpr]的標準化部分AUC [2]。 對于多類情況,max_fpr應該等于None或1.0,因為多類當前不支持AUC ROC部分計算。 |
multi_class | {‘raise’, ‘ovr’, ‘ovo’}, default=’raise’ 僅多類。確定要使用的配置類型。默認值引發錯誤,因此必須顯式傳遞'ovr'或'ovo'。 - 'ovr' :計算每個類相對于其他類的AUC[3] [4]。這以與多標簽案例相同的方式對待多類別案例。 即使average=='macro',也對類失衡敏感,因為類失衡會影響每個‘rest’分組的組成。 - 'ovo' :計算類別的所有可能的成對組合的平均AUC [5]。 當均average == 'macro'時,對類失衡不敏感。 |
labels | array-like of shape (n_classes,), default=None 僅多類。 索引y_score中的類的標簽列表。如果為None,則使用y_true中標簽的數字或字典順序。 |
返回值 | 說明 |
---|---|
auc | float |
另見:
precision-recall曲線下的面積
計算接收器工作特性(ROC)曲線
參考
1 Wikipedia entry for the Receiver operating characteristic
2 Analyzing a portion of the ROC curve. McClish, 1989
3 Provost, F., Domingos, P. (2000). Well-trained PETs: Improving probability estimation trees (Section 6.2), CeDER Working Paper #IS-00-04, Stern School of Business, New York University.
4 Fawcett, T. (2006). An introduction to ROC analysis. Pattern Recognition Letters, 27(8), 861-874.
5 Hand, D.J., Till, R.J. (2001). A Simple Generalisation of the Area Under the ROC Curve for Multiple Class Classification Problems. Machine Learning, 45(2), 171-186.
示例
>>> import numpy as np
>>> from sklearn.metrics import roc_auc_score
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> roc_auc_score(y_true, y_scores)
0.75