【机器学习】混淆矩阵(confusion matrix)TP TN FP FN

positive是攻击 negative是正常

这四个是**混淆矩阵(confusion matrix)**里的基本计数,衡量分类结果和真实标签的对应关系。

二分类(只有"正/负"两类)时

真实\预测 预测为正(attack) 预测为负(normal)
真实为正(attack) TP(True Positive,真正)模型把攻击判成攻击 FN(False Negative,假负/漏报)模型把攻击判成正常
真实为负(normal) FP(False Positive,假正/误报)模型把正常判成攻击 TN(True Negative,真负)模型把正常判成正常
  • TP:抓到的真攻击数
  • TN:放过的真正常数
  • FP(误报):正常被当成攻击
  • FN(漏报):攻击被当成正常

常见派生指标(供你对照前面公式):

  • Precision = TP / (TP + FP)(报出来的有多少真攻击)
  • Recall = TP / (TP + FN)(真攻击有多少被抓到)
  • FPR = FP / (FP + TN)(正常流量被误判的比例)
  • Accuracy = (TP + TN) / (TP + FP + TN + FN)

注意:"正类(Positive)"是谁要先定义清楚 。在安全场景里,通常把攻击 视为正类、正常为负类。

多分类(多个攻击类型)时

  • 以某一类 (k) 为"正类",把其他所有类当作"负类",同样能数出 (TP_k, FP_k, TN_k, FN_k)。
  • 逐类算 Precision/Recall/F1,再做宏平均(macro):对所有类的指标取算术平均,让每个类同等权重。

小例子(入侵检测)

  • 100 个样本里有 20 个攻击、80 个正常。

  • 模型抓到 18 个攻击(其中 2 个其实是正常),漏掉 2 个攻击;把 78 个正常判对。

    • TP=18(真攻判攻)
    • FP=2(正常判攻 → 误报)
    • FN=2(攻判正常 → 漏报)
    • TN=78(正常判正常)

这样你就能把任何结果表转换成 TP/TN/FP/FN,再按需要算 accuracy、macro_f1、macro_precision、macro_recall、macro_fpr 等。

给你一套"1 张图 + 3 口诀 + 4 步法",快速吃透并记住 TP/TN/FP/FN 及常用指标。

1 张图(固定方向)

把行=真实 、列=预测刻在脑子里👇

复制代码
                预测 Positive   预测 Negative
真实 Positive      TP(真正)         FN(漏报)
真实 Negative      FP(误报)         TN(真负)

只要记住:P 行列是"正(Positive)";

  • 落在"真实正 且 预测正"→ True Positive(TP)
  • "真实正 但 预测负"→ False Negative(FN,漏掉了正)
  • "真实负 但 预测正"→ False Positive(FP,误把负当正)
  • "真实负 且 预测负"→ True Negative(TN)

3 口诀(安在安全场景更好记)

  1. "报出来的准不准------看 Precision(纯度)"

    ( \textbf{Precision} = \frac{TP}{TP+FP} )

    想象 SOC 告警列表:越少 FP,越"纯"。

  2. "该抓的抓到了没------看 Recall(覆盖)"

    ( \textbf{Recall} = \frac{TP}{TP+FN} )

    真攻击里有多少被抓到;越少 FN,越不漏。

  3. "正常流量被冤枉没------看 FPR(误报率)"

    ( \textbf{FPR} = \frac{FP}{FP+TN} )

    在所有真实正常里被误判为攻的比例;边缘/线上最敏感。

F1(调和平均)= 在"纯度 vs 覆盖"之间求平衡:

( \textbf{F1} = 2\cdot\frac{\text{Prec}\cdot\text{Rec}}{\text{Prec}+\text{Rec}} )

4 步法(任何题目 10 秒内算清)

Step 1 :画 2×2 表(行真列预)。
Step 2 :把样本逐条或按数量填入四格 → 得到 TP/FP/FN/TN。
Step 3:按需代入公式:

  • Accuracy = (TP+TN)/(TP+FP+FN+TN)
  • Precision/Recall/FPR/F1(如上)
    Step 4:一句解读:
  • Precision 高=告警"干净"(少 FP)
  • Recall 高="不漏"(少 FN)
  • FPR 低="少扰民"
  • Accuracy 只做全局参考,类别不平衡时别当真。

小联想(更好记)

  • FP = False Positive = 误报 :把负 例"判成正"(P)→ 叫假正。
  • FN = False Negative = 漏报 :把正 例"判成负"(N)→ 叫假负。
  • TP/TN 是对的 (True),FP/FN 是错的(False)。
  • 英文快记:P=Purity(纯度) 、R=Recall(召回/覆盖) 、FPR=False alarm rate。

什么时候看哪个?

  • 线上/边缘 :优先 FPR(误报率) 低 、延迟低。
  • 安全漏不起 :优先 Recall 高(宁可多看几条)。
  • 综合对比 :看 F1(或 macro-F1) ;多分类用 macro 让每类同等权重。

5 秒心法(背下来就行)

"行真列预,TPTN 对;FP 误报,FN 漏报;纯度看 P,覆盖看 R,打平看 F1,扰民看 FPR。"

相关推荐
xiangjiaodalishi1 小时前
从 0 到 1 搭建 AI 友好的网站结构:信息架构与 GEO 的交叉地带
人工智能·python
生石花1 小时前
TRAE Agent 模式实战:让它帮我写 WMS 的 RAG 工具路由,它连防御都替我写了
人工智能
PD我是你的真爱粉2 小时前
成熟Agent系统设计深度研究报告
java·大数据·人工智能
Mr.Aholic2 小时前
一个协议解决 M×N 集成难题:MCP 如何给 AI 装上手脚
人工智能
美狐美颜SDK开放平台2 小时前
直播APP集成美颜SDK,如何梳理第三方组件的数据权限?
开发语言·人工智能·深度学习·音视频·第三方美颜sdk
沉下心来学鲁班2 小时前
具身智能进阶:让 MicroDuck 踩着高跷走路
人工智能·python·机器人
紧跟先前的步伐2 小时前
Go AI Agent 实战 08|HTTP 模型 API 的工作原理与请求流程
人工智能·http·ai·golang
紧跟先前的步伐2 小时前
Go AI Agent 实战 07|模型幻觉、能力边界与成本控制
大数据·人工智能·golang
dghongcheng2 小时前
工业涂装数字化转型:从经验喷涂到数据驱动
人工智能·喷涂·喷漆设备·自动喷涂线·自动喷涂