异常检测:别老想把离群点干掉,那是情报
刚入行那几年我对异常点的态度很粗暴影响模型训练干掉。箱线图一画上下须一划拉须子外面的全删。后来被人问了一句“你删掉的那些点里有没有正在偷刷信用卡的骗子”我突然意识到我可能一直在把金块当垃圾扔。异常检测是个很分裂的领域。在大部分机器学习任务里异常点是干扰项是噪声是不听话的坏孩子。但在风控、运维、工业质检这些场景里异常点本身就是我们要找的目标。同一个算法换个场景就从“清洗工具”变成了“核心业务引擎”。这种分裂让异常检测变得特别有意思也特别容易让人困惑。这篇我想跟你聊聊在真实业务里做异常检测那些教科书没教你但能救命的认知。一、异常不是绝对的是你的定义框出来的什么是异常这个问题我问过不下二十个业务方得到过二十种不同答案。信用卡部门说异地大额消费是异常。运营部门说用户突然连续登录失败五次是异常。运维说服务器CPU占用率超过百分之九十且持续三分钟以上是异常。同一个人在不同场景里对异常的定义都在变。所以异常检测第一个要扔掉的想法就是“算法能自动识别所有异常”。算法识别的是“统计上的离群”离群和异常有交集但绝不是一回事。一个明星发了一条微博流量瞬间爆了从统计上看这条微博的互动量是极端离群值。但这是异常吗不是这是正常的热点传播。反过来一个非常狡猾的黑产团伙每次只从一张信用卡上刷走一百块混在日常消费里统计上完全不显眼但它是真正的异常。定义异常的权力不在算法手里在业务手里。你做异常检测模型之前先别急着选算法先把业务方拉过来老老实实过一遍历史案例。过去一年你们确定是异常的那些事件都有什么共同特征这些特征能被量化吗如果业务方自己也说不清楚只知道“看到就知道”那你就得降低预期这个项目大概率会变成一个半自动的规则引擎而不是什么高大上的无监督异常检测。我做过一个电商薅羊毛检测项目一开始业务方给的定义是“非正常手段获取平台优惠的行为”。这个定义宽泛得可以装下任何东西。我们花了两周时间跟风控团队一起翻了上千条历史记录最后把异常细分成四类虚假注册账号批量领取、利用系统漏洞重复领取、通过第三方平台交易优惠券、内部员工勾结外部刷单。每一类的数据特征完全不同需要分别建模。这个过程极其枯燥但如果不做后续所有模型都是闭着眼睛打拳。二、无监督异常检测浪漫但容易翻车Isolation Forest、LOF、Autoencoder这些无监督异常检测算法有一个共同的承诺不需要标签我就能给你找出数据里最奇怪的那些点。听起来很美好因为真实业务里标注异常的成本极高。但实际用起来坑多得填不完。Isolation Forest是我的入门首选快简单高维数据也能跑。但它对异常比例的假设很敏感。算法默认百分之十的样本是异常你如果信了这个默认值一股脑把分数最低的百分之十挑出来当异常大概率会得到一堆莫名其妙的噪声点。你调成百分之一又是另一批点。到底调多少没人知道。我后来养成了一个习惯用Isolation Forest的时候不直接输出“是或否”而是输出异常分数按分数从高到低排好给业务方看前五十个让他们人工复核。这一复核就出事了排第一的是一个年消费两百万的超级VIP排第二的是一个只买过一次特价商品的僵尸用户排第三的是一个正常用户只不过他下单的时间总是在凌晨三点。业务方看了之后说“这三个都不是我们要找的异常。”问题出在特征空间的定义上。你选了年消费额、购买频次、活跃天数这些特征Isolation Forest自然会觉得消费能力极强的和极弱的都是异常。但你想要的异常是“恶意退款”和“刷单套利”这些行为在消费金额上看起来完全正常。你给算法喂的是苹果的特征却希望它帮你找出橘子。无监督异常检测最关键的步骤不是调参是特征构建。你得构建出能区分正常和异常的特征但这又陷入了循环——如果你知道什么特征能区分你直接写规则不就行了这个矛盾是无监督异常检测的先天缺陷。在实践中我的妥协方案是先用业务知识构造一批“嫌疑特征”比如短时间内下单次数、优惠券使用率、登录设备数量、地址变更频率用这些特征跑无监督模型把异常分数最高的那批捞出来让人工审核审核结果再反过来作为标签转成有监督的二分类问题。这本质上是把无监督当成了一个样本挖掘工具而不是最终决策模型。三、时间序列异常检测延迟和误报的跷跷板运维场景里的时序异常检测是最折磨人的。服务器流量突然飙升你得判断是DDoS攻击还是上了热搜。前者要立刻触发告警后者只需要扩容。判断错了要么漏掉攻击要么把运营半夜叫起来处理一个根本不存在的故障。这里最大的技术矛盾是检测延迟和误报率之间的跷跷板。你想快速检测就得上实时滑动窗口窗口越小对波动的敏感度越高稍微一个毛刺就触发告警。我曾经把一个API响应时间的异常检测窗口设成一分钟结果一晚上收到两百多条告警运维小哥差点把我拉黑。后来把窗口拉长到十五分钟告警少了但有一次真实的接口故障用了二十分钟才触发那二十分钟里前端已经炸了锅。这个矛盾没有银弹。我现在的做法是分层告警设短窗口高敏感度的黄色预警只记录不通知设长窗口低敏感度的红色告警才真正推送到运维群里。中间加一层趋势判断如果短时间内连续出现黄色预警说明不是孤立毛刺自动升级成红色。这套逻辑本质上是在简单的阈值检测上套了一个状态机没什么算法含量但比任何花哨的深度学习检测器都稳定。还有季节性。运维数据有强周期性工作日和周末不一样白天和晚上不一样凌晨的例行备份任务会把IO打满。你如果用一个全局固定阈值去检测异常要么在高峰期误报一堆要么在低谷期漏掉真实的故障。解法是动态基线用过去几周同一时刻的数据来建立正常范围当前值偏离这个范围太多就算异常。Prophet做这个很拿手但资源消耗不小。更轻量的方案是用中位数绝对偏差对周期性数据做滚动标准化之后再用固定阈值效果差不多计算量差一个数量级。四、高维数据里的异常检测距离失效了前面聚类那篇说过高维空间里距离趋于均匀。这对异常检测是致命的。基于距离的方法在高维下几乎全部失效因为所有点到邻居的距离都差不多根本分不出谁更“离群”。我做过一个用户行为异常检测的项目特征空间有三百多维包括各种点击、滑动、停留时长。跑LOF输出的异常分数分布几乎是均匀的没有明显的离群点。后来发现不是没有异常用户而是高维把异常信号稀释了。一个黑产脚本产生的点击行为在单个特征上可能表现正常但在多特征的组合关系上才显得诡异——比如页面的平均停留时间极短但滑动的距离却极长正常用户不可能在零点几秒内滑过整屏内容。这种异常需要在子空间里寻找。不用全量特征跑模型而是针对每种已知的异常模式选取相关特征子集分别建立检测器。虚假注册检测看注册时间、设备ID聚集度、验证码通过率刷单检测看订单间隔、地址重复度、支付方式多样性。每个子检测器的特征维度都不高基于规则或简单阈值就能工作然后把这些检测器的输出作为特征再训练一个集成模型来综合判断。这又回到了那套“先分后总”的老路子朴素但有效。五、异常的解释比检测更重要告警触发之后接警的人第一反应永远是“为什么这个是异常”如果你的系统只能输出一个异常分数不能给出任何解释那这个告警在业务上的信任度会迅速衰减。用不了几次误报大家就会默默把告警邮件设成免打扰。异常检测的可解释性比分类回归更难做。SHAP和LIME这类事后解释工具在异常检测上效果不太行因为异常本身就是分布边缘上的少数点而SHAP依赖的基线样本往往是“正常”的均值从均值到异常的路径上特征贡献的解释经常不稳定。我见过一个案例一个登录行为被标记为异常SHAP显示贡献最大的特征是“登录时间”因为那个用户在凌晨四点登录。但业务方说这个用户是个海外党凌晨四点登录再正常不过。真正的异常是他的登录地点跳了两个国家。但SHAP没捕捉到这个因为地点的组合变化在高维特征里被分摊到了好几个特征上单个特征的贡献都不突出。我目前用的土办法是在设计特征的时候就考虑可解释性。每个特征都尽量做到自解释特征名就是对异常怀疑原因的描述。login_count_1min表示一分钟内登录次数ip_change_flag_10min表示十分钟内IP是否变化。告警触发时直接把触发阈值的那几个特征拎出来拼成一句人话“该用户在一分钟内登录了十七次且十分钟内切换了三个不同国家的IP。”不需要任何解释工具接警的人一看就懂。这要求特征工程做得极其细致和业务化但带来的信任收益是花额外算力和算法复杂度换不来的。说到底异常检测是一个需要极度谦卑的领域。你得时刻记住你定义的异常不一定是真的异常你漏掉的可能正在摧毁你的系统。那些被模型标记为红色的点并不是算法的最终判决而是邀请你多看一眼的信号。在异常检测里机器的任务不是替代人做判断而是把浩瀚的数据海洋中那些需要人类智慧看一眼的浪花精准地推送到人的眼前。这个定位想清楚了你就不会执着于做出一个完美的全自动异常检测系统而是会更务实地搭建一套人机协作的预警流水线。这套流水线也许不性感但夜深人静的时候它能让你睡得着觉。

