TOCC数据异常检测一

作者: 全村人民的希望 | 来源:发表于2020-08-20 15:10 被阅读0次

一、什么是异常检测

数据中的异常数据通常被认为是异常点、离群点或孤立点,这些数据的特征与大多数数据不一致,呈现出“异常”的特点,检测这些或这种类型的数据的方法称为异常检测(anomaly detection)、偏差检测(deviation detection)、例外挖掘(exception mining)。

异常值包括单变量异常值和多变量异常值,身高、体重或身高和体重;异常(值)产生的原因:

  • 数据输入错误
    人为错误(如数据收集,记录或输入过程中导致的错误)会导致数据中的异常值。 例如:客户的年收入是10万美元,但意外地,数据输入操作附加一个零。 现在的收入就是100万美元,是10倍。 显然,与其他人相比,这将是异常值。
  • 测量误差
    这是异常值最常见的来源。 当使用的测量仪器出现故障时,会引起这种情况。 例如:有10台称重机。 其中9个是正确的,1个是错误的。 故障机器上的人员测量重量将高于或低于组内其余人员。 在故障机器上测量的重量可能导致异常值。
  • 实验误差
    异常值的另一个原因是实验误差。 例如:在7名跑步者的100米冲刺中,有一名选手错过了跑的口令,让他开始延迟。 因此,这使得跑步者的跑步时间比其他跑步者要多, 总运行时间可能是一个异常值。
  • 故意异常值
    通常在自我报告的措施中涉及敏感数据。 例如:通常青少年报告酒量,只有其中一小部分报告具有实际价值,这里的实际值可能看起来像异常值,因为其余的青少年正在假值。
  • 数据预处理或处理错误
    无论何时执行数据挖掘,我们从多个来源提取数据。 某些操作或提取错误可能会导致数据集中的异常值。
  • 抽样错误
    例如,衡量乒乓球运动员的身高,错误地在样品中包括几名NBA篮球运动员。 这种包含可能会导致数据集中的异常值。
  • 自然异常值
    当异常值不是人为的(由于错误),它是一个自然的异常值。 例如:注意到其中一家著名的保险公司,前50名财务顾问的表现远远高于其他人。 令人惊讶的是,这不是由于任何错误。 因此,每当与顾问一起执行任何数据挖掘活动时,我们都会分别对待此细分。

(1)异常值检测作为一个独立的过程,识别异常的事件或对象:

例如异常订单识别、风险客户预警、黄牛识别、贷款风险识别、欺诈检测、技术入侵、客户异常识别(被盗号、外挂)、信用卡欺诈、药物变异识别、恶劣气象预测、网络入侵检测、流量作弊检测、次品检测(工业界)等。

——通过用户的点击某个页面的次数、登录频率、发帖次数、速度等等,通过其异常或奇怪的行为,检测其是否为异常用户(被盗号、外挂)。

(2)作为数据预处理过程的一部分:被看作噪音,识别后还需要进行后续处理,以更好地为后续数据建模过程做准备。处理方法一般有:

  • 删除:如果确定是噪音数据,错误数据,可以直接删除。
  • 不处理—选用不受影响的算法:如果不想删除(可能因为不知道是不是噪音数据—宁可放过不可错杀,或者是噪音数据但不想删除),可以使用一些对异常点不那么敏感的算法。
  • 特征缩放(例如归一化、标准化):如果不想删除,算法又对异常值敏感,可以对其进行数据转换,比如标准化。但是要考虑特征缩放可能会破坏数据集的结构分布。

异常值检测的方法

0、数据预处理中常用的简单方法:Tukey's test方法

一个异常阶(outlier step)被定义成1.5倍的四分位距(interquartile range,IQR)。一个数据点如果某个特征包含在该特征的IQR之外的特征,那么该数据点被认定为异常点。

1、基于统计分布的方法

构建一个概率分布模型,并计算每个数据对象符合该模型的概率,把具有低概率的对象视为异常点。如果模型是簇的集合,则异常是不显著属于任何簇的对象;如果模型是回归时,异常是相对远离预测值的对象。

用户指定一个概率分布,例如常用正态分布,然后根据数据集计算分布的参数,得到概率密度函数,就可以估计每个对象在该分布下的概率。

