二分类 · Binary classification

由混淆矩阵或预测概率,把每个评估指标算出来

粘贴「真实标签, 预测概率」两列,或直接填 TP、FP、FN、TN。每个指标都写出公式和代入的数,拖动阈值看混淆矩阵、ROC 与 PR 曲线怎么一起变。数据只在你的浏览器里计算,不会上传。

  • 准确率
  • 精确率
  • 召回率
  • F1 / Fβ
  • 特异度
  • MCC
  • ROC · AUC
  • PR · AP

输入数据 INPUT

逗号、空格、制表符都可以分隔;可以直接从表格里复制两列粘贴。第一行是表头会自动跳过。

当前混淆矩阵 CONFUSION

0.5

拖动或用方向键微调,混淆矩阵、指标卡和两张图上的圆点会一起变。

预测为正预测为负合计
真实为正TP6真正例FN2假负例 · 漏报8
真实为负FP4假正例 · 误报TN8真负例12
合计101020

20 个样本 · 正类 8 个 · 负类 12 个 · 当前阈值下准确率 0.7000

正类占比0.4000PR 曲线的随机参照
AUC0.8125不依赖阈值
AP0.7607不依赖阈值
01

指标卡

每张卡给出这个数回答的问题、标准公式,以及把当前混淆矩阵代进去的过程。分母为 0 时显示「无定义」,处理办法见公式与约定

M-01

准确率 Accuracy

0.700070.0%

所有样本里判对了多少

公式
(TP + TN) / (TP + FP + FN + TN)
代入
= (6 + 8) / 20 = 14 / 20 = 0.7000
M-02

精确率 Precision

0.600060.0%

判为正的样本里,真是正的占多少

公式
TP / (TP + FP)
代入
= 6 / (6 + 4) = 6 / 10 = 0.6000
M-03

召回率 Recall / TPR

0.750075.0%

真正的正样本里,被找出来多少

公式
TP / (TP + FN)
代入
= 6 / (6 + 2) = 6 / 8 = 0.7500
M-04

F1 值 F1 score

0.666766.7%

精确率与召回率的调和平均

公式
2TP / (2TP + FP + FN)
代入
= 2×6 / (2×6 + 4 + 2) = 12 / 18 = 0.6667
M-05

F2 值 F-beta (β = 2)

0.714371.4%

召回率的权重是精确率的 2 倍

公式
(1 + β²)TP / ((1 + β²)TP + β²FN + FP)
代入
= 5×6 / (5×6 + 4×2 + 4) = 30 / 42 = 0.7143
M-06

特异度 Specificity / TNR

0.666766.7%

真正的负样本里,被正确放过多少

公式
TN / (TN + FP)
代入
= 8 / (8 + 4) = 8 / 12 = 0.6667
M-07

假正率 FPR = 1 − 特异度

0.333333.3%

负样本里被误判为正的比例(ROC 的横轴)

公式
FP / (FP + TN)
代入
= 4 / (4 + 8) = 4 / 12 = 0.3333
M-08

阴性预测值 NPV

0.800080.0%

判为负的样本里,真是负的占多少

公式
TN / (TN + FN)
代入
= 8 / (8 + 2) = 8 / 10 = 0.8000
M-09

平衡准确率 Balanced accuracy

0.708370.8%

正负两类各自判对比例的平均,不受类别比例影响

公式
(召回率 + 特异度) / 2
代入
= (0.75 + 0.666667) / 2 = 0.7083
M-10

MCC Matthews 相关系数

0.408240.8%

−1 到 1:1 全对,0 与瞎猜无异,−1 全反

公式
(TP·TN − FP·FN) / √((TP+FP)(TP+FN)(TN+FP)(TN+FN))
代入
= (6×8 − 4×2) / √(10×8×12×10) = 40 / 97.97959 = 0.4082
02

ROC 曲线与 PR 曲线

把每个不同的分数依次当作阈值,就得到一串混淆矩阵;ROC 画的是它们的(假正率, 召回率),PR 画的是(召回率, 精确率)。圆点是当前阈值所在的位置。

ROC 曲线

AUC0.8125
000.250.250.50.50.750.7511假正率 FPR召回率 TPR当前阈值:FPR 0.3333,TPR 0.7500
虚线是随机打分的参照线(AUC = 0.5)。AUC 等于随机抽一个正样本和一个负样本、正样本分数更高的概率。

PR 曲线

AP0.7607
000.250.250.50.50.750.7511召回率 Recall精确率 Precision正类占比 0.4当前阈值:召回率 0.7500,精确率 0.6000
虚线是正类占比,随机打分的 PR 曲线大致落在这条线附近。AP 按阶梯求和,不插值。
03

这些数各回答什么问题

正类很少时,准确率为什么会骗人?
1000 个样本里只有 20 个正类,全部判负也有 98% 的准确率。这时要看召回率(找回了多少正类)和精确率(报出来的有多少是真的)。笔记里有完整算例
精确率和召回率哪个重要?
看两类错误各自的代价:误报(FP)代价高时更在意精确率,漏报(FN)代价高时更在意召回率。Fβ 用一个 β 把这个偏好写进公式。
AUC 和阈值有关吗?
无关。AUC 只看分数把正负样本排得对不对,扫过了所有阈值。准确率、F1 这些都要先选定一个阈值才有值。
ROC 和 PR 看哪个?
两张图用的是同一串混淆矩阵。负类很多时,ROC 的横轴(假正率)变化很小,PR 曲线对误报更敏感,更容易看出差别。
MCC 有什么用?
它同时用到四个格子,正负两类哪边判得差都会被拉低,不会因为某一类特别多就显得好看。取值 −1 到 1,0 相当于随机猜。
为什么有的指标显示「无定义」?
分母为 0 的时候,比如模型一个正类都没判出,精确率就没有意义。本站不把它当成 0 或 1,约定页逐条写了处理办法。
04

另外几张计算台

05

笔记