相关新闻

YOLOv8模型部署全链路优化:从1.2FPS到35FPS的实战指南

YOLOv8模型部署全链路优化:从1.2FPS到35FPS的实战指南

大家好,我是专注于计算机视觉与深度学习部署的开发者。在实际项目中,我们常常遇到这样的困境:一个训练好的 YOLOv8 模型,在推理时帧率(FPS)低得令人沮丧,例如只有 1.2FPS,这完全无法…

2026/7/28 21:42:48 阅读更多 →
联辉科 LTK5112 28W单声道F类音频功率放大器 ESOP-8 技术解析

联辉科 LTK5112 28W单声道F类音频功率放大器 ESOP-8 技术解析

在蓝牙音箱、智能音箱、导航仪、便携游戏机、拉杆音箱等需要高功率输出的音频产品中,需要一款既能提供足够输出功率、又能灵活切换工作模式以适应不同应用场景(如FM收音时需AB类模式避免EMI干扰)的音频功率放大器。LTK5112是一款4Ω负载下可提…

2026/7/28 21:42:48 阅读更多 →
配置Amazon EventBridge监控EC2事件并邮件通知

配置Amazon EventBridge监控EC2事件并邮件通知

AWS EC2偶尔会出现需要计划任务(事件),其原因是某台实例的AWS底层硬件需要更新。我们需要及时收到需要更新的信息,在实例进行自动更新之前,手动重启EC2实例以切换较久的底层硬件,并及时启动应用避免影响服务…

