2. 异常值类型:全局异常点、上下文异常点、集体异常点
在数据清洗实践中,异常值并非单一形态。根据异常值在数据分布、时间序列或空间邻域中的表现特征,通常将其划分为三种核心类型:全局异常点、上下文异常点和集体异常点。理解这三种类型的差异,是选择检测算法和清洗策略的前提。
2.1 三种异常类型的核心定义与对比
下表从定义、典型场景和检测思路三个维度,对三种异常类型进行横向对比:
| 异常类型 | 核心定义 | 典型识别场景 | 常用检测思路 |
|---|---|---|---|
| 全局异常点 | 单个数据点显著偏离整体数据集的分布范围 | 传感器读数异常、信用卡欺诈交易 | Z-Score、IQR、孤立森林 |
| 上下文异常点 | 在特定上下文(时间、空间)中表现异常,但全局看可能正常 | 时序数据中的突增/突降、空间位置偏离 | 滑动窗口统计、季节性分解、ARIMA 残差 |
| 集体异常点 | 一组数据点整体行为异常,但单个点可能正常 | 群体攻击流量、设备集群故障、序列模式异常 | 聚类分析、子空间检测、序列模式挖掘 |
实践提示: 同一数据集可能同时包含多种异常类型。例如,服务器监控数据中,单次 CPU 突增是上下文异常,而一组服务器同时出现相同模式的突增则属于集体异常。清洗前应先明确业务场景关注的异常类型。
2.2 全局异常点(Global Outliers)
全局异常点是最直观、最基础的异常类型。它指单个数据点在数值上显著偏离整个数据集的全局分布,以至于可以认为它来自不同的生成机制。这类异常不依赖任何上下文信息,仅通过统计分布即可识别。
识别场景举例:
- 金融反欺诈: 单笔交易金额为 100 万元,而正常用户平均交易额为 500 元,该笔交易即为全局异常点。
- 工业传感器: 温度传感器读数为 200°C,而正常工况范围为 20°C–80°C,该读数属于全局异常。
- 生物医学: 某患者某项生化指标超出正常参考范围 5 个标准差以上。
检测要点: 全局异常点检测通常假设数据服从某种分布(如正态分布),或使用基于距离/密度的方法。常用方法包括 Z-Score(阈值通常取 3)、IQR(四分位距法,下界 Q1-1.5IQR,上界 Q3+1.5IQR)、以及孤立森林(Isolation Forest)。
2.3 上下文异常点(Contextual Outliers)
上下文异常点(也称条件异常点)在全局分布中可能完全正常,但在特定的上下文条件(如时间、空间、季节)下却表现异常。这类异常必须结合上下文信息才能被正确识别。
识别场景举例:
- 时序数据: 某电商平台凌晨 3 点的访问量为 10,000 次,而该时段历史均值仅为 200 次。该值在全局分布中可能并不极端,但在“凌晨 3 点”这个时间上下文中属于异常。
- 空间数据: 某地区夏季平均气温为 30°C,但某一天该地区气温骤降至 5°C,在“夏季”这个空间-时间上下文中属于异常。
- 交通流量: 工作日晚高峰车流量为 500 辆/小时属于正常,但同一数值出现在凌晨 2 点则属于上下文异常。
常见误区: 仅使用全局阈值(如 Z-Score)检测时序数据,会漏掉大量上下文异常。例如,春节期间的销售额突增在全局分布中可能只是正常波动,但在“非促销日”的上下文中却是异常。务必引入滑动窗口或周期性分解。
2.4 集体异常点(Collective Outliers)
集体异常点是指一组数据点作为一个整体,其行为模式显著偏离数据集的预期模式。单个数据点可能完全正常,但它们的组合方式、序列顺序或共同出现则构成异常。这类异常在群体行为分析、网络安全和系统监控中尤为常见。
识别场景举例:
- 网络安全: 单个 IP 地址的访问频率正常,但一组 IP 地址在短时间内以相同模式访问同一资源,构成 DDoS 攻击的集体异常。
- 设备集群: 单台服务器的 CPU 使用率在 60% 属于正常,但整个集群中 80% 的服务器同时出现 CPU 突增,则属于集体异常。
- 序列数据: 在 DNA 序列中,单个碱基的突变可能正常,但连续多个碱基的异常排列可能指示基因缺陷。
检测策略: 集体异常点检测通常需要先对数据进行分组或聚类,然后在组级别上计算异常分数。常用方法包括:基于密度的聚类(DBSCAN)、子空间异常检测(如 SOD)、以及序列模式挖掘(如 SPADE)。在时间序列中,集体异常常表现为“形状异常”或“子序列异常”。
2.5 三种异常类型的识别场景总结
下表从业务场景角度,帮助快速判断当前问题属于哪种异常类型:
| 业务场景 | 可能的异常类型 | 识别关键点 |
|---|---|---|
| 信用卡单笔大额交易 | 全局异常点 | 金额远超用户历史分布 |
| 服务器 CPU 在凌晨突增 | 上下文异常点 | 时间上下文(凌晨)与历史模式不符 |
| 多个 IP 同时发起相同请求 | 集体异常点 | 群体行为模式异常,单个 IP 正常 |
| 传感器连续 10 秒输出恒定值 | 集体异常点 | 序列模式异常(卡死),单个值正常 |
| 某地区冬季出现 35°C 高温 | 上下文异常点 | 空间-时间上下文(冬季)异常 |
| 用户单次登录地点在国外 | 全局异常点 | 地理位置偏离用户常驻地分布 |
进阶思考: 在实际项目中,三种异常类型可能叠加出现。例如,一个集体异常点集合中的每个成员,可能同时也是上下文异常点。建议在检测流程中先做全局异常点过滤,再分别处理上下文和集体异常,避免检测逻辑相互干扰。