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=0
和fnr=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_proba
或decision_function
)上的递减阈值,用于计算 FPR 和 FNR。1.7 版本更改:对于
fpr=0
和fnr=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 ])