混淆矩阵是所有分类指标的源头,一张几格表就能算出精确率、召回率等全部指标。本文用一个邮件过滤的具体例子,逐格解释真正例、假正例、真反例、假反例四个格子,说明如何从中读出模型的错误类型,以及多分类时矩阵如何扩展。
核心要点
- 混淆矩阵把预测与真实的组合分成四个格子
- 假正例与假反例分别对应误报和漏报
- 多分类时矩阵扩展为方阵,对角线是分对的样本
一张四格表
混淆矩阵是一张表,行表示真实情况,列表示模型的预测,把每个样本按真实是什么、预测成什么放进对应的格子。二分类时是二乘二的四格表,多分类时扩展成方阵,对角线上的数字代表猜对的数量。
以邮件过滤为例,把“是垃圾”看作正例。模型正确拦下垃圾邮件,叫真正例;把正常邮件误判成垃圾,叫假正例,也就是误报;把垃圾邮件放进收件箱,叫假反例,也就是漏报;正常邮件正常放行,叫真反例。
从格子里读出毛病
四个格子一看,模型的问题就清楚了。假正例多,说明它过于敏感,宁可错杀也不放过,你会经常去垃圾箱里翻找重要邮件;假反例多,说明它过于宽松,收件箱里依然塞满广告。两种错误的用户体验完全不同,修改方向也不同。
所有常见指标都能从这四个数推出来。精确率是真正例除以所有被判为正例的数量,召回率是真正例除以所有真实正例的数量,准确率是对角线上数字之和除以总数。学会看这张表,就不必死记公式。
多分类与归一化
多分类时矩阵变成方阵,行数等于类别数。每一行代表这批真实样本被分到了哪里,哪一列上的数字大,就说明模型容易把它和哪一类搞混。比如猫狗马三分类里,猫被误判成狗的次数最多,提示这两类最接近,可以考虑补充区分性样本。
还有个实用技巧:先按行归一化,能看出每一类样本被漏到哪去了;再按列归一化,能看出模型预测的某一类里混进了哪些别的类。两种视角结合,下一步该补什么数据就很明确了。
常见问题
混淆矩阵里的数字多大才算好?
没有绝对标准,要看场景和类别比例。更实用的做法是比较:拿它和“全猜多数类”的基线模型对比,看是否真的有提升;再按行按列归一化,观察错误集中在哪一类。错误集中往往比整体数字低更值得优先处理。
本文为 AI 科普内容,仅用于知识普及,不构成任何技术选型、投资或职业决策建议。