【机器学习】异常检测

异常检测

假设你是一名飞机涡扇引擎工程师,你在每个引擎出厂之前都需要检测两个指标——启动震动幅度和温度,查看其是否正常。在此之前你已经积累了相当多合格的发动机的出厂检测数据,如下图所示

我们把上述的正常启动的数据集总结为 D a t a S e t : x ( 1 ) , x ( 2 ) , . . . , x ( m ) DataSet:{x^{(1)},x^{(2)},...,x^{(m)}} DataSet:x(1),x(2),...,x(m)
如果一个新的例子 x t e s t x_{test} xtest离点集很远,那可能这个样例是异常的

那么如何衡量“很远”呢?一般我们会有一个函数p(x)负责计算,并且有一个阈值 ϵ \epsilon ϵ,当 p ( x t e s t ) < ϵ p(x_{test})<\epsilon p(xtest)<ϵ的时候,我们认为该样例异常;而当 p ( x t e s t ) ≥ ϵ p(x_{test})\geq\epsilon p(xtest)ϵ的时候,我们认为其是正常的

异常检测的一般应用方面有欺诈检测,比如说检测一个用户的行为(登录频率,打字频率,发帖频率),来判断他是否是一个机器人。另外还可以用于计算机集群管理,通过采集各个计算机的运行数据,来找到异常的计算机,或者发掘未被充分利用的算力。

1.正态分布(高斯分布)

我们一般使用正态分布来实现异常检测,高斯分布一般用 x ∼ N ( μ , σ 2 ) x\sim N(\mu,\sigma^2) xN(μ,σ2)来表示,高斯分布的图像一般如下图所示,线段上的某个点 ( x , y ) (x,y) (x,y)表示的是取值为x的概率为y,其中 μ \mu μ是图像对称中心,而 σ \sigma σ被称为标准差,负责控制高斯分布的宽度, σ \sigma σ越大,曲线越平滑, σ 2 \sigma^2 σ2也称为方差

高斯概率密度公式如下:
p ( x , μ , σ 2 ) = 1 2 π σ e x p ( − ( x , u ) 2 2 σ 2 ) p(x,\mu,\sigma ^2)=\frac{1}{\sqrt[]{2\pi }\sigma }exp\left ( -\frac{(x,u)^2}{2\sigma^2} \right ) p(x,μ,σ2)=2π σ1exp(2σ2(x,u)2)

认识了高斯分布后,假设我们有一个数据集x,它的每个样例中仅有一个特征,那么这些数据集可以直接表示在x轴上,如下图:

那么我们需要做的事情是根据数据集在图上的离散分布,估计出 μ \mu μ σ 2 \sigma^2 σ2值,找到符合该数据集的高斯分布

对于 μ \mu μ的取值,实际上就是找数据中心,一般是找所有点在x轴上的均值,计算方式就是
μ = 1 m ∑ i = 1 m x ( i ) \mu=\frac{1}{m}\sum_{i=1}^{m}x^{(i)} μ=m1i=1mx(i)
而对于 σ 2 \sigma^2 σ2,其实是一个计算点集的方差的过程,也就是整体离中心点的偏移大小,计算方式是 μ = 1 m ∑ i = 1 m ( μ − x ( i ) ) 2 \mu=\frac{1}{m}\sum_{i=1}^{m}(\mu -x^{(i)})^2 μ=m1i=1m(μx(i))2

2.使用高斯分布构建异常检测算法

上述我们说了如果一个实例中只有一个特征,如何建立其高斯分布,那么如果一个实例有n个特征呢?实际上很简单,对于一个有m个实例,每个实例有n个特征的数据集,我们需要对每一个特征都建立一个高斯分布,而每一个高斯分布都有m个数据,共计n个高斯分布。

步骤一:对于一个实例 x x x,选择出若干特征 x i x_i xi,这些特征应该可以反映出实例x是否异常

步骤二:该步骤上文已经提到过,就是对于所有实例的第j个特征 x j x_j xj,都有一个高斯函数 x j N ( μ j , σ j 2 ) x_j~N(\mu_j,\sigma^2_j) xj N(μj,σj2)用于计算该特征下的高斯分布, μ j , σ j 2 \mu_j,\sigma^2_j μj,σj2的计算方式参考上一节

