异常检测中的阈值设定问题
异常检测通常有基于统计学习方法,基于机器学习方法,基于神经网络学习的方法等几种。
统计学习方法主要是通过设定阈值来判断统计量是否超出,如果超出,则判定为异常,反之,正常。
一般情况下,如果阈值选的较大,有可能出现漏报的情况,如果阈值选的较小,有可能出现误报的情况。(阈值的选定永远是误报与漏报之间的Tradeoff)
阈值选择的两种策略
Anomaly-Driven:
异常检测系统中为了尽可能地捕捉所有的异常,通常会设定一个阈值,与此同时会带来较高比例的误报,在检测系统中处理这样的误报,也会花费一定的人力。
通常设定一个阈值,然后计算此阈值下为处理误报所产生的“代价”,如果代价过高或过低,调整阈值,直至所产生的“代价”能够接受为止。
Budget-Driven:
与Anomaly-Driven相反,首先设定能够接受的“代价”。比如说,能够接受在300万检测中有3次误报,那么该阈值设定为99.9999%。
t-Digest算法在阈值选取中的应用
简单来讲,t-Digest算法主要是根据百分位数来确定阈值,如下图: