【吴恩达机器学习笔记】十三、异常检测

news2024/11/25 9:31:18

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
💡专栏地址:https://blog.csdn.net/Newin2020/article/details/128125806
📝视频地址:吴恩达机器学习系列课程
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

十三、异常检测

1. 问题动机

在进行训练开始前,我们可以通过一些算法去检测我们的数据集中是否有一些异常的数据,因为可能会因为一些异常的数据而导致我们训练的效果下降。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X1SuKOug-1670287132159)(吴恩达机器学习.assets/image-20211118202115017.png)]

所以,我们会通过一个p(x)模型,对数据集进行检测,我们可以设置一个epsilon阈值,如何数据在p中的值小于这个阈值,我们就可以认为这个数据点是**异常(anomalous)**点。

接下来,介绍一些关于异常检测的应用。

  • 欺诈检测
    • 可以通过获取用户的各个特征来判断其是否为异常用户,可以适用于各个网站。
  • 机械生产
    • 例如可以用于飞机引擎,通过各个特征在p模型中得到的值去判断是否发生故障。
  • 计算机数据管理中心
    • 同样可以通过计算机的各个特征去判断计算机是否异常,从而可以及时停机避免造成意外。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJGaD4Q8-1670287132161)(吴恩达机器学习.assets/image-20211118203024043.png)]

2. 高斯分布

我们来深入了解一下高斯分布(也称正态分布),我们一般会用x来表示高斯分布。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x6nUCtFP-1670287132163)(吴恩达机器学习.assets/image-20211118204733447.png)]

其中我们要知道的是,σ是标准差而σ2则是方差,它决定了曲线中的宽度,而μ则决定了曲线中心的位置,上面的这个公式不要求去记住,在用到的时候随时都可以查到。

下面我们看一些关于高斯分布的例子。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gQ0ZrnQ3-1670287132166)(吴恩达机器学习.assets/image-20211118205016167.png)]

通过观察可以发现,σ越小曲线越窄,σ越大曲线越宽,而μ会改变曲线中心的位置。

最后再来看看如何进行参数估计。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gMgDdTp3-1670287132167)(吴恩达机器学习.assets/image-20211118205622085.png)]

我们可以通过数据集中的x以及上面的式子,计算出μ和σ2从而还原正态分布图像,其中求σ2的式子中1/m在有些版本中可能会是1/(m-1),但效果都差不多,不过通常人们会使用1/m去计算。

3. 算法

这节课,我们来看看异常检测算法的具体步骤。

  • 首先,我们会选择一些能够代表你数据的特征。
  • 然后,用这些训练集特征去拟合参数。
  • 最后,给定新的特征x,带入p中计算与epsilon比大小判断是否异常。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y6ohF6LI-1670287132168)(吴恩达机器学习.assets/image-20211119090328531.png)]

然后,再来看一个例子。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cvpo63iE-1670287132177)(吴恩达机器学习.assets/image-20211119090916024.png)]

可以看到,如果给定两个特征去拟合参数,会得到一个三维的图像,在秃顶内的都是正常,在秃顶外的都是异常。

4. 开发和评估异常监测系统

在进行算法时,如果能返回一些数值来评估好坏这会使我们的选择更加简单。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CaNVuEw1-1670287132179)(吴恩达机器学习.assets/image-20211119093804031.png)]

所以,我们一般会去收集一些带标签的数据,其中包含异常和正常的样本,并且令y=0时为正常,y=1时为异常。然后开始划分训练集、交叉验证集和测试集,下面就是一个例子。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EuDnWiP7-1670287132181)(吴恩达机器学习.assets/image-20211119093957745.png)]

假设你有10000个正常样本和20个异常样本,那么你就可以将6000个正常样本划为训练集,剩下的正常样本和异常样本对半分给交叉验证集和测试集,接下来再来看看算法评估的具体步骤。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gYaR5AJO-1670287132183)(吴恩达机器学习.assets/image-20211119094656953.png)]

