异常检测
假设样本由N维高斯分布产生,由高斯分布可知,大多数的样本概率密度比较高,少量的样本的概率密度比较小,所以我们可以先用正常的样本训练出高斯分布,然后用这个模型来计算新的样本,如果其概率密度小于某一值,就可以认为该样本是异常的。
如果样本有N个属性,那么可以训练出N维高斯分布,但由于计算量太大了,我们可以假设样本每个维度都符合高斯分布,那我没就可以训练出N个一维的高斯分布了。
模型参数:
μ1,μ2,…,μN,δ1,δ2,…,δN
μiδ2i=1M∑m=1Mx(i)m=1M∑m=1M(x(i)m−μi)
样本的概率密度为
p(x)=∏i=1N12π‾‾‾√δe−(x−μi)22δ2
如果样本 p(x)<ϵ ,则认为样本是异常的。
ϵ 通常是由交叉验证确定的,给定一系列 ϵ ,找出某个值使得在验证集上误差最小。
在异常检测中,也是存在两类样本,那么是否可以使用分类算法呢?其实是不可以的,因为异常样本特别少,而正常样本特别多,使用分类算法学习到的只可能是整个样本空间一部分规律,对于新的异常样本可能不太适用。