“异常检测系统”常常应用于制造业中,同时对于生活在互联网时代的我们而言,异常检测同样发挥着巨大的作用,例如进行异常用户检测,防止网络诈骗等行为等。
一个成熟的异常检测系统能够基于输入的属性值对“产品”进行性质判断,为后期进行更进一步的处理提供参考。那么如何构建异常检测系统呢?将对基本异常检测系统进行介绍。
本篇文章没有涉及太多数学理论,但一点必要的统计理论是必要的(太晦涩的知识,笔者也不懂的hh)

目录

  • 1 异常检测系统的实现原理
    • 基于Gaussion Distribution的异常检测模型
  • 2 具体实现步骤
  • 3 小节

1 异常检测系统的实现原理

异常检测系统的实现原理,用“人听得懂的话”说出来其实非常地直观:当已经提前知道什么是无异常状态时,面对新的样本时通过状态的对比,如果有较大的偏差则认为有异常,否则为无异常。

那么难点在于:如何确定无异常状态?
这里自然就要用到机器学习了,通过大量的无异常样本总结出特征与期望,如此划定了一个“无异常范围”就能够轻松地进行判断了。具体实现特征总结的方法有很多,本篇文章介绍一种最为基本的方法:Gaussion Distribution高斯分布法。

基于Gaussion Distribution的异常检测模型

对数理统计有一定了解的同学一定都十分了解高斯分布了,高斯分布还有另一个更常用的名称:正态分布,二维图像呈现出一个……咳咳形状是吧,也是典型的径向基函数。有了高斯分布我们就可以进行异常检测模型的设计了。这里先明确各符号的意义:

x∈Rn:样本集,属性数量nx \in \R^n:样本集,属性数量nx∈Rn:样本集,属性数量n
m:样本数量m:样本数量m:样本数量
x(i):第i个样本x^{(i)}:第i个样本x(i):第i个样本
xj(i):第i个样本的第j个属性值x^{(i)}_j:第i个样本的第j个属性值xj(i)​:第i个样本的第j个属性值

基于高斯分布的模型即有假设:各样本属性都分布服从高斯分布,如xjx_jxj​服从N(μj,σj2)N~(\mu_j,\sigma_j^2)N (μj​,σj2​),其他依次类推。如由两个属性定义的高斯分布所示:

明确了以上的概念,接下来就可以从样本集中计算出各属性分布的μ\muμ以及σ\sigmaσ的值,计算方法即为数理统计中的“由样本估计参数”:
μj=1m∑imxj(i)\mu_j=\frac{1}{m}\sum_i^mx_j^{(i)}μj​=m1​i∑m​xj(i)​,
σj2=1m∑(xj(i)−μj)2\sigma_j^2=\frac{1}{m}\sum(x_j^{(i)}-\mu_j)^2σj2​=m1​∑(xj(i)​−μj​)2
(这里可能大家有一点疑问:我们学过的无偏估计除的是m-1,这里是m,实际上在真实开发中,由于样本量很大,这个差别会很小,所以用m也是可以的)
得到:pj(xj(i))=12πσexp(−(xj(i)−μj)22σ2)p_j(x^{(i)}_j)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x^{(i)}_j-\mu_j)^2}{2\sigma^2})pj​(xj(i)​)=2π​σ1​exp(−2σ2(xj(i)​−μj​)2​)
计算完分布后我们需要一个统一的“分值”来判断是否在预期内,则定义:
P(x(i))=Πjnpj(xj(i))P(x^{(i)})=\Pi^n_jp_j(x^{(i)}_j)P(x(i))=Πjn​pj​(xj(i)​)
作为评价标准,即:
ifP(x(i))<κ,then→x∈AnomalyifP(x^{(i)})<\kappa, then\rightarrow x \in Anomaly ifP(x(i))<κ,then→x∈Anomaly
而对于κ\kappaκ值的选择稍后进行讲解。以上即为异常监测系统的原理部分,更加深入的内容,请各位自行进行检索。

2 具体实现步骤

  • 数据集
    最开始,也是最为重要的步骤之一,收集数据。对于不同的任务,数据收集方式不同,假设有一个“计算机是否处于异常状态”的项目,那么需要收集的数据则可能是:机器工作温度,机器内存使用状况,机器效率,机器是否异常等。根据需求进行收集。需要注意的是,数据收集时很可能出现的状况是:大部分样本都处于正常状态,只有少数处于异常状态。这是一个样本不均衡问题,但对于异常检测系统而言这样的数据是合理的,具体稍后进行解释。

  • 选择模型并计算得到模型的参数
    上一小节中还有一个遗留的小问题,如何选择κ\kappaκ,这对与机器学习而言不是很大的问题,可以采用试错的方式进行甄别:即代入多个值选择效果最好的模型参数即可。如何评价效果好坏?请继续看下去.

  • 划分数据集
    这里可以部分解释为什么样本不均衡对于异常检测系统是需要的:由于在训练模型时我们需要得到的是正常样本的特征,因此train set的样本是正常样本或者是无标签,假设为正常的样本。而对于样本数据集的划分,强烈推荐划分为train_set(60%), validation_set(20%), test_set(20%),各数据集的功能在这里我不过多介绍,如果有疑问大家可以留言或者去搜索其他的文章进行解答。其实在日常的使用中,可以看到一些人在进行数据集划分操作时经常出现不正规的处理,如validation_set与test_set是同样本,这样其是test_set就很难起到其作用了。还需要注意的是,在validation_set以及test_set中要保留一部分Anomaly的样本,用于判断模型的准确程度。

  • 选择评价标准
    如何选择一个快速直观的评价标准,对于提升模型构建的效率是至关重要的。需要注意的是,由于样本集本身的不均衡,我们不能简单地选择准确率作为模型的评价标准,推荐选择一下的评价标准:

    其中第二项为P:查准率,R:查全率;F_1 score为P,R调和平均值,兼顾了查全与查准。

  • 模型择优
    有了以上的评价标准,则可以开始进行模型的评价与择优,选择不同的κ\kappaκ值,得到不同模型的评价指标,选择最优模型作为最终输出即可。

  • 可以使用啦!

