一、异常检测算法
1.使用高斯正态分布
例子:
###问题:带入公式中后,我不清楚他如何用到计算中,我感觉都一样。
二.开发和评估异常检测算法
1.实数评估的重要性
当我们为某个应用开发一个学习算法时,需要进行一系列的选择(比如,选择特征等)。如果我们有某种方法,通过返回一个实数来评估我们的算法,那么对这些选择做出决定往往会更容易的多。
2.
异常检测算法是一个非监督学习算法,意味着我们无法根据结果变量y的值来告诉我们数据是否真的是异常的。我们需要另一种方法来帮助检验算法是否有效。所以我们可以假设y=0或y-1。有异常y=1。
例子:
我们通常在数据集中有少量的异常例子。我们可以分为正常的训练集,带有异常的验证集和测试集。
然后设置,验证准确度。
对于数据分布非常倾斜时(y=1有2000个,y=0有10个)还可以使用一下方法。
三、 异常检测与监督学习对比
什么情况下,能让我们把某个学习问题当做是一个异常检测,或者是一个监督学习的问题?
对于一个学习问题,如果正样本的数量很少,甚至有时候是0,也就是说出现了太多没见过的不同的异常类型,那么对于这些问题,通常应该使用的算法就是异常检测算法;而如果正负样本数量都很多的话,则可以使用监督学习算法。例如,如果网络有很多诈骗用户,则可以变为监督学习;如果只有少量诈骗用户,则为异常检测。
————————————————
原文链接:https://blog.csdn.net/HUAI_BI_TONG/article/details/115426449
四、选择特征
当应用异常检测时,选择什么特征对运行有很大影响。
异常检测假设特征符合高斯分布,如果数据的分布不是高斯分布,异常检测算法也能够工作,但是最好还是将数据转换成高斯分布,例如使用对数函数:x = l o g ( x + c ) ,其中x=,a为0-1的分数。
如何得到异常检测算法的特征?进行误差分析。
一个常见的问题是一些异常的数据可能也会有较高的p ( x ) p(x)p(x)值,因而被算法认为是正常的。这种情况下误差分析能够帮助我们,我们可以分析那些被算法错误预测为正常的数据,观察能否找出一些问题。我们可能能从问题中发现我们需要增加一些新的特征,增加这些新特征后获得的新算法能够帮助我们更好地进行异常检测。
我们通常可以通过将一些相关的特征进行组合,来获得一些新的更好的特征(异常数据的该特征值异常地大或小)。
如x5和x6将其他特征结合起来效果更好。