03 类别不平衡下如何选择评估指标:Accuracy 为什么会失效?
03 类别不平衡下如何选择评估指标Accuracy 为什么会失效在现实数据中类别经常并不平衡。例如信用卡欺诈 正常交易 99.9% 欺诈交易 0.1% 设备故障 正常状态 99% 故障状态 1% 罕见病筛查 健康人 99.5% 患者 0.5%这类问题被称为Imbalanced Classification 类别不平衡分类此时单纯使用 Accuracy 往往非常危险。一、一个 Accuracy 99% 的“垃圾模型”假设总样本10000 正常样本9900 异常样本100现在构造一个最简单的模型永远预测 Normal那么TN 9900 FN 100 TP 0 FP 0Accuracy 为Accuracy9900100000.99Accuracy\frac{9900}{10000}0.99Accuracy100009900​0.99也就是99%但是这个模型一个异常都没有发现因此Recall001000Recall\frac{0}{0100}0Recall01000​0这说明在严重类别不平衡的数据中高 Accuracy 可能完全没有意义。二、选择指标的核心不是“哪个指标最好”真正的问题应该是哪一种错误更加不能接受对于二分类模型最重要的两种错误是FP FN因此指标选择应该从错误代价开始。三、什么时候更加关注 RecallRecall 为RecallTPTPFNRecall\frac{TP}{TPFN}RecallTPFNTP​如果 FN 的代价非常高就应该更加关注 Recall。例如癌症筛查 危险设备故障 欺诈交易初筛 安全风险检测 火灾报警在癌症筛查中FN 患者有病但模型认为没病这可能比FP 健康人被建议进一步检查更加严重。因此通常希望FN 尽可能少 Recall 尽可能高四、什么时候更加关注 PrecisionPrecision 为PrecisionTPTPFPPrecision\frac{TP}{TPFP}PrecisionTPFPTP​如果 FP 的代价非常高就应该更加关注 Precision。例如自动封禁账号 自动删除内容 高成本人工复核 高价值客户营销 刑事风险预警假设模型用于自动封禁用户FP 正常用户被错误封禁那么 FP 的业务成本非常高。此时希望模型只有非常确定时 才预测 Positive也就是强调 Precision。五、Precision vs TPR为什么有时必须看 PrecisionRecall 也叫TPR True Positive Rate公式TPRTPTPFNTPR\frac{TP}{TPFN}TPRTPFNTP​TPR 只关注真实 Positive它并不知道负样本到底有多少。这在类别极度不平衡时会产生问题。六、一个关键例子假设Positive 100 Negative 99900某模型得到TP 90 FN 10 FP 999 TN 98901那么TPR901000.9TPR\frac{90}{100}0.9TPR10090​0.9也就是Recall 90%同时FPR999999000.01FPR\frac{999}{99900}0.01FPR99900999​0.01FPR 只有1%表面上看似乎很好TPR 90% FPR 1%但是 Precision 为Precision9090999≈0.0826Precision\frac{90}{90999}\approx0.0826Precision9099990​≈0.0826只有约 8.3%也就是说模型预测出来的 Positive 中超过 90% 都是假警报。原因就在于Negative 的数量远远超过 Positive即使 FPR 很低也可能产生大量 FP。因此在严重类别不平衡问题中Precision 往往比单独观察 TPR 和 FPR 更直观。七、为什么 ROC 在极端不平衡数据上也要谨慎ROC 使用TPR FPR由于FPRFPFPTNFPR\frac{FP}{FPTN}FPRFPTNFP​当 Negative 数量特别大时即使 FP 数量已经很多FPR 仍然可能很小因此 ROC 曲线可能看起来很好。但是对于“预测出来的正样本到底有多少是真的”这个问题Precision 更直接。所以极端不平衡任务中经常同时关注Precision Recall F1 PR Curve PR-AUC而不是只看 Accuracy 或 ROC-AUC。八、F1 什么时候合适F1 为F12×Precision×RecallPrecisionRecallF12\times\frac{Precision\times Recall}{PrecisionRecall}F12×PrecisionRecallPrecision×Recall​如果Precision 很重要 Recall 也很重要而且希望用一个数综合比较模型可以使用 F1。但是需要注意F1 不考虑 TN。因此当正确识别负样本本身也非常重要时不能只看 F1。九、Specificity 什么时候重要Specificity 为SpecificityTNTNFPSpecificity\frac{TN}{TNFP}SpecificityTNFPTN​它关注真正的 Negative 中有多少被正确排除。在医学检测中经常同时报告Sensitivity Specificity其中Sensitivity → 能不能找到患者 Specificity → 能不能正确排除健康人十、可以从“错误成本”选择指标一个非常实用的思路任务重点更值得关注两类数量接近错误代价类似Accuracy尽量不要漏掉正类Recall / Sensitivity预测为正时必须可靠Precision正类、负类都希望兼顾F1 Specificity Confusion Matrix希望比较阈值变化ROC / PR Curve极度类别不平衡Precision、Recall、F1、PR-AUC医疗筛查Sensitivity Specificity自动高风险动作Precision十一、不要把指标选择和阈值选择混为一谈假设模型输出概率0.91 0.73 0.55 0.42 0.21默认使用threshold 0.5并不意味着0.5 就一定是最佳阈值降低阈值通常会Recall ↑ Precision 可能 ↓提高阈值通常会Precision ↑ Recall 可能 ↓因此真实模型部署中经常需要两步第一步训练模型 第二步根据业务成本选择 threshold十二、推荐的评估思维不要问这个模型 Accuracy 是多少而应该问正类占比是多少 混淆矩阵是什么 FP 和 FN 分别是多少 Precision 是多少 Recall 是多少 Specificity 是多少 模型的 threshold 是多少 这个 threshold 为什么合理这套问题能够大幅减少对分类模型的误判。十三、总结类别不平衡时最重要的原则是不要让多数类别把少数类别的问题“淹没”。尤其是Accuracy 99%并不意味着模型好。真正需要理解的是模型漏掉了多少关键正样本 模型产生了多少假警报 这些错误各自的代价是什么下一篇将进一步讨论 threshold 改变时模型表现如何变化以及 ROC Curve 和 AUC 如何用于模型比较。