3 小节

以上即为本篇文章的全部内容,希望有帮到各位一点。如有不足的地方,各位可以在评论中指出,感谢各位。
仔细想想,其实异常检测系统已经在我们日常的生活中发挥了很大作用,且还有很大的可拓展空间。

转载请注明出处,感谢!

Anomaly detection system——异常检测系统简介与设计相关推荐

  1. 人工智能-机器学习:Anomaly Detection(异常检测)

    一.什么是 Anomaly(异常) Anomaly Detection,也叫做 异常检测,目的在于让机器知道我所不知道的事情. 虽然说是 异常,但其实是以训练集为核心,判断输入数据是否与训练集中的数据 ...

  2. 基于实时计算(Flink)与高斯模型构建实时异常检测系统

    案例与解决方案汇总页: 阿里云实时计算产品案例&解决方案汇总 1. 概述 异常检测(anomaly detection)指的是对不符合预期模式或数据集(英语:dataset)中其他项目的项目. ...

  3. KPI自动化异常检测系统——Opprentice

    论文:Opprentice: Towards Practical and Automatic Anomaly Detection Through Machine Learning 文章目录 问题 设计 ...

  4. 如何开发一个异常检测系统:如何评价一个异常检测算法

    利用数值来评价一个异常检测算法的重要性 使用实数评价法很重要,当你用某个算法来开发一个具体的机器学习应用时,你常常需要做出很多决定,如选择什么样的特征等等,如果你能找到如何来评价算法,直接返回一个实数 ...

  5. 如何开发一个异常检测系统:异常检测 vs 监督学习

    异常检测算法先是将一些正常的样本做为无标签样本来学习模型p(x),即评估参数,然后用学习到的模型在交叉验证集上通过F1值来选择表现最好的ε的值,然后在测试集上进行算法的评估.这儿用到了带有标签的数据, ...

  6. 毕业设计-基于深度学习的网络流量异常检测系统

    目录 前言 课题背景和意义 实现技术思路 一.相关技术与理论介绍 二.基于深度学习的网络流量二分类模型 三.网络流量异常检测系统 实现效果图样例 最后 前言

  7. linux arm关闭光栅,基于Linux的光栅检测系统的软件设计与实现.pdf

    基于Linux的光栅检测系统的软件设计与实现.pdf - - - - - - - - - - 一 竣 应 ((_- 基 于 Linux 系 统 的 软 件 设 计 与 实 现 东北大学信息科学与工程学 ...

  8. 智能水位检测系统proteus_基于单片机控制的智能检测系统Proteus仿真设计研究

    0引言近年来,单片机发展到了一个全新阶段,广泛应用于电子.机械控制.自动化生产设计等行业,并逐步延伸到智能控制的诸多领域.以单片机为控制核心的小型自动化生产检测系统,尤其在一些液体产品的检测等复杂工程 ...

  9. 基于51单片机的智能停车场管理车位引导检测系统Proteus仿真设计DIY开发板套件

    单片机毕业设计/电子设计大赛/大学生创新项目 本系统由STC89C52单片机.红外对管传感器.LCD1602液晶显示.LED指示灯及电源组成 1.红外对管模块实时检测车位是否占用,车位分为1车位,2车 ...

最新文章

  1. thinkpad重装系统不引导_重装系统时,如何判断Windows的启动方式是Legacy还是UEFI?...
  2. Django基础-数据分页
  3. 注意力机制YYDS,AI编辑人脸终于告别P一处而毁全图
  4. 产品技术(研发)部门组织架构及岗位职责
  5. VS2012编译PCL1.70的过程
  6. MTV: Django眼中的MVC
  7. java简单小项目_Java简易抽奖系统小项目
  8. Android 8.0 学习(14)---Android8.0适配分析
  9. android studio打测试包,AndroidStudio1.5上进行单元测试(简单)
  10. file js new 传到后台_JS读取文件且AJAX传输到后台
  11. 2021靠谱的IT培训机构排名重磅来袭!
  12. 两阶段最小二乘法TSLS案例分析
  13. oracle现金流量表逻辑,现金流量表之附表逻辑分析
  14. 如何下载微信视频号里的完整视频?
  15. 敲7数字100以内c语言,敲七游戏数字表怎么玩?
  16. KTV 歌房如何实现伴奏与人声同步功能
  17. 绍兴一中信心赛 T1排列
  18. java 操作 word 表格和样式_java 处理word文档 (含图片,表格内容)
  19. 系统设计与分析课程项目个人小结
  20. indexof java 用法_java中indexof的用法

热门文章

  1. 美国 CS 就业,大多数公司真的不看学校吗?
  2. CSS中背景图定位方法
  3. 测试阿萨大大十大风格和
  4. ZYJ7道岔控制电路图【铁路信号技术专栏】--转自微信公众号铁路信号技术交流
  5. window下使用CMUSphinx实现中文识别
  6. 打开金蝶旗舰版图标提示:类型不匹配
  7. RK3568平台入门到精通系列讲解之KERNEL开发篇(MIPI 双摄像头添加)
  8. WordPress-WooCommerce购物商城主题
  9. Hostbuddy是什么软件?hosts编辑器Hostbuddy for Mac
  10. react-ga组件的简单应用笔记