一、异常值检测概述:我们为什么要关注那些“怪数据”?

大家好,欢迎来到这门课。我是老赵,在数据分析和 AI 落地这块摸爬滚打了好多年。

咱们这门课叫《PAE异常值深度解读方法》。你可能会问,PAE 是什么?别急,我们一步步来。但不管什么高级方法,核心目标都是同一个——揪出数据里那些“不对劲”的家伙。

今天这第一讲,我们先聊聊最基础的东西:什么是异常值,为什么我们要关心它,以及市面上都有哪些常用的招数。说白了,这就是咱们整个课程的“地基”。

1.1 什么是异常值?

异常值,英文叫 Outlier。我的理解很简单:它就是一个数据点,跟它周围的大多数同伴比起来,显得格格不入。

你想想看,一班学生考试,大部分人考了 70-80 分,突然冒出一个考 150 分的,或者一个考 0 分的。这俩就是典型的异常值。

我个人习惯把异常值分成三类:

  • 全局异常点 (Global Outlier): 在整个数据集里都显得很扎眼。比如上面提到的 150 分和 0 分。
  • 上下文异常点 (Contextual Outlier): 放在某个特定背景里才叫异常。比如北京冬天 25 度,对夏天来说很正常,但对冬天来说就是异常。
  • 集体异常点 (Collective Outlier): 单个看挺正常,但一堆人凑一起就怪了。比如一个用户一天内从北京、上海、纽约、伦敦连续登录,单个登录行为没问题,但串起来就非常可疑。
一点小经验: 我在做金融交易风控时,经常遇到“集体异常”。单笔几十块钱的交易很正常,但如果一个账户在几分钟内,从全球各地发起几十笔这样的交易,那基本可以断定是盗刷。判断异常,光看个体是不够的,得看上下文和群体行为。

1.2 异常检测的应用场景:它在哪发光发热?

说实话,异常检测的应用场景比你想象的要多得多。我参与过的项目里,几乎每个行业都能用到它。

领域 典型案例 我在项目中踩过的坑
金融风控 信用卡盗刷检测、虚假交易识别、反洗钱 我曾经因为单纯依赖规则,漏掉了很多变种的欺诈模式,后来加入异常检测模型后,召回率提升了 40%。
IT 运维 (AIOps) 服务器 CPU 飙高、网络流量突刺、磁盘 I/O 异常 有个项目,监控系统天天半夜告警,结果发现是定时任务导致的“正常异常”。我们花了很大功夫才把它从模型里过滤掉。
工业制造 产品外观缺陷检测、传感器读数异常、设备预测性维护 生产线上的震动传感器数据,噪声特别大。直接用原始数据做检测,误报率高到离谱。必须得做信号预处理。
网络安全 入侵检测、DDoS 攻击识别、恶意流量分析 攻击者的手段越来越隐蔽,会故意把流量伪装成正常行为,这时候传统的统计方法基本失效,得靠深度学习。
医疗健康 心电图异常波形监测、医学影像病灶检测 医疗数据极其珍贵,且标签成本很高。无监督和半监督的异常检测方法在这里特别受欢迎。

嗯,这里要注意。很多人觉得异常检测就是简单的“找不同”。其实不是。选择的检测方法,跟你对业务的理解深度直接挂钩。比如,你是不是能容忍误报?你更怕漏报还是报错?这些问题,在选模型之前就该想清楚。

1.3 常见方法概览:有哪些兵器可以用?

好,到了大家最喜欢的环节。咱们看看工具箱里都有什么。我习惯把它们分成三大派系:

  • 统计方法: 最古老,也最直观。基于数据的分布假设,比如高斯分布。这派方法计算快,容易解释。
    • Z-Score:看一个点离均值有几个标准差。
    • IQR 四分位距法:看一个点是否落在箱线图的“触须”之外。
    • Grubbs‘ Test:专门用来检测单个异常点。
  • 机器学习方法: 当数据不满足统计分布时,就该机器学习上场了。它不依赖假设,能从数据里自己学出模式。
    • 聚类: 比如 K-Means 或 DBSCAN。离所有簇中心都很远的点,就是异常。
    • 孤立森林 (Isolation Forest): 核心思想很聪明——异常点更容易被“孤立”出来。这是我个人很喜欢的一个算法,速度快,效果好。
    • One-Class SVM: 只用一个类的数据来训练模型,然后判断新样本是否属于这个类。
  • 时间序列方法: 专门对付随时间变化的数据。
    • 移动平均/指数平滑: 基于历史数据预测,看实际值与预测值的差距。
    • Prophet: Facebook 开源的,能很好地处理节假日、季节周期等效应。
    • ARIMA/LSTM: 更复杂的时序模型,适用于有长期依赖关系的数据。
选型建议: 我个人的经验是,先用简单方法,比如 3-Sigma 或 IQR。如果效果可以,就别强行上高大上的模型。简单方法搞不定时,再考虑孤立森林或 One-Class SVM。最后,如果数据有时序特征,才上专门的时间序列方法。千万别一上来就整个 LSTM,容易把简单问题复杂化。

为了方便你理解这几个方法之间的关系,我画了一张图:

异常检测常见方法体系 异常检测 (Outlier Detection) 统计方法 Z-Score IQR 法 Grubbs‘ Test 机器学习方法 K-Means 孤立森林 One-Class SVM 时间序列方法 移动平均 Prophet LSTM 核心思路: 简单方法先上 → 搞不定再上复杂的模型 → 最终要结合业务场景验证

你看,整个体系就是这样一层层展开的。当然,这些方法的“江湖地位”也在变化。比如,以前做时序异常检测,大家最常用 3-Sigma。但这些年,随着 Transformer 等深度学习模型的出现,很多新方法已经能捕捉到更复杂的异常模式了。咱们这门课的主角——PAE,就是这些新方法里的一种。它在处理高维、非线性数据时,表现相当不错。

小提醒: 我刚才提到 3-Sigma 法。这里有个常见的坑——它假设数据服从正态分布。我踩过的坑是,拿它去处理一组长尾分布的数据,结果误报率直接爆炸。所以,用任何统计方法前,最好先用直方图或 Q-Q 图看看你的数据长啥样。

好了,第一讲就到这里。我们明确了异常值的定义,了解了它的应用场景,也看完了目前主流的检测方法。这些概念,是我们后面深入 PAE 算法的必备知识。说白了,你只有知道问题是什么,以及前人用什么办法尝试过,才能理解为什么 PAE 能解决一些特定的难题。