我们首先会用上面划分出来的训练集去拟合我们的模型p,然后通过交叉验证集和训练集去预测y的值,观察预测的效果,但是这里y=0的结果会远比y=1的结果多,所以以正确率为判断标准并不合适,故我们会用到之前讲到的真假阳性与真假阴性来计算出准确率和回归率,最终算出F1的值来判断算法的好坏。

这里还有一点要注意的是对于epsilon即阈值的选取,我们可以尝试不同的epsilon来观察F1的值,然后选取F1值最大的那个epsilon作为训练的阈值。

5. 异常检测和监督学习

通过上节课的学习,你可能会想已经有标签的数据集了为什么不直接使用监督学习算法进行训练,那么这节课就来讲讲什么时候用异常检测合适,什么时候用监督学习合适。

  • 异常检测
    • 负样本数量一般会比正样本数量多很多,导致监督学习算法无法从正样本中学习到很多知识,所以无法很好区分正负样本,这时候异常检测会对负样本进行建模,可以更容易检测出正样本情况,例如飞机引擎的例子。
    • 异常的类型一般会比较多样,所以监督学习无法从少有的正样本中了解各种异常的真面目,而且也无法去预测未来新类型的异常会使怎么样的,而异常检测只是检测出异常情况,并不用对异常的类型给出判断,故异常检测在此时就会派上用场。
  • 监督学习
    • 正样本和负样本数量一般都很大,所以监督学习有足够的数据去了解正样本和负样本的真实面目,从而很好的进行正负结果的划分。
    • 一般使用监督学习的情况对于未来出现的新样本类型是已知的,它与训练集里的样本类似,所以可以通过前面训练集中的样本训练出来的模型对新样本进行判断。

而异常检测的典型应用就是之前讲到的欺诈检测、制造领域产品检测、计算机数据管理中心等,监督学习包括垃圾邮件分类、天气预测、癌症预测等应用。

6. 选择要使用的功能

在你使用异常检测时,对于用于算法训练的数据选择,有时候也会影响算法的效果,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pbJ27Aox-1670287132184)(吴恩达机器学习.assets/image-20211119101554944.png)]

有时候你的数据可能会像上方最上面的那个直方图一样,这时候图像接近于一个高斯分布,那么直接用于算法训练并不会造成多大影响,但是如果按照其下面这个不匀称的直方图的话,就需要先进行一次数据处理,例如加入log函数或者平方开方等操作,转化为类似于高斯分布图像,再拿去进行训练。

在进行异常检测时,我们还可能遇到正样本和负样本得出的p(x)都很大的情况,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oFH3vW50-1670287132185)(吴恩达机器学习.assets/image-20211119102443373.png)]

可以看到有时候如果只有一个特征,那么从高斯分布图像来看,异常点可能会夹杂在正常点中间,难以进行区分,这时候你就可以想出一个新的特征加入进去,这样很可能就能将异常点分离出来。

最后,再来介绍一下对于特征选取的一些建议。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KYyOiVlK-1670287132188)(吴恩达机器学习.assets/image-20211119103120604.png)]

有时候你可能发现你的一些特征处于线性关系,例如CPU负载和网络流量,并且这时候某台计算机进入一个死循环无法进行检测,是因为它的CPU负载很高但是网络流量确实正常的,所以就难以进行检测,故这时候就可以设置新的特征,例如将CPU负载与网络流量相除,或者将CPU负载的平方与网络流量相除,就能很好的解决这类问题。

7. 多变量高斯分布的异常检测

有时候,如果我们单独对每个变量进行高斯分布,然后将他们用于异常检测的话,可能有些异常点的p(x)值都不会很低。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AcrXqHuI-1670287132189)(吴恩达机器学习.assets/image-20211119105407859.png)]

从上图可以看出,这时候我们就要引出多变量高斯分布了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TLZateWw-1670287132190)(吴恩达机器学习.assets/image-20211119105506723.png)]

这次,我们分别对特征进行高斯分布,而是对特征整体放入p(x)模型中得到高斯分布,这时候我们的参数sigma就成为了一个对角线矩阵,接下来我们观察一下当参数变化时图像的改变,以两个特征为例。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2FapKIdF-1670287132191)(吴恩达机器学习.assets/image-20211119105827409.png)]

