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
由于阈值按从低到高排序,返回时它们被反转以确保它们对应于
fpr
和tpr
,在计算过程中它们按相反顺序排序。为确保曲线从
(0, 0)
开始,添加了一个任意阈值,对应于tpr=0
和fpr=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 ])