roc_curve#

sklearn.metrics.roc_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=True)#

计算接收者操作特征(ROC)。

注意:此实现仅限于二分类任务。

更多信息请参阅 用户指南

Parameters:
y_true类数组形状 (n_samples,)

真实的二进制标签。如果标签不是{-1, 1}或{0, 1},则应明确给出pos_label。

y_score类数组形状 (n_samples,)

目标分数,可以是正类的概率估计、置信值或无阈值的决策度量(如某些分类器的“decision_function”返回的)。

pos_labelint, float, bool 或 str, 默认=None

正类的标签。 当 pos_label=None 时,如果 y_true 是{-1, 1}或{0, 1}, pos_label 设置为1,否则将引发错误。

sample_weight类数组形状 (n_samples,), 默认=None

样本权重。

drop_intermediatebool, 默认=True

是否丢弃一些次优阈值,这些阈值在绘制的ROC曲线上不会出现。这有助于创建更轻量的ROC曲线。

Added in version 0.17: 参数 drop_intermediate

Returns:
fprndarray 形状 (>2,)

增加的假阳性率,使得元素 i 是分数 >= thresholds[i] 的预测的假阳性率。

tprndarray 形状 (>2,)

增加的真阳性率,使得元素 i 是分数 >= thresholds[i] 的预测的真阳性率。

thresholdsndarray 形状 (n_thresholds,)

用于计算 fpr 和 tpr 的决策函数上的递减阈值。 thresholds[0] 表示没有实例被预测,并被任意设置为 np.inf

See also

RocCurveDisplay.from_estimator

给定估计器和数据绘制接收者操作特征(ROC)曲线。

RocCurveDisplay.from_predictions

给定真实值和预测值绘制接收者操作特征(ROC)曲线。

det_curve

计算不同概率阈值的错误率。

roc_auc_score

计算ROC曲线下面积。

Notes

由于阈值按从低到高排序,返回时它们被反转以确保它们对应于 fprtpr ,在计算过程中它们按相反顺序排序。

为确保曲线从 (0, 0) 开始,添加了一个任意阈值,对应于 tpr=0fpr=0 。此阈值对应于 np.inf

References

[2]

Fawcett T. ROC分析简介[J]. 模式识别快报, 2006, 27(8):861-874.

Examples

>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
>>> fpr
array([0. , 0. , 0.5, 0.5, 1. ])
>>> tpr
array([0. , 0.5, 0.5, 1. , 1. ])
>>> thresholds
array([ inf, 0.8 , 0.4 , 0.35, 0.1 ])