det_curve#

sklearn.metrics.det_curve(y_true, y_score, pos_label=None, sample_weight=None, drop_intermediate=False)[source]#

计算不同概率阈值下的检测误差权衡 (DET)。

注意

此指标用于评估二分类任务的排序和误差权衡。

用户指南中阅读更多信息。

0.24 版本新增。

1.7 版本更改:添加了一个无穷大的任意阈值,表示一个始终预测负类的分类器,即 fpr=0fnr=1,除非在有限阈值处已经达到 fpr=0

参数:
y_true形状为 (n_samples,) 的 ndarray

真实的二元标签。如果标签不是 {-1, 1} 或 {0, 1},则应显式给出 pos_label。

y_score形状为 (n_samples,) 的 ndarray

目标分数,可以是正类的概率估计、置信值,或未阈值化的决策度量(由某些分类器的“decision_function”返回)。对于 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,默认为 False

是否删除真实阳性 (tp) 与前一个或后一个阈值相比没有变化的阈值。所有具有相同 tp 值的点具有相同的 fnr,因此具有相同的 y 坐标。

1.7 版本新增。

返回:
fpr形状为 (n_thresholds,) 的 ndarray

假阳性率 (FPR),其中元素 i 是分数 >= thresholds[i] 的预测的假阳性率。这有时被称为误接受率或误报率。

fnr形状为 (n_thresholds,) 的 ndarray

假阴性率 (FNR),其中元素 i 是分数 >= thresholds[i] 的预测的假阴性率。这有时被称为误拒绝率或漏报率。

thresholds形状为 (n_thresholds,) 的 ndarray

决策函数(predict_probadecision_function)上的递减阈值,用于计算 FPR 和 FNR。

1.7 版本更改:对于 fpr=0fnr=1 的情况,添加了一个无穷大的任意阈值。

另请参阅

DetCurveDisplay.from_estimator

给定估计器和一些数据,绘制 DET 曲线。

DetCurveDisplay.from_predictions

给定真实和预测标签,绘制 DET 曲线。

DetCurveDisplay

DET 曲线可视化。

roc_curve

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

precision_recall_curve

计算精确度-召回率曲线。

示例

>>> import numpy as np
>>> from sklearn.metrics import det_curve
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, fnr, thresholds = det_curve(y_true, y_scores)
>>> fpr
array([0.5, 0.5, 0. ])
>>> fnr
array([0. , 0.5, 0.5])
>>> thresholds
array([0.35, 0.4 , 0.8 ])