Problem Motivation
异常检测(Anomaly Detection)主要用于非监督学习,用于发现可能不应该属于一个已定义的组中的数据。
密度估计(Density Estimate)
现假设数据集为{x(1), x(2), ···, x(m)},我们根据相关信息了解到该数据集中的数据是正常的,但我们想要知道对于新数据xtest是否为异常数据。对于该问题,我们可以将其转换为概率问题,即xtest是异常数据的概率是多少。因此,我们应该构建模型p(x),其能计算出测试数据是否为异常数据的概率,其中p(x)称为x的概率模型。
上图中,在蓝色圈内的数据为正常数据的概率就越高,而圈外的数据为正常数据的概率就越低,即为异常数据的可能性就越高。
这种方法称为密度估计,其数学表达式为:
Question:
Your anomaly detection system flags x as anomalous whenever p(x) ≤ ε. Suppose your system is flagging too many things as anomalous that are not actually so (similar to supervised learning, thest mistakes are called false positives). What should you do?
A. Try increasing ε.
B. Try decreasing ε.
答案为B。
高斯分布(Gaussian Distribution)
高斯分布,即正态分布,x~N(μ, σ2),其中x∈R。其概率密度函数为:
其中:
注:在机器学习中对于方差我们通常只除以m,而在统计学中为除以(m - 1)。
异常检测算法
1)数据集为{x(1), ···, x(m)},计算μ1, ···, μn, σ12, ···, σn2
2)对于新数据x,计算p(x)
3)若p(x) < ε则为异常数据,否则为正常数据