异常检测通过首先对预期的季节性行为进行建模,然后识别与该行为的偏差来处理季节性模式。季节性模式是数据中可预测的、重复的波动,例如每日流量高峰或每月销售额高峰。为避免误报,异常检测系统必须区分正常的季节性变化和真正的异常。这通常通过将时间序列数据分解为趋势、季节性和残差等组成部分来完成。然后分析残差(去除趋势和季节性后无法解释的部分)以查找异常。例如,零售系统可能会在标记意外收入下降之前,先去除预期的假日销售高峰。
常见的技术包括统计模型,如 SARIMA(季节性自回归综合移动平均)或 STL(使用 Loess 的季节性-趋势分解),它们明确考虑了季节性。机器学习模型,如循环神经网络 (RNN) 或基于树的方法,也可以在历史数据上训练时学习季节性模式。例如,云基础设施监控器可以使用 RNN 根据每周模式预测正常的每日 CPU 使用率,并标记与预测的偏差。差分(减去先前的季节性周期)或傅里叶变换(捕获周期性信号)等预处理步骤通常用于隔离季节性影响。关键是确保模型“预期”季节性模式,以便仅标记意外偏差。
真实世界的例子突出了处理季节性的重要性。在电子商务中,系统可能会忽略黑色星期五的流量激增,将其视为正常现象,但会标记 1 月份的类似峰值。监控建筑物温度的物联网传感器可以考虑每日的加热/冷却周期,以检测 HVAC 故障。当季节性随时间变化(例如,假日日期变化)或存在多个重叠周期(每日 + 每周)时,会出现挑战。解决方案包括定期重新训练模型或使用混合方法,例如将 SARIMA 用于季节性与隔离森林用于残差分析相结合。通过明确建模和调整季节性模式,异常检测系统可以减少噪声并专注于有意义的异常值。