异常检测task1

task1的内容是异常检测内容介绍:分别是了解异常检测的基本概念和基本方法

(1)异常检测的基本概念:

异常检测的目的是识别与正常数据不同的数据,与预期行为差异大的数据。比如:识别行用卡欺诈,工业生产异常,网络流异常(网络被入侵),针对少数事件。

一、异常的类别 

点异常:是指少数个体实例异常,大多数的个体实例正常,比如正常人与病人的健康指标。

上下文异常:是指在特定情境下个体实例是异常的,其他情境下都是正常的,比如在特定时间下的温度突然上升或下降,快速行用卡交易。

群体异常:指的是在群体集合中的个体实例出现异常的情况,而该个体实例自身可能不是异常,例如社交网络中虚假账号形成的集合作为异常子集,但字迹的个体节点 可能与真实的账号一样正常。

1.1异常检测任务分类:

分为

有监督:训练集的正例和反例均有标签 

无监督:训练集无标签

半监督:在训练集中只有单一类别(正常实例),没有异常实例参与训练。

1.2 异常检测的场景有:

故障检测 

物联网异常检测

欺诈检测

工业异常检测

时间序列异常检测

视频异常检测

日志异常检测

医疗日常检测

网络入侵检测

二、异常检测的常用方法

2.1 传统的方法:

2.1.1 首先是基于统计学的方法

统计学的方法对数据的正常性做出假定。

(1)假定正常的数据对象由一个统计模型产生,而不遵守该模型的数据就是异常点,统计学习的方法有效性高度依赖于对于给定数据所做的统计模型假定是否成立,如果本身这个统计模型就是错误的,那么该异常检测方法就是错误的。

该方法的思想:学习一个拟合给定数据集的生成模型,然后识别该模型低概率区域中的对象,把他们作为异常点,也就是利用统计学方法建立一个模型,然后考虑对象有多大可能符合该模型。

具体解释是:假定输入数据集为${x^{(1)}, x^{(2)}, ..., x^{(m)}}$,数据集中的样本服从正态分布,即$x^{(i)}\sim N(\mu, \sigma^2)$,我们可以根据样本求出参数$\mu$和$\sigma$。

$\mu=\frac 1m\sum_{i=1}^m x^{(i)}$

$\sigma^2=\frac 1m\sum_{i=1}^m (x^{(i)}-\mu)^2$

2.1.2线性模型

典型的方法有:PCA方法,principle component  analysis 是主成分分析方法,简称PCA,他的应用场景是对数据集进行降维,降维后的数据能够最大程度地保留原始数据的特征(以数据协方差为衡量标准),PCA的原理是通过构造一个新的特征空间,把原始数据映射到这个新的低维空间里。PCA可以提高数据的计算性能,并且缓解高维灾难。

2.1.3 基于相似杜的方法

这类算法适用于数据点的聚集程度高、离群点较少的情况。同时因为相似度算法通常需要对每一个数据分别进行相应计算,所以这类算法通常计算量大,不太适用于数据量大、纬度高的数据。基于相似度的检测方法大致可以分为三类:

基于集群(簇)的检测,比如;DBSCAN等聚类算法。

聚类算法的优缺点:

1:能够较好发现小簇的异常。

2:通常用于蔟的发现,对于异常值采取丢弃处理,对异常值的处理不够友好,

3:产生的离群点集和它们的得分可能非常依赖所用的醋 的个数和数据中离群点的存在性。

4:聚类算法产生的一簇的质量对该算法产生的离群点的质量影响非常大。

基于距离的度量,如K近邻算法:

k近邻算法的基本思路是对每一个点,计算其与最近k个相邻点的距离,通过距离的大小来判断他是否为离群点。在这里,离群距离大小对k的取值高度敏感。如果k太小,则少量的邻近离群点可能导致较低的离群点得分。如果k太大,则点数少于k的蔟中所有的对象可能都成了离群点。为了使模型更加稳定,距离值的计算通常使用k个最近邻的平均距离。

k近邻算法的优缺点:

1:简单

2:基于邻近度的方法需要o(n2)时间,大数据集不适用;

3:对参数的选择敏感。

4:不能处理具有不同密度区域的数据集,因为他使用全局阈值,不能考虑这种密度的变化。

基于密度的度量,如LOF(局部离群因子)算法

      局部离群因子(LOF)算法与k近邻类似,不同的是它以相对于其邻居的局部密度偏差而不是距离来进行度量,他将相邻点之间的距离进一步转化为“领域”,从而得到领域中点的数量(密度),认为密度远低于其邻居的样本为异常值。

LOF局部离群因子算法的优缺点:

(1)给出了对离群度的定量度量

2:能够很好地处理不同密度区域的数据

3:对参数的选择敏感。

2.2集成方法

集成是提高数据挖掘算法精度的常用方法。集成方法将多个算法或多个基检测器的输出结合起来。其基本思想是一些算法在某些子集上表现很好,一些算法在其他子集上表现很好,然后集成起来输出更加鲁棒。集成方法与基于子空间方法有着天然的相似性,子空间与不同的点集相关,而集成方法使用基检测器来探索不同维度的子集。将这些基学习器集合起来。

常用的集成方法有:

eature bagging,孤立森林等。

**feature bagging **:

与bagging法类似,只是对象是feature。

鼓励森林:

孤立森林假设我们用一个随机超平面来切割数据空间,切一次可以生成2个子空间。然后我们继续用随机超平面来切割每个子空间并循环,直到每个子空间只有一个数据点为止。直观上来讲,那些具有高密度的蔟需要被切很多次才会将其分离,而那些低密度的点很快就被单独分配到一个子空间了。孤立森林认为这些很快被孤立的点就是异常点。

用四个样本做简单直观的理解,d是最早被孤立出来的,所以d最有可能是异常。

2.3机器学习方法

在有标签的情况下,可以使用树模型(gbdt,xgbost)进行分类,缺点是异常检测场景下数据标签是不均衡的,但是利用机器学习算法的好处是可以构造不同特征。

异常检测的常用开源库有:

scikit-learn 

sklearn 是一个python语言的开源机器学习库,具有各种分类,回归和聚类算法。也包含了一些异常检测算法,例如:LOF和孤立森林

pyOD是目前最流行的异常检测工具库,主要亮点包括:

包括近20种常见的异常检测算法,比如 LOF/LOCI /ABOD 以及最新的深度学习 如对抗生成模型GAN,和集成异常检测。

支持不同版本的python 

简单易用一致api,只需要几行代码就可以完成异常检测,方便评估大量算法,

作业:

学习了pyod库操作:

首先conda安装了pyod包:

 

测试了pyob的使用:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值