可以发现,当对角矩阵上的值变小时,图像会变得更尖,值变大时,图像会变得更扁。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyq1biC2-1670287132192)(吴恩达机器学习.assets/image-20211119110241503.png)]

如果只改变特征中一个值的话,就只会改变那个特征上的方差大小。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9E0YPMwb-1670287132192)(吴恩达机器学习.assets/image-20211119110450535.png)]

如果改变sigma非对角线上的值的话,它的投影图像就会往y=x直线方向靠近。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ir7CxOz0-1670287132193)(吴恩达机器学习.assets/image-20211119110826658.png)]

如果将sigma非对角线的值改成负数的话,投影图像就会往上个案例的反方向靠近。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xbUXoGFH-1670287132194)(吴恩达机器学习.assets/image-20211119111036054.png)]

当然,你不光可以改变sigma矩阵中的值,也可以改变μ矩阵中的值,这会使分布中心发生偏移。

那么接下来,我们看看如果将多变量高斯分布用于异常检测当中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n32qMARQ-1670287132195)(吴恩达机器学习.assets/image-20211119111657207.png)]

这里参数拟合计算中的sigma与我们之前PCA的主成分分析问题规划用到的是一样的,下面是具体步骤。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cn9LsdFa-1670287132196)(吴恩达机器学习.assets/image-20211119112116991.png)]

我们先用训练集的数据去拟合出参数得到p(x)模型,然后将新样本带入p(x)模型中计算,从而判断是否为异常点。

我们一般会用原始模型较为多一些,接下来我们来看看原始的模型与这个多元的模型有什么区别。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C0A8BNNl-1670287132200)(吴恩达机器学习.assets/image-20211119122400347.png)]

  • 在原始模型中,你可以手动创建特征来捕获某些异常,其中创建的特征是由某些特征组合而成的,而多元高斯分布在这种情况下,会自动获取特征之间的关系。
  • 原始模型在特征数量非常大的情况下,开销也不会特别大并且运行的效果也能不错,而多元高斯分布如果特征数量非常大的话,需要计算其逆矩阵的开销就会非常大。
  • 原始模型允许训练集数据量比较小的情况下进行训练,而多元高斯分布则必须要训练样本数量要大于特征数量才能进行训练,因为如果样本数量少于特征数量的话,上面公式中计算的逆矩阵就会不可逆,一般会要求训练样本数量大于等于特征数量的十倍情况下才可以用多元高斯分布进行训练。

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

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

相关文章

[附源码]计算机毕业设计人事系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Contest2850 - 【在线编程平台】2022年计算机类数据结构作业12.20221201-1206

问题 A: 二叉排序树 - 文本输出 题目描述 给定一个序列,使用该序列生成二叉排序树(也叫二叉搜索树,BST),然后以本题规定方法输出该二叉排序树。 例: 给定一个序列:43 25 29 67 17 88 54 47 35…

用R语言制作交互式图表和地图

可以直接从R / RStudio制作在线交互式图表和地图。 去年,我们为一位客户进行了短暂的咨询工作,他正在构建一个主要基于在线交互式图表的分析应用程序。 配置 启动RStudio,创建一个新的RScript,然后将工作目录设置为下载的数据文…

git merge origin master和git merge master的区别(个人理解)

先说结论 git merge origin master 意思是当前的分支,进行合并,合并二个分支分别是远程分支master在本地的副本和本地分支的master git merge master 当前分支于本地所处的master分支进行合并 还有就是 git merge origin master是把origin merge 到 master 上的说法是错误的…

小侃设计模式(十五)-命令模式

1.概述 命令模式(Command Pattern)是将一个请求封装为一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。它是行为型模式的一种,能够有效降低系统…

【华为上机真题 2022】流水线

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

ES6:ES6 的内置对象扩展

