【Datawhale第25期组队学习】Task01:异常检测概念和方法


前言

第一次写学习笔记,因为作业堆积有些匆忙。
正文没有全部照搬,只摘抄自己新get到的。


刚好下周该我分享论文了,所以想正好分享个跟异常检测有关的论文,结果发现论文大都是cv方向或者金融里的fraud detection,结果搜了好长时间也没找到满意的,(自己能看懂,且页数少的(狗头))。好不容易找到个日志的异常检测结果发现上上周学长刚讲过一个。遂还是按着原先想法找了个Xgboost的相关的,不过发现虽然论文题目没有anomaly detection但是里面写了,耶斯莫拉,人生总是这么阴差阳错,机缘巧合。

一、异常检测的基本概念

所谓异常当然是少数啦,顾名思义,是识别与正常数据不同的数据,与预期行为差异大的数据。

1.异常类别

点异常(point anomalies)指的是少数个体实例是异常的,大多数个体实例是正常的,例如正常人与病人的健康指标;

条件异常(conditional anomalies),又称上下文异常,指的是在特定情境下个体实例是异常的,在其他情境下都是正常的,例如在特定时间下的温度突然上升或下降,在特定场景中的快速信用卡交易;
条件异常确实是新get啦。

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

2.任务分类&难点

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

无监督:训练集无标签

半监督:在训练集中只有正例,异常实例不参与训练
1.数据量少异常检测任务通常情况下负样本(异常样本)是比较少的,有时候依赖于人工标签,属于样本不平衡问题。

2.噪音异常和噪音有时候很难分清,如下图,图a的A点位于数据的稀疏区域,与其他数据非常不同,因此可以断定为异常,但是像图b的A点,周围有也有很多点分布,我们很难把A点识别出来。

二、异常检测方法

1. 基于统计学的方法

在我这周分享的论文里有这样一段话:
网络入侵检测根据使用的方法大致可以分为异常检测和误用检测两类。
异常检测建立一个正常的网络流量行为模型。不符合正常模型的行为被定义为入侵。这种检测可以识别未知的攻击。(基于统计学的方法:它们假定正常的数据对象由一个统计模型产生,而不遵守该模型
的数据是异常点。统计学方法的有效性高度依赖于对给定数据所做的统计模型假定是否成立。

而误用检测则是基于异常行为建立入侵模型。匹配此模型的行为被定义为入侵。

2.线性模型

PCA降维。

3.基于邻近度的方法

代码如下(示例):

4.集成方法

集成啊,我熟(狗头)。
这次找的论文也是两个融合在一起。
哈哈哈这里的孤立森林就是上次学长分享的论文里用的模型。
孤立森林:孤立森林假设我们用一个随机超平面来切割数据空间,切一次可以生成两个子空间。然后我们继续用随机超平面来切割每个子空间并循环,直到每个子空间只有一个数据点为止。直观上来讲,那些具有高密度的簇需要被切很多次才会将其分离,而那些低密度的点很快就被单独分配到一个子空间了。孤立森林认为这些很快被孤立的点就是异常点。

5.机器学习

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

数据挖掘异常检测的算法:https://www.zhihu.com/answer/417091151
Xgboost讲解:https://www.cnblogs.com/mantch/p/11164221.html
孤立森林讲解:https://www.jianshu.com/p/d9fb673301a3


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值