在机器学习模型评估中,一个常见误区是仅凭单一准确率数字判断性能。例如,某新闻声称一套面部识别系统的识别率高达99.8%,大多数人第一反应是“哇,真准”。但如果反过来思考——假设实际应用中信息不匹配的概率仅为1%,那么即便系统不做任何判断,全部判为匹配,识别率也能达到99%。若信息不匹配概率进一步降至0.1%,盲目猜测也能获得99.9%的准确率。可见,若不考虑样本的先验分布,仅凭一个识别率数字评判机器学习系统,极易产生误导。

图一,图片来源:根据中国慕课大学《机器学习概论》资料制作
因此,要科学评估模型性能,需要更细致的指标,如混淆矩阵(Confusion Matrix)和ROC曲线。本文首先介绍混淆矩阵的实际应用方法。
一、混淆矩阵的构成形式
混淆矩阵本质上是一个2×2的表格,通过对比预测结果与真实情况,记录两种正确识别和两种错误识别:
- True Positive(TP)——正样本被正确预测为正样本的数量(或概率)
- True Negative(TN)——负样本被正确预测为负样本的数量(或概率)
- False Negative(FN)——正样本被错误预测为负样本的数量(或概率)
- False Positive(FP)——负样本被错误预测为正样本的数量(或概率)
| 预测 | |||
| 实际 | 正样本 | 负样本 | |
| 正样本 | True Positive(TP) | False Negative(FN) | |
| 负样本 | False Positive(FP) | True Negative(TN) | |
表一,内容来源:中国慕课大学《机器学习概论》
二、兵(车)王问题混淆矩阵的数值形式
以“兵(车)王”问题为例,测试样本总数23086个,其混淆矩阵如下:
| 预测 | |||
| 实际 | 正样本 | 负样本 | |
| 正样本 | TP(2249) | FN(39) | |
| 负样本 | FP(51) | TN(20717) | |
表二,内容来源:中国慕课大学《机器学习概论》
根据表二,模型正确识别了2249个正样本和20717个负样本;同时漏检了39个正样本(误判为负),误检了51个负样本(误判为正)。进一步计算,实际正样本总数为TP+FN=2288,负样本总数为FP+TN=20768。模型的整体识别率为(TP+TN)/(TP+TN+FP+FN)=99.61%。
然而,如果换一种策略——将所有样本都预测为负样本,准确率也能达到(FP+TN)/(TP+TN+FP+FN)=89.96%。这意味着该模型99.61%的识别率是在一个盲猜正确率近90%的问题上取得的。因此,尽管模型表现不错,但实际效果并不如数字看上去那么突出。
三、兵(车)王问题混淆矩阵的概率形式
由于正负样本数量固定,可将混淆矩阵转换为概率形式(按行归一化)。具体计算如下:
- TP = 2249 / 2288 = 98.295%
- FN = 39 / 2288 = 1.705%
- FP = 51 / 20768 = 0.246%
- TN = 20717 / 20768 = 99.754%
转换后得到表三:
| 预测 | |||
| 实际 | 正样本 | 负样本 | |
| 正样本 | TP(98.295%) | FN(1.705%) | |
| 负样本 | FP(0.246%) | TN(99.754%) | |
表三,内容来源:中国慕课大学《机器学习概论》
注意,此时每一行的概率之和均为1:TP+FN=1,FP+TN=1。这种概率形式的混淆矩阵能更直观地展示模型在各类别上的表现——正样本中98.3%被正确识别,负样本中99.75%被正确识别,两类错误率均较低。这才是评估模型性能时真正需要关注的核心指标。
