文档

时序异常检测的常见问题

更新时间:

本文介绍时序异常检测的一些通用问题。

时序异常检测对数据有什么要求?

  • 若待检测数据包含了过多时间线,在进行异常检测时需较长的等待时间,建议您设置WHERE条件,先过滤出少量时间线进行测试,获取符合预期的算法与参数后再逐步增加时间线。

  • 若原始数据的时间间隔不规则,建议结合时序引擎降采样算子(SAMPLE BY)对数据进行处理,再进行异常检测。

如何选择时序异常检测算法?

当前Lindorm ML主要提供两类算法:统计类算法和分解类算法,更多请参见时序异常检测算法分类

  • 如果您的数据带有较强的周期性,比如每天或每周在相对固定的时刻出现峰值或者谷值,那么推荐您优先尝试分解类算法(ostl-esd和istl-esd),参数调优请参见分解类算法参数调优

  • 如果您的数据通常通过阈值即可判断异常,那么推荐您优先尝试统计类算法(esd、ttest和nsigma),参数调优请参见统计类算法参数调优

如何选择时序异常检测的时间范围?

您可以在不同的使用时期对时间范围有不同的调整策略。

  • 首次使用时:请选择足够长的时间范围,以完成异常检测算法初始化,例如分解类算法需要4个周期(一个周期包含波峰、波谷)的数据来完成初始化。您也可以设置参数verbose=true,并观察输出的warmup列,从而判断算法是否已完成初始化(FALSE表示已完成初始化)。

  • 完成初始化后:异常检测状态会保留并持续更新,此时,您可以根据需求调整异常检测时间范围,时间范围越小,检测耗时越少。如果您需要持续地对最新数据点进行异常检测,请参见如何不间断地进行时序异常检测

什么情况下使用adhoc_state参数?

如果您还不熟悉异常检测算法和参数,建议您添加adhoc_state=true参数来对不同算法和参数进行测试。此时,每次执行的异常检测完全独立,可以避免之前累计的状态影响检测效果,检测结果容易复现。

什么情况下使用reset_state参数?

如果您认为数据分布发生了较大变化,异常检测的历史累计状态不再适用,可以添加reset_state=true参数来重置状态。

  • 本页导读 (1)
文档反馈