步骤三
对于一个训练集 D a t a S e t : x ( 1 ) , x ( 2 ) , . . . , x ( m ) DataSet:{x^{(1)},x^{(2)},...,x^{(m)}} DataSet:x(1),x(2),...,x(m),每个样本x都拥有若干个特征,对于某个样本 x x x,对它的 p ( x ) p(x) p(x)的计算方法是 p ( x ) = ∏ n j = 1 p ( x j , μ j , σ j 2 ) = p ( x 1 , μ 1 , σ 1 2 ) p ( x 2 , μ 2 , σ 2 2 ) p ( x 3 , μ 3 , σ 3 2 ) . . . p ( x n , μ n , σ n 2 ) p(x)=\prod_{n}^{j=1}p(x_j,\mu_j,\sigma ^2_j) =p(x_1,\mu_1,\sigma ^2_1)p(x_2,\mu_2,\sigma ^2_2)p(x_3,\mu_3,\sigma ^2_3)...p(x_n,\mu_n,\sigma ^2_n) p(x)=nj=1p(xj,μj,σj2)=p(x1,μ1,σ12)p(x2,μ2,σ22)p(x3,μ3,σ32)...p(xn,μn,σn2)

最后我们规定一个阈值 ϵ \epsilon ϵ,当 p ( x ) < ϵ p(x)<\epsilon p(x)<ϵ的时候,我们认为该实例x异常

3.开发和评估异常检测系统

和其他算法一样,我们将训练模型的数据分为训练集,交叉验证集和测试集。假设我们有10000个正常的数据,20个异常的数据,那么我们可以这样子分配:

  • 训练集含有6000个正常数据
  • 交叉验证集含有2000个正常数据,10个异常数据
  • 测试集含有2000个正常数据,10个异常数据

接下来就是使用数据训练 p ( x ) p(x) p(x)函数,并且当 p ( x ) < ϵ p(x)<\epsilon p(x)<ϵ的时候,我们认为该实例x异常,训练的过程在上一小节已经说明了

4.异常检测和无监督学习的区别

对于异常检测,他的应用场景更多的是在异常点相对少的情况下,比如10000台发动机中只有20台需要返修。而无监督学习更多的是正样本和负样本的数据相当。这也是为什么异常检测广泛应用在制造业和数据监控行业,因为其出现异常的概率相对比较低;而在垃圾邮件识别方面,大量的垃圾邮件样例为无监督学习提供了丰富的负样本,因此使用无监督学习更好

另外的一方面是,无监督学习擅长划分若干个点集,比如将发动机划分为正常、喘振、压气机失速等若干种情况,但是如果第二天出现了叶片共振的问题,无监督学习就束手无策了,因为它没见过这种情况。

而异常检测就是简单地粗暴地将正常工作的情况划分出来,只要超出了正常的限界都被认为是异常,因此当叶片共振这种之前未出现的故障出现的时候,异常检测算法会直接认为它是异常,而不会细究其异常的原因,但是这也反而使得它具有了识别一些之前未出现的异常的能力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter常见问题之URI异常

这篇文章介绍一下"http://"重复导致的URI异常问题&#xff0c;通常从浏览器地址栏复制url&#xff0c;直接粘贴到Jmeter的http请求的服务器地址中会默认带上“http://”&#xff0c;要将http://删除&#xff0c;只写IP地址&#xff0c;如下图&#xff1a; 否则&…

项目开启启动命令整合

启动RabbitMQ管理插件 1.启动 RabbitMQ 管理插件。 rabbitmq-plugins enable rabbitmq_management rabbitmq-server # 直接启动&#xff0c;如果关闭窗⼝或需要在该窗⼝使⽤其他命令时应⽤就会停⽌ rabbitmq-server -detached # 后台启动 rabbitmq-server start # 启⽤服务 rab…

16.喝水

喝水 html部分 <h1>Goal: 2 Liters</h1> <div class"cup cupbig"><div class"remained"><span id"liters">2L</span><small>Remained</small></div><div class"percentage&quo…

PHY芯片的使用(三)在linux下网络PHY的移植

1 前言 配置设备树请参考上一章。此次说明还是以裕太的YT8511芯片为例。 2 需要配置的文件及路径 a. 在 .. /drivers/net/phy 目录下添加 yt_phy.c 文件&#xff08;一般来说该驱动文件由厂家提供&#xff09;&#xff1b; b. 修改.. /drivers/net/phy 目录下的 Kconfig 文…

win10电脑便签常驻桌面怎么设置?

你是否曾经因为繁忙的工作而忘记了一些重要的事项&#xff1f;相信很多人都会回答&#xff1a;忘记过&#xff01;其实在快节奏的职场中&#xff0c;我们经常需要记录一些重要的信息&#xff0c;例如会议时间、约见客户时间、今天需要完成的工作任务等。而为了能够方便地记录和…

nodejs+vue+elementui学习交流和学习笔记分享系统

Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进…

Spring Cloud Alibaba 集成 Skywalking 链路追踪

Spring Cloud Alibaba 集成 Skywalking 链路追踪 简介 skywalking 是一个国产开源框架&#xff0c;2015 年由吴晟开源 &#xff0c; 2017 年加入 Apache 孵化器。skywalking 是分布式系统的应用程序性能监视工具&#xff0c;专为微服务、云原生架构和基于容器&#xff08;Doc…

redis中使用bloomfilter的白名单功能解决缓存预热问题

一 缓存预热 1.1 缓存预热 将需要的数据提前缓存到缓存redis中&#xff0c;可以在服务启动时候&#xff0c;或者在使用前一天完成数据的同步等操作。保证后续能够正常使用。 1.2 解决办法PostConstruct注解初始化

【复习16-18天】【我们一起60天准备考研算法面试(大全)-第二十四天 24/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

【MATLAB】GM(1,1) 灰色预测模型及算法

一、灰色预测模型概念 灰色预测是一种对含有不确定因素的系统进行预测的方法。 灰色预测通过鉴别系统因素之间发展趋势的相异程度&#xff0c;即进行关联分析&#xff0c;并对原始数据进行生成处理来寻找系统变动的规律&#xff0c;生成有较强规律性的数据序列&#xff0c;然后…

Python TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘

在键入数值进行相加运算时&#xff0c;报了这样一个错误 类型错误&#xff1a;不支持操作类型为整数和字符串 错误分析&#xff1a;sumsuminput() 未被系统识别&#xff0c;导致程序错误 解决方法&#xff1a;给键入的数值定义&#xff0c;声明为整数 sumsumint(input()) 即…

【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)

Fang P, Gao P, Liu C, et al. Back-Propagating System Dependency Impact for Attack Investigation[C]//31st USENIX Security Symposium (USENIX Security 22). 2022: 2461-2478. 攻击调查、关键边、入口点 开源&#xff1a;GitHub - usenixsub/DepImpact 目录 1. 摘要2. 引…

前端学习——ajax (Day3)

AJAX原理 - XMLHttpRequest 使用 XMLHttpRequest <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&…

消息队列(一)-- RabbitMQ入门(1)

初识 RabbitMQ 核心思想&#xff1a;接收并转发消息。可以把它想象成一个邮局。 producer&#xff1a;生产者 queue&#xff1a;队列 consumer&#xff1a;消费者什么是消息队列 MQ&#xff08;Message Queue&#xff09;&#xff1a;本质是队列&#xff0c;FIFO先入先出&…

【【直流电机驱动PWN】】

直流电机驱动PWN 前面都是沙县小吃&#xff0c;这里才是满汉全席 直流电机是一种电能转化成机械能的装置 直流电机有两个电极 当电机正接 电机正转 当电机负接 电机倒转 电机还有步进电机 舵机 无刷电机 空心杯电机 因为电机是一个大功率器件并不太好直接接在IO端口上所以我…

脑电信号处理与特征提取——1. 脑电、诱发电位和事件相关电位(胡理)

目录 一、 脑电、诱发电位和事件相关电位 1.1 EEG基本知识 1.2 经典的ERPs成分及研究 1.2.1 ERPs命名规则及分类 1.2.2 常见的脑电成分 1.2.3 P300及Oddball范式 1.2.4 N400成分 一、 脑电、诱发电位和事件相关电位 1.1 EEG基本知识 EEG(Electroencephalogram)&#x…

【Mysql数据库面试01】内连接 左连接 右连接 全连接

【Mysql数据库】内连接 左连接 右连接 全连接 0.准备1.内连接1.1 SQL(不带where)1.2 SQL&#xff08;带where&#xff09;1.3总结 2.左连接2.1SQL&#xff08;不带where&#xff09;2.2SQL&#xff08;带where&#xff09;2.3总结 3.右连接3.1 SQL&#xff08;不带where&#x…

表单验证:输入的字符串以回车分隔并验证是否有

公司项目开发时&#xff0c;有一个需求&#xff0c;需要对输入的字符串按回车分隔并验证是否有重复项&#xff0c;效果如下&#xff1a; 表单代码&#xff1a; <el-form-item label"IP地址条目&#xff1a;" prop"ipAddressEntry"><el-inputtype&…

Vue中TodoList案例_静态

MyHeader.vue <template><div class"todo-header"><input type"text" placeholder"请输入你的任务名称&#xff0c;按回车键确认"></div> </template><script> export default {name: "MyHeader"…

生产环境Session解决方案、Session服务器之Redis

目录 一、服务器配置 二、安装nginx 三、安装配置Tomcat&#xff1a; 四、配置session Session服务器之Redis Redis与Memcached的区别 安装部署redis 一、服务器配置 IP地址 主机名 软件包列表 192.168.100.131 huyang1 nginx 192.168.100.133 huyang3 JDK Tomca…