det_curve#

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

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

注意:通过一对多或一对一方式,不支持超出二元分类任务的扩展。

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 or str, default=None

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

sample_weightshape 为 (n_samples,) 的 array-like, default=None

样本权重。

drop_intermediate布尔值,默认为 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

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

在 1.7 版本中更改: fpr=0fnr=1 的情况添加了一个任意的无限阈值。

另请参阅

DetCurveDisplay.from_estimator

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

DetCurveDisplay.from_predictions

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

DetCurveDisplay

DET 曲线可视化。

roc_curve

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

precision_recall_curve

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

confusion_matrix_at_thresholds

对于二分类,计算每个阈值的真阴性、假阳性、假阴性和真阳性计数。

示例

>>> 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 ])