本文介绍时序异常检测的一些通用问题。
时序异常检测对数据有什么要求?
若待检测数据包含了过多时间线,在进行异常检测时需较长的等待时间,建议您设置
WHERE
条件,先过滤出少量时间线进行测试,获取符合预期的算法与参数后再逐步增加时间线。若原始数据的时间间隔不规则,建议结合时序引擎降采样算子(
SAMPLE BY
)对数据进行处理,再进行异常检测。
如何选择时序异常检测算法?
当前Lindorm ML主要提供两类算法:统计类算法和分解类算法,更多请参见时序异常检测算法分类。
如何选择时序异常检测的时间范围?
您可以在不同的使用时期对时间范围有不同的调整策略。
首次使用时:请选择足够长的时间范围,以完成异常检测算法初始化,例如分解类算法需要4个周期(一个周期包含波峰、波谷)的数据来完成初始化。您也可以设置参数
verbose=true
,并观察输出的warmup
列,从而判断算法是否已完成初始化(FALSE
表示已完成初始化)。完成初始化后:异常检测状态会保留并持续更新,此时,您可以根据需求调整异常检测时间范围,时间范围越小,检测耗时越少。如果您需要持续地对最新数据点进行异常检测,请参见如何不间断地进行时序异常检测。
什么情况下使用adhoc_state参数?
如果您还不熟悉异常检测算法和参数,建议您添加adhoc_state=true
参数来对不同算法和参数进行测试。此时,每次执行的异常检测完全独立,可以避免之前累计的状态影响检测效果,检测结果容易复现。
什么情况下使用reset_state参数?
如果您认为数据分布发生了较大变化,异常检测的历史累计状态不再适用,可以添加reset_state=true
参数来重置状态。
文档内容是否对您有帮助?