——一元情况下的直观理解就是,计算每个数据对象距离均值点的距离,比如在标准正态分布下,超过4个标准差的值出现的可能性是万分之一。

方法评价:

当存在足够的数据和domain knowledge时,非常有效(因为概率分布的类型是人为判断指定的,如果指定了正态分布,而该数据集服从的实际是类似正态分布的其他分布,那么异常值检测可能出现问题)。

处理多元数据、高维数据的效果较差。

2、基于邻近度的方法

基本思路:在特征空间中,如果一个数据对象是异常的,那么它一定是远离大部分点的。而邻近度(距离)的度量,可以使用k最近邻距离。

离群因子:基于当前点到其k-最近邻邻域范围内的所有点的距离的平均值来定义。离群因子越大,越可能是离群点。

方法评价:

优点是易于理解,缺点一是大规模数据下,计算开销较大(需要O(m²)时间),二是不能处理不同区域具有不同密度的数据集,如图,异常值C可以识别,但异常值D不能识别。

3、基于密度的方法:LOF(Local Outlier Factor)

异常值定义为低密度区域的数据对象。

密度的衡量有绝对密度和相对密度之分,一般使用与数据对象的邻域相关的相对密度(局部相对密度)。

方法评价:

优点

不需要对数据的分布做太多要求(相比基于统计分布的方法)。

可以处理不同区域具有不同密度的数据集(相比邻近度方法)。

可以量化每个数据点的异常程度(相比基于聚类的方法)。

缺点

时间复杂度仍然较高。

仍然面临调参困难问题。

4、基于聚类的方法

聚类的目的是为了发现强相关的数据对象的组,而异常检测则相反,为了发现不与其他数据对象强相关的数据对象,因此可以反向使用聚类算法进行异常检测。

思路:首先聚类所有数据对象,然后评估对象属于簇的程度。定量评估的方法可以基于目标函数来计算,例如对于K均值算法来说,删除某个点后能够显著的改善该簇的误差平方和(SSE),那么该点就是离群点。

方法评价:

优点

有些聚类算法(如K均值)的时间和空间复杂度较低,计算代价较小。

缺点

每种聚类算法可能只适合特定数据类型,需要谨慎选择。

通常只能给出 0/1 的判断(是不是异常点),不能量化每个数据点的异常程度。

相关文章

  • TOCC数据异常检测一

    一、什么是异常检测 数据中的异常数据通常被认为是异常点、离群点或孤立点,这些数据的特征与大多数数据不一致,呈现出“...

  • TOCC数据异常检测二

    A Comprehensive Guide to Data Exploration OverviewA compl...

  • 【算法】异常检测

    异常检测 异常检测(Anomaly Detection):异常检测就是从数据集中检测出异常样本,是一种无监督学习。...

  • 异常检测算法速览(Python代码)

    一、异常检测简介 异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。 1...

  • 异常检测

    异常检测工具包识别出不同于输入数据集其他部分的数据点,每个数据点向异常检测模型传递一个异常值(从0到无穷)一描述这...

  • 孤立森林(Isolation Forest)从原理到实践

    异常检测 离群点是在给定数据集中,与其他数据点显著不同的数据点。异常检测是找出数据中离群点(和大多数数据点显著不同...

  • 异常点检测方法

    一、基本概念 异常对象被称作离群点。异常检测也称偏差检测和例外挖掘。 常见的异常成因:数据来源于不同的类(异常对象...

  • 异常事件检测综述

    1 数据集 异常事件检测根据场景不同,学术界开源了多种数据集,如下表所示。 表3-1异常事件检测数据集 该领域应用...

  • Autoencoder神经网络完成异常检测(1)

    为了完成笔者的异常检测目标,在前期使用了传统的机器学习算法后,对“玩具数据集”进行异常检测,[https://...

  • 网络入侵的检测和预防

    标签: 异常检测, 入侵检测,入侵防御,IDS,IPS 异常检测 (Anomaly detection) 异常检测...

网友评论

    本文标题:TOCC数据异常检测一

    本文链接:https://www.haomeiwen.com/subject/tgckrktx.html