1、单变量高斯分布异常检测
1.1 算法流程
设有m个样本x(1),x(2)...x(m),其中每个样本有n维特征,即x(i)j表示第i个样本第j个特征(i=1,2...m; j=1,2...,n)。第j个特征符合高斯分布
则异常检测的过程如下:
给定待检测样本x和检测阈值ε
1)用样本数据估计每一个特征总体分布参数μ和δ
2)计算待检测样本x的概率密度
3)判断x是否异常
若ρ(x)<ε,则表明x异常。
1.2 选择特征

2、多元高斯分布异常检测
由于单变量高斯分布异常检测模型是基于各特征变量相互独立的假设,因此,如果有两个特征变量存在相关性,这时单变量高斯分布模型不能很好识别异常值,这时需要使用多元高斯分布模型。
2.1 算法流程
1)用样本数据估计每一个特征变量的参数μ,并构造特征变量的协方差矩阵Σ。
其中,μ为一个n维列向量,表示各特征变量的平均值。
2)构造多元高斯分布模型,对于待检测样本x,计算概率密度ρ(x)
3)判断x是否异常
若ρ(x)<ε,则表明x异常。
2.2 几何角度分析协方差对模型的影响

从左到右5个模型:
第1个为一般的高斯模型;
第2个通过协方差矩阵,减小x1特征的方差,保持x2特征的方差不变;
第3个通过协方差矩阵,增大x2特征的方差,保持x1特征的方差不变;
第4个通过协方差矩阵,使x1、x2特征保持正相关关系;
第5个通过协方差矩阵,使x1、x2特征保持负相关关系。 2.3 多元高斯模型与单变量高斯模型的比较

3、异常检测系统模型评估
评估一个异常系统模型的效果,需要数据集中包含异常样本(正样本)和无异常样本(负样本)。将数据集分成训练集、交叉验证集、测试集,在训练集训练出异常检测模型,然后通过某些指标来检验模型在验证集和测试集上的效果。具体步骤如下:
1)将带有标签的数据集划分为训练集、交叉验证集和测试集,其中训练集大部分由负样本组成,交叉验证集和测试集中由负样本和正样本组成(验证集和测试集中正样本数量相同)。比如共有10000个负样本、20个正样本,6000个负样本组成训练集,2000个负样本和10个正样本组成验证集,2000个负样本和10个正样本组成测试集。
2)通过训练集数据计算特征的均值μ和方差δ2(或协方差),构造模型。
3)给定不同的阈值ε,将交叉验证集数据代入模型中计算,并通过评估指标(召回率、精确率、F1值)来评估模型效果,选出最好的ε。这一步,可以通过分析验证集中分类错误的数据,依据实际情况增加或重新构造特征(比如特征组合为一个新特征),优化模型。
4)选定ε或相关特征后,利用模型计算测试集数据,并通过评估指标评估模型效果。
4、异常检测与监督学习对比
由于异常检测也用到了带标签的数据,因此,与监督学习有类似的地方。异常检测主要用于只有少量正样本数量,存在大量负样本的情况,监督学习用于同时有大量正样本和负样本,这时监督学习可以很好的同时学到正样本和负样本的特征。两者区别及使用场景如下: