分类性能度量

拖动决策阈值,实时观察混淆矩阵、错误率、精度、查准率、查全率与 F1 的变化, 并同步观察 P-R 曲线与 ROC 曲线上的工作点如何移动。

1公式与参数说明

下面五个公式构成了二分类任务最核心的性能度量体系。所有指标均可由混淆矩阵的四个计数推导得到。

混淆矩阵 基础

把样本按「真实类别 × 预测类别」分成四类。TP、TN 是判断正确的部分,FP、FN 是两类错误——它们对应着完全不同的业务代价。

错误率与精度 整体

错误率是分类错误的样本比例,精度是分类正确的样本比例,二者互补。它们把 FP 与 FN 一视同仁,因此不适合类别极不平衡的场景。

查准率与查全率 局部

查准率(Precision)衡量「预测为正的样本中有多少是真的正例」;查全率(Recall)衡量「真正的正例中有多少被找了出来」。两者天然相互制约。

F1 度量 折中

F1 是查准率与查全率的调和平均,对较小的那个值更敏感。只有当 P 和 R 都较高时,F1 才会高——它是二者的平衡打分。

ROC 曲线与 AUC 排序能力

以 FPR 为横轴、TPR 为纵轴,遍历所有阈值得到 ROC 曲线;曲线下面积即 AUC。AUC 等价于「随机取一个正例和一个负例,模型把正例排在负例前面的概率」。

参数与符号说明

符号 名称 含义
TP 真正例 True Positive 真实为正例,模型也预测为正例的样本数
FN 假反例 False Negative 真实为正例,却被预测为负例的样本数(漏报)
FP 假正例 False Positive 真实为负例,却被预测为正例的样本数(误报)
TN 真反例 True Negative 真实为负例,模型也预测为负例的样本数
m 样本总数 评估数据集中的样本个数,m = TP + FP + TN + FN
f 学习器 / 模型 待评估的分类函数,通常输出一个 [0,1] 的预测概率
D 数据集 用于评估的样本集合,其中每个样本带有真实标记 y
θ 决策阈值 预测概率 ≥ θ 判为正例,否则判为负例;本页所有指标随 θ 实时变化

2交互模拟

左侧调整参数,右侧实时呈现公式的计算结果与可视化曲线。

计算结果与可视化
精度 Accuracy
0.00
错误率 Error
0.00
查准率 Precision
0.00
查全率 Recall
0.00
F1 度量
0.00
预测正
预测负
真实正
0TP 真正例
0FN 假反例
真实负
0FP 假正例
0TN 真反例
正在计算…
📉 P-R 曲线(查全率 → 查准率)
📈 ROC 曲线 AUC 0.00

3深入理解

📘标准介绍

在机器学习中,性能度量(Performance Measure)是衡量模型泛化能力的评价标准。 对二分类任务,最基础的做法是先把预测结果与真实标记逐一比对,统计出混淆矩阵的四个计数:TP、FN、FP、TN。

在此基础上定义:错误率 E = 1 − (TP+TN)/m, 精度 acc = (TP+TN)/m; 查准率 P = TP/(TP+FP), 查全率 R = TP/(TP+FN); F1 = 2PR/(P+R)。

由于查准率与查全率此消彼长,通常还要遍历所有决策阈值,绘制 P-R 曲线(横轴 R、纵轴 P) 与 ROC 曲线(横轴 FPR、纵轴 TPR),并用曲线下面积 AUC 作为与阈值无关的整体排序能力度量。

💡通俗介绍

把模型想象成一个安检系统:

  • 查准率回答:「警报响了,这件东西真的是危险品的概率有多大?」——查准率低意味着大量误报,安检员天天被折腾。
  • 查全率回答:「所有危险品里,有多少被警报成功发现了?」——查全率低意味着漏检,后果可能非常严重。
  • 决策阈值就是安检的灵敏度旋钮:调低(更敏感)→ 几乎所有东西都报警 → 查全率↑、查准率↓;调高(更宽松)→ 只对非常可疑的东西报警 → 查准率↑、查全率↓。
  • F1 是二者的平衡打分:只要有一项很烂,F1 就会很难看。

拖动本页左侧的阈值滑块,就能直观感受到这个「灵敏度旋钮」如何左右权衡。

🎯解决了什么问题

它回答了模型评估中最关键的三个问题:

  • 模型好不好?——用一个或一组数值给出可比较、可复现的结论,而不是靠感觉。
  • 错误代价是什么?——精度把所有错误一视同仁,而查准率/查全率把 FP 与 FN 分开计量,让不同业务代价可以被显式建模。
  • 阈值该定在哪?——P-R 曲线与 ROC 曲线把「所有阈值下的表现」一次性画出来,帮助选择真正符合业务要求的工作点,而不是默认 0.5。

⭐为什么重要

没有正确的度量,就没有正确的优化方向。选错指标会直接导致模型在真实场景中失效:

  • 在类别极不平衡的数据上(例如 1% 的欺诈样本),一个「全部预测为负」的模型精度可以高达 99%,但毫无价值——此时应该看查准率、查全率或 AUC。
  • 度量指标直接决定了模型选择、超参数调优与阈值设定的优化目标。
  • 在风控、医疗等强监管领域,可解释的指标(如查全率必须 ≥ 95%)是上线准入的硬性条件。

🏭应用场景

  • 医疗筛查:癌症初筛优先保证高查全率(宁可误报,不可漏诊),再通过复检控制查准率。
  • 垃圾邮件过滤:更关注查准率,因为把正常邮件误判为垃圾邮件(FP)的代价很高。
  • 金融风控 / 反欺诈:极不平衡数据,常用 P-R 曲线与 AUC 共同评估,并配合代价敏感阈值。
  • 推荐与搜索排序:把排序问题转化为二分类,用 AUC 衡量排序质量。
  • 工业质检:漏检(FN)会造成客诉,误检(FP)会增加返工成本,需按成本比选择工作点。
  • 模型监控:线上持续统计混淆矩阵,监控查准率/查全率的漂移。

⚠️局限与缺陷

  • 精度陷阱:在类别不平衡时精度具有极强的误导性,必须结合查准率/查全率。
  • AUC 的盲区:AUC 是全局排序指标,对类别极不平衡或只关心高分区域的场景不敏感;两个模型的 ROC 曲线可以交叉,此时 AUC 更大不代表实际更好。
  • F1 的隐含假设:F1 默认查准率与查全率同等重要,且只适用于二分类的单一类别;多分类需用 macro-F1 或 micro-F1。
  • 阈值依赖:查准率、查全率、F1 都依赖于某个特定阈值,脱离阈值单独比较没有意义。
  • 忽略概率校准:这些指标只关心「排序」和「判对与否」,不衡量预测概率是否准确;若下游需要真实概率,还需 Brier Score 或校准曲线。
  • 忽略代价差异:FP 与 FN 的实际代价通常相差巨大,标准指标并未体现,需要引入代价敏感学习。