Array 的扩展方法 扩展运算符(展开语法) 扩展运算符可以将数组或者对象转为用逗号分隔的参数序列。 let ary [1, 2, 3];...ary // 1, 2, 3console.log(...ary); // 1 2 3console.log(1, 2, 3)为什么没有逗号,这个是因为被当做console…

毕业设计-机器视觉的疲劳驾驶检测系统-python-opencv

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

买家的诉求决定你的产品卖点

产品卖点的核心是消费者的诉求,也就是消费者为什么对某个产品有需求。 为什么要用广角镜头?可能要拍比较大、比较宏伟的环境。 为什么要用微距?可能要去拍一些细节场景。 …… 很多时候跟客户对不上,是因为不知道客户具体要做…

挨个排列原子!美国科学家打造出全新量子试验台

11月29日,美国科学家建立了一个原子级精度的测试平台,能以全新的方式操纵电子,在量子计算中有着巨大潜力。电子是微观粒子,可以在材料和设备之间携带电量和信息。它们通常可视为离散的小球,在电路中或原子周围移动。虽…

Git下载安装及环境配置,解决安装包下载慢问题(详细版)

Git是我们平时开发都要用到的项目管理工具,虽然有网页版的Git网站,但是在本地安装Git后,可以直接使用命令语句来进行项目的上传与克隆。还是非常方便的。 今天就来介绍下Git的下载。 git下载安装一、下载二、安装git三种操作界面的简介三、设…

不同应用选择荧光染料 -CY7 ALK脂溶性Sulfo-Cyanine7 alkyne 结构式应用

不同应用选择荧光染料-多肽、蛋白、抗体标记、活体成像 荧光标记技术是指运用荧光染料与待研究对象结合,利用它的荧光特性,提供待研究对象相关信息。荧光标记具有操作简便、高稳定性、高灵敏度等优势,使荧光染料在生命科学研究中应用&#xf…

软件测试之对于测试的反思及思考

1.针对一个页面,从页面的完整性(包括字段、输入框、功能点)出发 2.对于分页,考虑未在首页的时候的测试,末页的情况。 3.对条件的查询来说,要针对于单个输入框的测试、交叉输入框的测试 4.对于删除、修改等,要考虑你…

智慧采购管理系统电子招投标优势浅析,助力建筑工程企业高效做好采购管理工作

随着建筑工程行业的蓬勃发展,竞争也日益激烈。在项目执行过程中,从项目前期投标开始,到项目立项、施工过程、竣工结束的整个过程中,采购活动频繁,且采购类型较多,各项采购金额巨大,如何应用电子…

RK3568平台开发系列讲解(音视频篇)如何把音视频流进行网络传输?

🚀返回专栏总目录 文章目录 一、什么是RTP二、RTP 协议详解三、RTCP 协议详解沉淀、分享、成长,让自己和他人都能有所收获!😄 📢如何将码流打包成一个个数据包发送到网络上,那么我们就需要来了解一下 RTP 和 RTCP 协议。 一、什么是RTP 为了保证传输的实时性,一般使…

[附源码]Python计算机毕业设计Django图书馆出版物预订系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]计算机毕业设计基于Springboot影院管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

三款免费的AI绘画网站对比分析,真正好用的居然是它

AI绘画做为人人必装的装机工具。火热之程度就不必要多说了。如果什么是AI绘画,你还不懂的话,只能说自已OUT了。但大家会发现一个很怪的问题。AI绘画清一色没有免费的。连BAT就算有AI绘画产品也不会免费给你用。这是什么原因。 我简单点来讲,…

【100个 Unity实用技能】| 关于触发器互相检测的必要前提条件配置

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…

C语言基础5:操作符详解:算术、移位、赋值、单目、关系、逻辑、条件、逗号表达式、下标引用、表达式求值

文章目录C语言基础5:操作符详解:算术、移位、赋值、单目、关系、逻辑、条件、逗号表达式、下标引用、表达式求值1. 算术操作符2. 移位操作符2.1 左移操作符2.2 右移操作符3. 位操作符3.1 位操作符基本介绍3.2 不使用其他变量,交换int 变量的值…