本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。