异常检测
动机
异常检测用于检测一个物品或者数据,跟其他数据相比,是不是异常数据。例如,刚生产出的产品是不是残次品;计算机集群中,一个计算机节点是否表现异常。做法一
我们假设一组数据的各个维度服从高斯分布且相互独立,那么就可以用已有数据对每一个维度构建高斯分布模型,然后利用模型来对新的数据进行测试。具体步骤如下图所示:
如果我们有一些标记过的数据,那么我们将这些数据进行合理的分组,然后利用他们对算法进行评估。
利用正常数据组成的训练集对模型参数进行估计,然后利用有大量正常数据与少量异常数据的交叉验证集和测试集对参数进行删选和评估结果。关于如何评测,因为这个问题的数据集属于skewed class, 所以可以用F1-socre来对结果进行评估。
异常检测和监督下的逻辑回归有一些相似之处,例如他们都是对数据进行分类,但是由于数据特点的不同,他们的应用场景也有所不同。
关于特征的选择,这个方法的一个明显缺点就是忽略了维度之间的相关性。可以通过人为增加特征进行弥补。例如,当和成正或者负相关关系时,可以组合新的特征,这样算人为的捕捉数据之间的相关性。做法二
另外一种做法就是利用多元变高斯分布的模型,由于用到了协方差矩阵,所以这个模型可以自动捕捉到维度之间的相关性,理论上一种方法更加准确,同时,计算量也大。