本文已参与「新人创作礼」活动,一起开启掘金创作之路。
我们知道单个异常检测的算法有时精准度不是那么高,但业务场景往往需要高的精准度。比如,当我们检测一个生产线下来的发动机是不良的,精准度是越高越好。现实就是单一的算法精准度不高,但业务场景需要判断精准度高。那怎么办呢?本文翻译自笔者的一个提问,来自于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日