1. 混淆矩阵是什么
混淆矩阵(Confusion Matrix)是用于二分类或多分类问题评估模型性能的常见工具。它通过一个矩阵来展示模型在预测时各类别之间的“混淆”情况——即真实标签和预测标签的对应关系。
二分类中的混淆矩阵示例
对于二分类问题(如“是否患病”、“好瓜/坏瓜”等),混淆矩阵通常是一个 的表格:
预测:负类 (Negative) |
预测:正类 (Positive) |
|
---|---|---|
真实:负类 (Negative) |
True Negative (TN) |
False Positive (FP) |
真实:正类 (Positive) |
False Negative (FN) |
True Positive (TP) |
• True Negative (TN):真实为负类,模型也预测为负类
• False Positive (FP):真实为负类,但模型错误地预测为正类(“假正例”)
• False Negative (FN):真实为正类,但模型错误地预测为负类(“假负例”)
• True Positive (TP):真实为正类,模型预测也为正类
如果是多分类,混淆矩阵就会变成 的表格( 为类别数),行表示“真实类别”,列表示“预测类别”,对角线上的数字表示被正确预测的样本数,而非对角线上的数字表示不同类别间的混淆。
2. 怎么计算混淆矩阵
1. 预测结果与真实标签对比
• 在测试集或验证集上,模型会给出每个样本的预测标签;
• 同时,我们也知道该样本的真实标签。
2. 分类对比统计
• 对于每个样本,查看其“真实标签”和“预测标签”组合;
• 在二分类情况下,如果真实为正、预测也为正,则对“TP”计数加 1;真实为负、预测为负,则对“TN”计数加 1,依此类推;
• 对所有测试样本进行统计后,就能得到混淆矩阵四个格子的数值 (TN, FP, FN, TP)。
例子演示
假设我们有一个二分类模型,测试集中有 10 个样本。真实标签和预测标签如下表所示:
样本 |
真实标签 (Actual) |
预测标签 (Predicted) |
---|---|---|
1 |
正 (1) |
正 (1) |
2 |
正 (1) |
负 (0) |
3 |
负 (0) |
负 (0) |
4 |
正 (1) |
正 (1) |
5 |
负 (0) |
负 (0) |
6 |
正 (1) |
负 (0) |
7 |
负 (0) |
正 (1) |
8 |
正 (1) |
正 (1) |
9 |
负 (0) |
负 (0) |
10 |
负 (0) |
负 (0) |
让我们统计一下:
• TP(真正例):真实为正、预测也为正。表中样本 #1, #4, #8 共 3 个。
• TN(真负例):真实为负、预测也为负。表中样本 #3, #5, #9, #10 共 4 个。
• FP(假正例):真实为负、预测却为正。表中样本 #7 共 1 个。
• FN(假负例):真实为正、预测却为负。表中样本 #2, #6 共 2 个。
所以混淆矩阵如下:
预测:负 (0) |
预测:正 (1) |
|
---|---|---|
真实:负(0) |
TN = 4 |
FP = 1 |
真实:正(1) |
FN = 2 |
TP = 3 |
3. 混淆矩阵有什么作用
1. 精细化分析模型错误类型
• 混淆矩阵不仅能告诉我们模型总体上对多少样本预测正确,也能告诉我们“模型容易把正例预测成负例”还是“容易把负例预测成正例”。在很多实际任务中,这个区别非常重要(如医疗诊断中,FP 与 FN 的代价不一样)。
2. 衍生多种评价指标
• 通过混淆矩阵的 TP, TN, FP, FN,能计算准确率 (Accuracy)、精确率 (Precision)、召回率 (Recall)、F1-score 等多种指标。
• 这些指标能更全面地评估模型在不同角度(如区分不同错误类型)上的表现。
• 在多分类情形下,通过对混淆矩阵对角线和非对角线元素进行统计,