混淆矩阵把错误变成模式
混淆矩阵把「错了多少」变成「怎么错的」:行是真实类别,列是预测类别,对角线是判对的量,非对角线是判错的量与方向。看非对角线的高值格,能立刻发现哪两类在互相混,以及混淆是不是单向的。单向混淆通常指向某一类的定义或示例不足,双向混淆则更可能是类别边界本身模糊。
基本信息
| 适用 | 多分类、意图识别、工单归类、内容审核标签 |
|---|---|
| 读法 | 行=真实,列=预测;按行归一化更易比较 |
| 关注点 | 非对角线高值格与混淆方向 |
| 产出 | 每条结论对应一个具体改动动作 |
典型使用场景
- 意图分类上线前检查:漏判与误判集中在哪些类
- 工单归类:判断是标签定义问题还是提示问题
- 多标签审核:找出被系统性放过的内容类型
- 与上一版对比:看混淆结构是否被改善而非只看总数
- 抽样复核的取样依据:按高混淆类抽样本读原文
分析流程
分析流程
# 1) 统计混淆矩阵(行=真实,列=预测)
# 2) 找非对角线高值格,列出互混的类对与方向
# 3) 从互混样本里抽 10-20 条读原文,归因三类:
# 类定义模糊 / 样本本身有歧义 / 提示约束不足
# 4) 落到动作:改标签定义、补少样本示例、或接受现状并记录
# 5) 改完只重跑受影响类别的样本,再回放全集确认未牵连其他类混淆矩阵读法示例
| 真实 \ 预测 | A 咨询 | B 投诉 | C 查询进度 |
|---|---|---|---|
| A 咨询 | 82 | 14 | 4 |
| B 投诉 | 9 | 88 | 3 |
| C 查询进度 | 6 | 2 | 92 |
上表里 A→B 是 14 条而 B→A 只有 9 条,属于单向偏斜:提示里对「投诉」的识别过于敏感,把带情绪表达的咨询也判成了投诉。这类问题改提示的措辞比加样本更直接。
矩阵按行归一化后(每行除以该行总数)比原始计数更容易横向比较。样本量差异大的类别放在一起看原始计数,会被大类完全主导。