DataWhale组队学习活动

基于统计学来进行异常检测的方法就是学习一个拟合数据集的生成模型,认为模型中低概率区域的对象就是识别出的异常点。

异常检测的方法可以分为参数方法和非参数方法。它们最大的区别是,参数方法的假定了先验的统计模型,然后运用概率密度公式来计算分布产生概率,非参数方法没有假定先验的统计模型,相当于是运用输入数据来确定模型,这里的参数不是模型训练的参数,而是指先验分布的参数。

参数方法

主要思路就是先确定一个分布,然后再通过输入数据学习分布的参数,低概率的点就被识别为异常点。如可以选择正态分布进行求解。

在异常点中分为一元异常点和多元异常点,区别是多元异常点会有多个特征。这时候在维度为1的数据中的分布需要被扩充到更高维度上,如果各个维度,也就是说数据的每一个特征都相互独立,那么就可以直接利用一元异常点的异常检测进行扩充,但是如果特征之间有相关关系且符合多元高斯分布,那么就可以求相应参数。如果实际数据复杂,还可以采用混合的参数分布。

非参数方法

直方图

利用数据构造直方图,异常点如果在直方图中就是正常的,否则是异常的。模型容易受到超参数影响如直方图箱数或箱尺寸。当箱尺寸太小,可能正常对象会被误识别为异常点,当箱尺寸太大,异常节点可能会被判定为正确的,造成错误。

角度

基于角度的异常节点检测主要的思想在于如果某一个数据点距离其余点越远,那么潜在角度可能越小,该点越有可能是异常点。使用加权的余弦可计算出异常的分数。

HBOS

该方法全称Histogram-based Outlier Score,是将单变量方法组合,适用于互相独立的特征,然后对每个维度进行区间划分,区间密度越高,异常评分越低。计算方法是对每个维度做出数据直方图(静态宽度直方图、动态宽度直方图),用箱子高度表示密度估计,归一化处理计算出HBOS值。

$ H B O S(p)=\sum_{i=0}^{d} \log \left(\frac{1}{\text {hist}_{i}(p)}\right) $$

这一方法的缺点是不能检测局部异常值。