异常检测小结

如题所述

第1个回答  2022-06-16
    本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。

    异常检测是指在一堆数据样本中,通过各种方法找出脱离正常范围的数据,即异常样本、异常数据。异常检测应用领域:

        1、金融领域: 从金融数据中识别”欺诈案例“,如识别信用卡申请欺诈、虚假信贷等。

        2、网络安全领域: 从流量数据中找出”入侵者“,并识别新的网络入侵模式;

        3、电商领域: 从交易数据中识别”恶意买家“,如羊毛党、恶意刷屏团伙;

        4、自然灾害领域: 基于对风速、降雨量、气温等指标的预测,判断未来可能出现的极端天气;预测地震。

        5、工业领域: 可通过异常检测手段进行工业产品的瑕疵检测,代替人眼进行测量和判断。

    基本思想:正常数据样本应该是符合高斯分布,正常数据占比量大,而异常数据占比小。

    (1)高斯分布

        思想:当前数据点偏离总体数据平均值3个标准差时,即 ,可以认为是一个异常点(偏离多少个标准差可视实际情况调整)

        步骤:计算已有数据的均值及标准差。当新来的数据点偏离均值3个标准差时,视为异常点。

    (2)混合高斯分布

        多特征时候可以利用高斯混合模型使用数据集建立起概率模型,计算输入样本符合此混合高斯分布的概率 ,也就是生成输入样本的概率,概率越低,说明异常程度越高, 如何计算这个概率呢?

        假设特征之间独立,先计算每个特征的均值 和方差 ,然后根据高斯分布概率密度函数计算每个特征的概率。

        依据概率理论,高斯混合模型的输出概率由多个特征概率的连乘得到,

    基于距离的方法思想:正常样本点的周围存在很多个近邻点,而异常点距离周围样本点的距离都比较远。

     (1)K近距(KNN)

            正常数据点具有密集的邻域,异常值则远离其相邻点,即具有较为稀疏的邻域

            三种方式判断异常点:

            1、距离d之内相邻点少于p为异常

            2、相邻点的距离最大的前n个点为异常

            3、与k个最邻近点的平均距离大于阈值的数据点为异常

    (2)K-means聚类

            K均值聚类的思想识别数据中的异常点比较简单,步骤如下:

            1、利用“拐点法”、“轮廓系数法”、“间隔统计量法”或者“经验法”确定聚类的个数;

            2、基于具体的K值,对数据实施K均值聚类的应用;

            3、基于聚类的结果,计算簇内每个点到簇中心的距离;

            4、将距离跟阈值相比较,如果其大于阈值则认为是异常,否则正常;

        基于密度的异常检测是计算样本点的密度及其相邻样本的密度。如果,一个样本的密度相对于相邻样本密度低很多,可以确定是一个异常点。

        (1)KNN

            密度定义:K个最近邻的平均距离的倒数,距离小则密度高。N是包含x的最近邻的集合,|N|是集合的大小。y是一个最近邻。

        (2)DBSCAN

        DBSCAN相对密度,x的密度是与它最近邻y的平均密度之比:

    (1) 孤立森林(Isolation Forest)

        思想:将数据不断通过某个属性划分,异常点通常能很早地被划分到一边,也就是被早早地孤立起来。而正常点则由于群体众多,需要更多次地划分。

        步骤:通过以下方式构造多颗孤立树:在当前节点随机挑选数据的一个属性,并随机选取属性的一个值,将当前节点中所有数据划分到左右两个叶子节点;如果叶子节点深度较小或者叶子节点中的数据点还很多,则继续上述的划分。异常点表现为在所有孤立树中会有一个平均很低的树的深度。