什么是准确率计算器?
准确率(Accuracy)是评估分类模型最常用的指标之一。它衡量的是模型在所有预测中预测正确的比例——既包括正确预测为正类的样本,也包括正确预测为负类的样本。本计算器可将混淆矩阵中的四个数值,直接换算成以比值和百分比两种形式表示的准确率得分。
如何使用
请从你的混淆矩阵中填入以下四个数值:
- TP(真阳性,True Positives)——实际为正类、且被正确预测为正类的样本。
- TN(真阴性,True Negatives)——实际为负类、且被正确预测为负类的样本。
- FP(假阳性,False Positives)——实际为负类、却被错误预测为正类的样本。
- FN(假阴性,False Negatives)——实际为正类、却被错误预测为负类的样本。
填好后计算器会自动得出准确率。手边没有工具?只需把这四个数字相加,套用下面的公式即可。
公式详解
准确率 = (TP + TN) / (TP + TN + FP + FN)。
$$\text{Accuracy} = \dfrac{TP + TN}{TP + TN + FP + FN}$$分子表示所有预测正确的样本数,分母则是预测的样本总数。结果乘以 100,即可转换为百分比。
$$\text{Accuracy \%} = \text{Accuracy} \times 100$$
实例演示
假设某模型的结果为 \(TP = 80\)、\(TN = 70\)、\(FP = 20\)、\(FN = 30\)。则预测正确的样本数 \(= 80 + 70 = 150\);样本总数 \(= 80 + 70 + 20 + 30 = 200\)。
$$\text{Accuracy} = \dfrac{150}{200} = 0.75 = 75\%$$不同场景中的准确性
相同的准确性公式 \(\text{准确性} = \frac{\text{真正例} + \text{真负例}}{\text{真正例} + \text{真负例} + \text{假正例} + \text{假负例}} \times 100\%\) 可能隐藏非常不同的模型行为。下面的每个场景都使用总共 100 个案例,因此百分比可以直接比较。
| 场景 | 真正例 | 真负例 | 假正例 | 假负例 | 准确性 |
|---|---|---|---|---|---|
| 平衡数据集,优秀模型 | 45 | 45 | 5 | 5 | 90% |
| 不平衡,大多数为负例(罕见疾病) | 2 | 93 | 2 | 3 | 95% |
| "始终预测负例"基线 | 0 | 95 | 0 | 5 | 95% |
| 假正例多(过度警报) | 48 | 22 | 28 | 2 | 70% |
| 假负例多(遗漏正例) | 20 | 50 | 0 | 30 | 70% |
关键结论是第二行和第三行的比较:一个模型只是盲目预测多数类,其准确率与一个能实际检测到一些正例的模型相同,都是 95%。在平衡数据集上(第 1 行),准确性信息更丰富。最后两行表明,两个准确性都为 70% 的模型可能以相反的、相互矛盾的方式失败——一个充满假警报,另一个默默遗漏正例。
解读你的准确性分数
准确性是分类器正确预测的所有样本的比例——既包括正例也包括负例。90% 的准确性意味着每 10 个案例中有 9 个被正确标记,对应的错误率是 \(100\% - 90\% = 10\%\)。这直观易于沟通,正好是它经常被误读的原因。
始终与无信息基线比较。 最诚实的理智检查是多数类基线:如果你总是猜测最常见的类,你会得到的准确性。如果 95% 的案例是负例,一个盲目预测"负例"的分类器已经能得到 95% 的准确性。一个真实的模型必须超过这个基线才值得采用——95% 的准确性在 50/50 分割上令人印象深刻,但在 95/5 分割上毫无价值。
高准确性何时具有误导性。 在严重不平衡的数据上,准确性由多数类主导。一个欺诈检测器、罕见疾病筛查或缺陷检测器可能报告 99% 的准确性,但实际上捕获的罕见正例几乎为零。在这些情况下,假负例和假正例的成本通常非常不同,单个总体百分比无法反映这一点。
补充准确性的指标:
- 精确性 — 在预测为正例的案例中,有多少真的是正例:\(\text{真正例}/(\text{真正例}+\text{假正例})\)。当假正例成本高时使用。
- 召回率(灵敏度) — 在实际正例中,你捕获了多少:\(\text{真正例}/(\text{真正例}+\text{假负例})\)。当遗漏一个正例成本高时使用。
- 特异性 — 在实际负例中,有多少被正确排除:\(\text{真负例}/(\text{真负例}+\text{假正例})\)。
- F1 分数 — 精确性和召回率的调和平均数,在正例类中平衡两者的单一数字。
- 平衡准确性 — 灵敏度和特异性的平均值,纠正了类别不平衡,在类别分布不均时是更好的标题数字。
对于上面的平衡例子(真正例=45,假正例=5,假负例=5),召回率和精确性都是 \(45/50 = 90\%\),所以准确性、精确性和召回率都一致——这表明数据集是平衡的。当它们差异很大时,信任单类指标而不是单个准确性数字。这是通用的技术信息,不是对你特定问题的领域特定评估的替代品。
定义与术语表
- 真正例(TP)
- 模型正确预测为正例的正例案例(例如,患病患者被标记为患病)。
- 真负例(TN)
- 模型正确预测为负例的负例案例(例如,健康患者被清除为健康)。
- 假正例(FP)
- 被错误预测为正例的负例案例——假警报。也称为第 I 类错误。
- 假负例(FN)
- 被错误预测为负例的正例案例——遗漏。也称为第 II 类错误。
- 混淆矩阵
- 一个 2×2 表格,交叉制表预测类与实际类,其四个单元格为真正例、真负例、假正例和假负例。它是几乎所有分类指标的源头。
- 准确性
- 所有预测中正确的比例:\((\text{真正例}+\text{真负例})/(\text{真正例}+\text{真负例}+\text{假正例}+\text{假负例})\),通常表示为百分比。
- 错误率
- 预测中错误的比例:\((\text{假正例}+\text{假负例})/(\text{真正例}+\text{真负例}+\text{假正例}+\text{假负例}) = 1 - \text{准确性}\)。
- 精确性
- 正例预测值:\(\text{真正例}/(\text{真正例}+\text{假正例})\) — 正例预测有多可信。
- 召回率
- 灵敏度或真正例率:\(\text{真正例}/(\text{真正例}+\text{假负例})\) — 发现了多少实际正例。
- 特异性
- 真负例率:\(\text{真负例}/(\text{真负例}+\text{假正例})\) — 正确识别了多少实际负例。
- F1 分数
- 精确性和召回率的调和平均数:\(2 \cdot \frac{\text{精确性} \cdot \text{召回率}}{\text{精确性} + \text{召回率}}\),正例类性能的单一平衡度量。
常见问题
准确率一定是好指标吗?不一定。在类别不平衡的数据集上(例如 95% 的样本都是负类),模型只要一律预测为多数类,就能获得很高的准确率,但实际意义有限。这时还应结合查准率(Precision)、查全率(Recall)和 F1 值一起评估。
准确率的取值范围是多少?介于 0(全部预测错误)到 1(全部预测正确)之间,对应 0%–100%。
它适用于多分类问题吗?适用。此时把 \(TP + TN\) 理解为所有类别中被正确分类的样本总数,分母则为样本总数即可。