相关新闻

深入解析Spring Session分布式会话管理:从HTTP无状态到Redis存储实战

深入解析Spring Session分布式会话管理:从HTTP无状态到Redis存储实战

1. 从一个常见的“灵异”Bug说起最近在帮一个朋友排查一个线上问题,现象非常诡异:用户登录后,操作了几分钟,页面就莫名其妙地跳转回了登录页。查看日志,没有任何报错,用户会话(Session&#xff…

2026/8/13 2:55:32 阅读更多 →
qmc-decoder终极指南:3步快速解密QQ音乐加密音频

qmc-decoder终极指南:3步快速解密QQ音乐加密音频

qmc-decoder终极指南:3步快速解密QQ音乐加密音频 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder qmc-decoder是一款专业高效的音频解密工具,专门用于…

2026/8/13 2:55:32 阅读更多 →
轻松学习Zephyr: 01-学习计划

轻松学习Zephyr: 01-学习计划

我建议把这个平台定位成一个Zephyr 学习平台,而不是一个产品开发平台。你的目标应该是: 3~4 周内,能够独立使用 Zephyr 开发 STM32 和 ESP32 应用,并理解 Zephyr 的架构。 我的硬件条件: - MacBook(剩余约3…

2026/8/13 2:54:32 阅读更多 →

最新新闻

n8n与AI代码助手结合:实现跨境电商工作流Skill化与智能自动化

n8n与AI代码助手结合:实现跨境电商工作流Skill化与智能自动化

1. 项目概述:当n8n遇见Codex,跨境电商的自动化新解法 最近在技术圈和跨境电商圈子里,一个老牌工具n8n和另一个新锐概念Codex Skill的结合,又掀起了一波讨论。不少朋友跑来问我:“n8n不是那个开源的工作流自动化工具吗&…

2026/8/13 8:21:42 阅读更多 →
Claude Code本地部署与DeepSeek API接口适配完整指南

Claude Code本地部署与DeepSeek API接口适配完整指南

1. 项目缘起:为什么我们需要一个“兼容接口版”的 Claude Code?最近在折腾本地AI开发环境的朋友,估计没少被“Claude Code”和“DeepSeek”这两个名字刷屏。Claude Code,作为Anthropic推出的那个专为编程设计的“代码专家”&#…

2026/8/13 8:21:42 阅读更多 →
通义千问Qwen 3.6 Plus深度评测:代码、推理与创意实战能力全解析

通义千问Qwen 3.6 Plus深度评测:代码、推理与创意实战能力全解析

1. 项目概述:一次对前沿大模型的深度“体检”最近,AI圈子里关于“国产最强”模型的讨论又热了起来,焦点是通义千问最新发布的Qwen 3.6 Plus。作为一名长期关注和评测各类大模型的技术博主,我深知“最强”这个词的分量。它不仅仅是…

2026/8/13 8:21:42 阅读更多 →
PyTorch实现DarkNet53:从YOLOv3骨干到独立图像分类模型

PyTorch实现DarkNet53:从YOLOv3骨干到独立图像分类模型

1. 项目概述:从YOLOv3的骨干到独立模型DarkNet53这个名字,对于熟悉目标检测领域的朋友来说,绝对不陌生。它最初作为YOLOv3(You Only Look Once v3)的骨干特征提取网络而声名鹊起,由Joseph Redmon等人设计。…

2026/8/13 8:21:42 阅读更多 →
AI Agent规划与推理:从ReAct到ToT,构建能思考的智能体

AI Agent规划与推理:从ReAct到ToT,构建能思考的智能体

1. 从“执行者”到“思考者”:Agent规划与推理的核心价值在AI Agent的开发实践中,我们常常会遇到一个瓶颈:模型看起来“很聪明”,能理解指令、调用工具、生成回复,但一旦面对稍微复杂、多步骤的任务,就容易…

2026/8/13 8:21:42 阅读更多 →
从LeNet-5到现代CNN:逐层拆解卷积神经网络的设计精髓与PyTorch实现

从LeNet-5到现代CNN:逐层拆解卷积神经网络的设计精髓与PyTorch实现

1. 从“手写数字识别”说起:LeNet的诞生与历史地位如果你现在想入门计算机视觉,可能会一头扎进ResNet、Transformer或者各种花哨的注意力机制里。但回到上世纪90年代,当计算机还在用奔腾处理器,一张图片对内存来说都是巨大负担的时…

2026/8/13 8:20:41 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →