异常检测算法分类

  • 一、预测(监督机器学习)
    • 1.1 简介
    • 1.2 适用范围
    • 1.3 注意事项
  • 二、统计度量
    • 2.1 简介
    • 2.2 常用方法
  • 三、无监督机器学习
    • 3.1 常用方法
  • 四、拟合优度检验
    • 4.1 简介
    • 4.2 椭圆包络拟合(协方差估计拟合)
  • 五、基于密度的算法
    • 5.1 简介
    • 5.2 局部离群因子(LOF)

在选择算法之前,重要的是考虑数据源的性质和质量,数据是否收到异常污染将会影响检测方法。如果训练数据不包含异常(或标记了异常以便删除),我们称该任务为新奇检测,否则,我们称该任务为离群点检测。
异常检测的算法分类:

  • 预测(监督机器学习)
  • 统计度量
  • 无监督机器学习
  • 拟合优度检测
  • 基于密度的方法

一、预测(监督机器学习)

1.1 简介

利用过去的无异常的干净数据训练模型,并测量当前观察值与预测值的差异。确切的说,该类异常检测的算法应称为新奇检测

1.2 适用范围

  • 由于算法严格按照过去和现在的概念操作,因此仅使用一维时间序列

1.3 注意事项

  • 训练集需是干净的无异常数据

二、统计度量

2.1 简介

我们也可以通过人为的定义一个统计值,并设定一个阈值,在阈值范围外的为异常值。如:超过移动平均值两个标准差的点,即为异常值。

2.2 常用方法

  • 对于干净的无异常数据集,设均值或移动平均为基准,对于超过两个标准差的点,即视为异常。是一直新奇检测方法
  • 对于包含异常值的数据集,设绝对中位差(MAD) 为基准,查过一定阈值为异常。是一种离群点检测方法
  • 对于正态分布数据,使用GrubbsGrubbsGrubbs的离群检测。该方法每次迭代基于最值在正态中去除检测到的异常。是一种离群点检测方法

三、无监督机器学习

3.1 常用方法

  1. 单类支持向量机:利用不包含异常的干净数据集训练模型,创建决策边界,用于分类未来的输入数据点。由于标准的支持向量机实现中对于训练数据集中的离群值适用性比较低,故更适应新奇检测
  2. 隔离森林:类似于随机森林,该算法通过迭代训练集中的数据点来训练模型,随机选择一个特征,并在最大值和最小值直接随机选择一个分割点,通过判断数据点在整体森林中的路径长度来确定是否异常,异常值具有更短的路径。考虑到异常点的阈值受到数据中污染比例的影响,故污染比例设为0.010.010.01时,即表示为,路径中,最短的1%1\%1%路径的数据点为异常。是一种离群点检测算法

四、拟合优度检验

4.1 简介

拟合优度检验,是用来检测观察分布与预期分布之间差异的一种方法,如卡方检验、KS检验等,对于数据是一种已知分布,该方法具有良好效果。

4.2 椭圆包络拟合(协方差估计拟合)

由于异常的定义是不符合预期分布的点,而预期分布已知,故该方法受数据中异常数据的影响极小。
该方法要求数据来自已知的分布,而通常情况下,数据分布并不可知。对于高斯分布合成的数据集,使用sklearn.covariance.EllipticEnvelopesklearn.covariance.EllipticEnvelopesklearn.covariance.EllipticEnvelope类进行异常检测是不错的选择,该类是一种离群点检测算法,需要指定数据中的异常值比例。通常情况下,数据中的异常值比例也是未知的。可以通过调整异常比例从而调整误判。

五、基于密度的算法

5.1 简介

通过判断数据点的密度来判断数据是否为异常,一种密度的方式是基于k−meansk-meansk−means聚类,使用点到质心的距离作为样本密度的度量。通常情况下,异常值是低密度样本,这是因为我往往定义异常为坏样本,实际上,样本的好坏是基于人们的定义的,而不是密度,目前一种利用无监督学习进行反欺诈建模一方面的应用发现,坏样本(可能是机器批量建立账户,,批量领券或其他群体行为)通常具有相似的特征,而好样本则千人千面。

5.2 局部离群因子(LOF)

LOF使用样本周围的局部密度对异常进行分类。数据点的局部密度是指紧邻周围区域中其他点的密度,该区域的大小可以由固定距离阈值或最近的nnn个邻居点来定义。数据点的局部密度显著低于最近的nnn个邻居数据点的话,该数据点呗认为是异常。换而言之,数据点是否孤立,取决于相对邻居数据点而言有多孤立。sklearn.neighbors.LocalOutlierFactorsklearn.neighbors.LocalOutlierFactorsklearn.neighbors.LocalOutlierFactor类实现了该方法,是一直离群点检测算法。

异常检测算法分类总结相关推荐

  1. 异常检测算法分类总结(含常用开源数据集)

    作者:云智慧算法工程师 Chris Hu 异常检测是识别与正常数据不同的数据,与预期行为差异大的数据.本文详细介绍了异常检测的应用领域以及总结梳理了异常检测的算法模型分类.文章最后更是介绍了常用的异常 ...

  2. 异常检测算法分类及经典模型概览

    最近工作涉及有关异常检测的内容,而且前几天在公司做了一次有关异常检测算法和应用场景的分享,在此总结记录一下. 什么是异常检测? 异常检测(Anomaly Detection 或 Outlier Det ...

  3. 图像 异常检测算法_检测图像异常的算法

    图像 异常检测算法 Modern applications are generating enormous amounts of image data. And in the last years, ...

  4. 震惊!(竟有这么好的)时序数据异常检测算法简述与分类

                       时序数据异常检测算法简述与分类 摘要:异常检测是目前时序数据分析最成熟的应用之一,有效的异常检测被广泛用于现实世界的很多领域,例如量化交易,网络安全检测.自动驾驶 ...

  5. 时序预测竞赛之异常检测算法综述

    本文将介绍在时间序列预测相关问题中常见的异常检测算法,可以很大程度上帮助改善最终预测效果. 异常分类 时间序列的异常检测问题通常表示为相对于某些标准信号或常见信号的离群点.虽然有很多的异常类型,但是我 ...

  6. ML.NET 1.1 发布,模型构建器升级和新的异常检测算法

    https://www.toutiao.com/a6703297861997560328/ 2019-06-17 08:59:15 ML.NET 1.1 已发布.ML.NET 是一个跨平台的机器学习框 ...

  7. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归...

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

  8. 【机器学习】异常检测算法速览(Python代码)

    正文共: 8636字 8图 预计阅读时间: 22分钟 一.异常检测简介 异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点.异常值检测等等. 1.1 异常检测适用的场景 异常检 ...

  9. 【时间序列】时序预测竞赛之异常检测算法综述

    本文将介绍在时间序列预测相关问题中常见的异常检测算法,可以很大程度上帮助改善最终预测效果. 异常分类 时间序列的异常检测问题通常表示为相对于某些标准信号或常见信号的离群点.虽然有很多的异常类型,但是我 ...

最新文章

  1. python find next_美化组4,findNext()函数
  2. 和谐 平等_平等还是认同?
  3. C ++标准是否允许未初始化的bool使程序崩溃?
  4. 使用AUTODYN超高速撞击仿真
  5. ASP.NET在Web窗体上输出九九乘法表
  6. 优秀程序员必备的23条好习惯
  7. 《CCNet: Criss-Cross Attention for Semantic Segmentation》--阅读笔记-ICCV2019
  8. ZYNQ的Linux Linaro系统镜像制作SD卡启动
  9. S3C2440移植uboot之支持NAND启动
  10. Python代码破解路由器config.bin从入门到放弃
  11. 86版《西游记》“红孩儿”成中科院博士!名下52家公司不愧是牛魔王的娃
  12. learning scala type alise
  13. 工作流引擎WorkFlow开源项目
  14. 如何将JSONArray转为String数组
  15. 站内信(我的消息)业务在我司的实践
  16. 一个SAPer的网络日志-连载二-说说MM的倒爷们
  17. 【好记性不如烂笔头】记一次奇怪的“找不到符号”问题
  18. 科比自传读后感 --曼巴精神
  19. 赠书活动环节抽签C++程序
  20. 刚从电影院回来,随便写写……

热门文章

  1. MESI缓存协议简述
  2. linux系统查询二进制BIn文件方法
  3. SwiftUI 绘图类精品项目大全之使用 SwiftUI 开发所见即所得的绘图应用程序 (教程含源码)
  4. http如何远程调用html页面,【Web】写个HTML页面去调试HTTP接口方便些
  5. 理解javascript类数组
  6. SQL中的各种连接的区别总结(内连接,左连接,左外连接,右连接,右外连接,全连接,全外连接)
  7. 新手到站长的必经之路(一)
  8. Py-pandas: list/dict转dataframe, 合并,索引,保留有效值
  9. python实现静态变量
  10. OSChina 周一乱弹 ——周日晚上,高跟鞋坏了。