异常检测和贝叶斯理论 / outlier detection and Bayes theorem

957 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

我们知道单个异常检测的算法有时精准度不是那么高,但业务场景往往需要高的精准度。比如,当我们检测一个生产线下来的发动机是不良的,精准度是越高越好。现实就是单一的算法精准度不高,但业务场景需要判断精准度高。那怎么办呢?本文翻译自笔者的一个提问,来自于stats_stackexchange论坛的。会英语的读者可以直接看原文

1. 命题

这个提问就是将多种异常检测算法组合起来,也就是说当A算法认定发动机是不良的,测试者还不做任何结论,然后用B算法再测,如果B算法也认定该发动机是不良的,那么测试者就引起重视了,最后用C算法再测,如果三种算法都一致认定该发动机是不良的,那么这个发动机真实是不良的概率就很高了。也就是说单种算法精度不高,我就通过多个算法来弥补。这样精准度就高了。问题来了,情理上这种推理是很有逻辑地,那么有没有理论支持这种推理呢?有!这就是贝叶斯理论。

我们假定发动机良好的标记是 1,不良的标记是 0. 如果第一个算法A的精准率(prediction accuracy)是 80%, 第二个算法B的精准率(prediction accuracy)是85%, 第三个算法C的精准率(prediction accuracy) 是90%.那么三种算法都认定发动机是良好的,而发动机真实良好的概率是多少?如果三种算法都认定发动机是不良的,那么发动机真实情况是不良的概率是多少?

2. 贝叶斯理论

让我们来看看贝叶斯理论:

当三种算法都认定发动机是良好的,那么实际上这个发动机是好的概率是:

​,

还有,当三种算法都认定发动机是不良的,那么实际上这个发动机是不良的概率就是:

​,

这里 ​and ​​​​​​​​ 是指发动机是良好的概率和不良的概率。对于我们的例子来说:

在命题中,我们没有具体给出 ​ 或​ , 我们知道​. 我们假设发动机的实际良率 ​ = ​= 0.5.( 笔者自己注,发动​​​​​​​机的实际良率应该是 ​>> ​的,我们先姑且认定良率一半对一半) , 那么

​.

这个最终的结果就是当三种算法都认定发动机是良好的,发动机实际是良好的概率达到99.51%。当三种算法都认定发动机是不良的,那么发动机实际是不良的达到99.51%。

那么从这个最终结果可以看出,虽然三种A,B,C各自的精准度最高只有90%,但三种算法的组合,最终的精准度达到99.5%。也就是从不完美的算法获得理想的结果。

3. 其他

本文第一次编辑于2021年4月30日