2026/7/28 21:42:48 阅读更多 →

最新新闻

基于Java+MySQL+SSM个性化旅游攻略定制系统设计与实现

基于Java+MySQL+SSM个性化旅游攻略定制系统设计与实现

系列文章目录 项目介绍 开发环境 系统实现 论文参考 项目介绍 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用…

2026/7/28 21:52:54 阅读更多 →
[VMM]虚拟内存精粹

[VMM]虚拟内存精粹

虚拟内存精粹 一、导言 虚拟内存是当今计算机系统中最重要的抽象概念之一,它的提出是为了更加有效地管理内存并且降低内存出错的概率。虚拟内存影响着计算机的方方面面,包括硬件设计、文件系统、共享对象和进程/线程调度等等,每一个致力于编写高效且出错概率低的程序的程序…

2026/7/28 21:52:54 阅读更多 →
[VMM]虚拟内存(Virtual Memory)

[VMM]虚拟内存(Virtual Memory)

虚拟内存(Virtual Memory) 尽管基址寄存器(base register)和界限寄存器(limit register)可以用来创建地址空间(address space)的抽象,还存在另一个问题:管理软件的膨胀(bloatware)。 当现代软件对运行内存要求越来越高时,交换技术(swapping)就不是一项有…

2026/7/28 21:52:54 阅读更多 →
免费硬盘健康监测工具:CrystalDiskInfo完整使用指南

免费硬盘健康监测工具:CrystalDiskInfo完整使用指南

免费硬盘健康监测工具:CrystalDiskInfo完整使用指南 【免费下载链接】CrystalDiskInfo CrystalDiskInfo 项目地址: https://gitcode.com/gh_mirrors/cr/CrystalDiskInfo CrystalDiskInfo是一款免费开源的硬盘健康监测工具,能够全面检测PATA、SATA…

2026/7/28 21:52:54 阅读更多 →
使用VHF框架实现一个虚拟HID键盘

使用VHF框架实现一个虚拟HID键盘

使用VHF框架实现一个虚拟HID键盘 什么是VHF框架?为什么需要虚拟HID键盘?大家好,我是你们的老朋友,一个喜欢把复杂技术讲成故事的博主。今天,我们来聊聊一个听起来高大上、但实际很有意思的主题——使用VHF框架实现一个…

2026/7/28 21:52:54 阅读更多 →
Bash脚本进阶技巧与自动化实践指南

Bash脚本进阶技巧与自动化实践指南

1. 为什么你需要掌握Bash脚本进阶技巧在Linux和Unix系统中,Bash脚本就像一把瑞士军刀,能帮你把重复性工作自动化。我见过太多运维工程师每天花几个小时手动执行相同的命令序列,而一个精心编写的脚本可能只需要几秒钟就能完成同样的工作。Bash…

2026/7/28 21:51:54 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