核心要点
关键差异:样本非独立、有时间依赖和季节性,「异常」依赖上下文和顺序。
异常类型:点异常、上下文异常(值正常但在该时刻反常)、集体/模式异常。
统计法:先用 STL/季节分解去趋势季节,再对残差做阈值或 3σ 判定。
模型法:预测模型残差阈值、Prophet 预测区间、孤立森林+时序特征、序列自编码器重构误差。
标准回答
核心差异
一般异常检测假设样本独立同分布,只看每个点是否偏离整体分布。时间序列的样本有强时间依赖和季节性,同一个数值在淡季正常、在旺季却异常,这叫上下文异常;此外还有破坏序列形状的集体/模式异常。因此必须考虑顺序、趋势和周期,不能简单打乱样本。
专门方法
- 分解 + 残差判定:用 STL/季节分解剥离趋势与季节,对残差做 3σ 或鲁棒阈值(如 MAD),把「去周期后的偏离」当异常。
- 预测残差法:用 ARIMA/Prophet/DeepAR 预测,实际值落在预测置信区间外即异常。
- 特征工程 + 通用检测器:构造滞后、滑窗统计等时序特征后喂入孤立森林、One-Class SVM。
- 深度重构法:用序列自编码器或 LSTM 重构正常模式,重构误差大者判为异常。
实践中常用「分解去季节 + 预测区间」组合,兼顾可解释与召回。
常见误区
⚠️ 常见踩坑
直接对原始值套 3σ 而不先去除趋势和季节——会把正常的季节高峰误判为异常、漏掉上下文异常。
追问
追问 1:怎么处理只有正常样本、缺少异常标签的情况?
用无监督/半监督方法:在正常数据上训练预测或重构模型(Prophet 区间、序列自编码器、孤立森林),以残差/重构误差超阈值判异常。阈值可由正常残差分布的分位数确定,再用少量人工反馈调优。
追问 2:上下文异常和点异常如何区分检测?
点异常是绝对值远离整体范围,全局阈值即可;上下文异常值本身在范围内但不符合当前时刻的季节/趋势预期,必须先做季节分解或用条件预测模型,比较实际值与该时刻的期望区间才能检出。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。