异常检测——5月(task1)

task1的学习分为两部分

1.了解异常检测相关的基本概念。

2.学习异常检测的基本方法。

1.异常检测的基本概念

什么是异常检测?

按字面意思理解:异常检测就是识别与正常数据不同的数据,与预期行为差异大的数据。异常也被称为异常值、新奇、噪音、偏差和异常。如果是给定了带有正常值和异常值标签的数据,异常检测就相当于有监督学习的分类问题。

在一般的预测问题中,模型通常是对整体样本数据结构的一种表达方式,这种表达方式通常抓住的是样本的一般性质,不符合一般性质的点,我们称其为异常点,如果算法对异常点敏感,那么生成的模型并不能对整体样本有一个较好的表达(过拟合),预测就会不准确。虽然很多时候我们没那么喜欢这些“异常数据”,但在某些方面检测这些异常点有重要的意义,如疾病预测(健康人的身体指标往往是相似的,出现异常,则他的身体情况在某些方面肯定发生了改变)此外异常检测也可以应用到识别信用卡欺诈,工业生产异常,网络侵入等等少数的事件。

异常检测虽然是机器学习中一个比较小的分支,但他在各种人工智能落地应用如计算机视觉,数据挖掘,NLP当中都有着很重要的作用。

1.1异常的类别

点异常:少数实例异常。如病人和健康人的身体指标。(理解为一群蓝精灵当中混入了一只哆啦a梦)

条件异常:上下文异常,即在特定情况下个体实例是异常的,在其他情境下都是正常的。例如:特定情境下的快速信用卡交易。(此类异常多为时间序列中的异常,零下的温度在冬天是正常的,但是当他出现在夏天的气温时序数据中时就成了一个异常值)

群体异常:在群体集合中个体实例出现异常的情况,而个体实例可能是正常的。在入侵或者欺诈检测等应用中,离群点对应于多个数据点的序列,而不是单个数据点。例如社交网络中虚拟账号形成的集合作为群体异常子集,但子集中的个体节点可能与真实账号一样正常。

1.2异常检测任务分类

有监督学习:训练集正反例都有标签。(有监督学习:预测基于数据中已有的模式)

无监督学习:训练集无标签(无监督学习:发现数据中的隐藏模式,我们事先并不知道我们要找的模式是什么,需要依靠算法来发现)

半监督学习:训练集中只有正例,异常实例不参与训练。从给定的正常 训练数据集构建一个表示正常行为的模型,然后测试学习模型生成测试实例的可能性。

检测方法除以上机器学习外还可以用概率的知识,给出总体的分布来推断样本性质,统计则从样本出发来验证总体分布的假设。所以概率统计模型需要我们去验证模型假设的正确性,比如概率分布是否正确,参数的设置是否合理。

1.3异常值的判定

异常值的判定规则主要采用以下两种方式:

1.区间判定

给出一个阈值区间,实际观测落在区间之外则判定为异常。

2.二分判定

二分判定的前提是数据包含人工标注。异常值标注为1,正常值标注为0,通过机器学习方法给出观测为异常的概率。

1.4异常检测应用

故障检测:主要是监控系统,在故障发生时可以识别,并且准确指出故障的种类及出现的位置,主要应用领域包括银行欺诈,移动蜂窝数据网络故障,保险欺诈,医疗欺诈。

医疗日常检测:在许多医疗应用中,数据是从各种设备收集的,如核磁成像扫描,正电子发射断层扫描,心电图时间序列。这些数据中的异常模式通常反应疾病状况。

诈骗检测:信用卡交易

网络侵入检测:恶意活动,收集到的数据可能会显示异常行为,对此类活动的识别即为入侵检测

视屏异常检测:视频中异常行为检测是计算机视觉领域中的一个重要问题,用摄像头捕获到目标区域视频信息,算法需要自动检测出视频中不符合常规模式的行为(违反交通规则,打架斗殴,违法偷窃等)。

时间序列异常检测:时间序列是指某一个指标按照时间的统计或者观测而成的数列。比如,在运维的领域中,某主机每秒的CPU使用率、某业务每分钟的请求数量等,都可以形成一条时间序列。从正常的时间序列中识别不正常的事件或行为。

日志异常检测:

工业异常检测:

1.5异常检测的难点

1.数据量少,异常样本很少,有时候依赖于人工标签,属于样本不平衡问题。

2.噪音。异常和噪音有时很难进行区分。

1.4异常检测的优缺点

优点:能够检测新的入侵或从未发送的入侵;对操作系统的依赖性较小;可检测出属于滥用权限型的入侵。

缺点:报警率高,行为模型建立困难。

2.异常检测方法简介

异常检测

输入数据的特性

① 输入的数据包括:对象,点,记录,向量,事件等

② 属性的特点决定用异常检测的方法

③ 输入的数据可以彼此之间有关系

2.1基础方法

 

2.1.1基于统计学的方法

又可以分为参数化方法和非参数方法。

(1)参数方法基于假设:正常的数据都是由一个参数为·的分布产生的,概率函数 f(x,·)统计假设检验:

H0:假设数据由估计的分布产生(参数为·) 若是拒绝则这个假设为异常。

它可以基于高斯模型基于高斯分布的变形的算法 :Rosner test、 Dixon test、Slippage Detection test,

可以基于回归模型:基本回归分为两步:1、利用数据训练回归模型 2、利用残差,表示数据的异常程度

基于混合参数模型:分为两类:1、为异常和正常的数据作不同的参数分布模型 ​ 2、只为正常的数据作混合参数模型

(2)非参数方法

①基于直方图

利用直方图对正常数据画像

②基于核函数

③基于密度估计技术
 

2.1.2线性模型

主成分分析

它的应用场景是对数据集进行降维。

2.1.3基于邻近度的方法(数据点聚集度高,离群点较少)

1.基于集群

聚类算法是将数据点划分为一个个相对密集的簇,那些不能被归于某个簇的点则被视作离群点。聚类的主要目的通常是为了寻找成簇的数据.

2.基于距离(k近邻算法)。

获得一条数据的异常得分(计算到K个近邻的总的距离,利用距离小于d的近邻的数量)

提高效率—剪枝(线性)/抽样(o(mn))

3.基于密度(LOF)

​ 以一条数据为中心,寻找能包含k个近邻的最小超平面,求其密度 (K/V) ,若是正常则与其临近点的密度相似,异常则比其最近临近点还会低

 

基于聚类和最近邻的区别:

聚类:利用数据所属的簇来评价数据

最近邻:用其局部的近邻来分析数据

2.2集成方法

集成方法将多个算法和基检测器的输出结合起来,提高算法精度。

2.2.1feature bagging

与bagging法类似,对象是feature

bagging是一种集成学习算法,是bootstrap aggregating的缩写,有些地方会叫做套袋法,袋装法,自助聚合。

2.2.2孤立森林

孤立森林基于决策二叉树,它的的基本原则是,离群值很少,而且远离其他观测值。为了构建树(训练),该算法从特征空间随机抽取一个特征,并在最大值和最小值之间随机选择一个分割值。这是为训练集的所有观察值而制定的。为了建造森林,一棵树的集合是使森林里的所有树木都平均。然后,对于预测,它将观察值与“节点”中拆分值对比,该节点将有两个子节点,然后进行另一个随机比较。一个实例的算法所产生的“splittings”的数量被命名为:“路径长度”。直观上来说,那些具有高密度的簇需要多次分割,而低密度的点很快会被孤立,这些点被认为是异常点。

 

本文章源自Datawhale开源课程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值