在机器学习领域,特别是在二元分类任务中,评估模型性能的一个重要指标是错误率,它包括假阳性率(False Positive Rate, FPR)和假阴性率(False Negative Rate, FNR)。这些指标可以帮助理解模型在不同决策阈值下的表现,从而做出更加合理的决策。本文将介绍如何计算这些错误率,并展示相应的代码示例。
在计算错误率之前,需要了解几个关键参数:
计算错误率后,可以得到以下返回值:
以下是使用Python中的scikit-learn库计算错误率的示例代码:
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)
# 打印结果
print("FPR:", fpr)
print("FNR:", fnr)
print("Thresholds:", thresholds)
除了计算错误率,还可以将这些数据可视化为DET曲线,以更直观地展示模型在不同阈值下的表现。这可以通过使用scikit-learn中的DetCurveDisplay类来实现。
from sklearn.metrics import DetCurveDisplay
# 创建DET曲线显示对象
display = DetCurveDisplay.from_estimator(estimator=None, X=y_true, y_true=y_true, y_scores=y_scores)
# 显示DET曲线
display.plot()