机器学习笔记-18

异常检测问题

异常检测虽然主要用于无监督学习问题上,但是和监督学习问题很相似。

异常检测(Anomaly Detection):给定正确样本集{ x ( 1 ) , x ( 2 ) . . . x ( n ) x^{(1)},x^{(2)}...x^{(n)} x(1),x(2)...x(n)},记新样本即要检测的样本为 x t e s t x_{test} xtest。对x进行建模即画出x的概率分布图像p(x),将 x t e s t x_{test} xtest代入 p ( x t e s t ) p(x_{test}) p(xtest),给定阈值 ε \varepsilon ε,如果 p ( x t e s t ) < ε p(x_{test})<\varepsilon p(xtest)<ε则代表着 x t e s t x_{test} xtest在原本样本集中出现的概率很小,标记为异常。如果 p ( x t e s t ) ≥ ε p(x_{test})\ge\varepsilon p(xtest)ε,标记为正常。

在APP中,异常检测通常用于做欺诈检测:通过对正常用户的建模寻找可能存在的非法用户、异常用户进行处理。

在工业上异常检测通常用于检测产品的质量,对符合标准的产品进行建模,对新生产好的产品进行检测查看是否需要进一步测试。

1. 高斯分布

高斯分布也就是正态分布。
参数估计:参数估计就是给定一个数据集估算出 μ 和 σ 2 \mu 和\sigma^2 μσ2的值。

μ = 1 m ∑ i = 1 m x ( i ) \mu =\frac{1}{m}\sum_{i=1}^{m}x^{(i)} μ=m1i=1mx(i)
σ 2 = 1 m ∑ i = 1 m ( x ( i ) − μ ) 2 \sigma ^2=\frac{1}{m}\sum_{i=1}^{m}(x^{(i)}-\mu )^2 σ2=m1i=1m(x(i)μ)2

通俗来讲 μ \mu μ就是均值, σ 2 \sigma^2 σ2就是方差

2. 用高斯分布推导异常检测算法

在这里插入图片描述
首先选择一些对出现异常问题时反应较大的特征,给出训练集{ x ( 1 ) , x ( 2 ) . . . x ( n ) x^{(1)},x^{(2)}...x^{(n)} x(1),x(2)...x(n)}求出对应的{ μ ( 1 ) , μ ( 2 ) . . . μ ( n ) \mu_{(1)},\mu_{(2)}...\mu_{(n)} μ(1),μ(2)...μ(n)}和{ σ ( 1 ) 2 , σ ( 2 ) 2 . . . σ ( n ) 2 \sigma^2_{(1)},\sigma^2_{(2)}...\sigma^2_{(n)} σ(1)2,σ(2)2...σ(n)2}。将新样本代入求出的正态分布函数中求概率, 如果小于阈值 ε \varepsilon ε就标注为异常。

这里的 x j x_j xj是指 x x x这个新样本在各个方向上的投影值,或者说是 x x x这个特征向量中的各个特征的值。

3. 评估异常检测算法

前面有说过对于算法来讲,我们进行评估的时候往往需要判断很多事情才能得出算法的优劣,所以使用数字指标会方便很多。对于异常检测算法我们同样使用数字指标去评估算法的好坏,具体如下:

将正常样本赋值y=1,异常样本赋值y=0。一共选取10000+40个样本,其中10000个样本是正常的,40个样本是异常的。将10000个样本按照6:2:2的比例分为训练集、验证集和测试集,40个样本按照1:1的比例放导验证集和测试集中。至此训练集中包含6000个正常样本,验证集中包含2000个正常样本和20个异常样本,测试集中包含2000个正常样本和20个异常样本。

虽然给正常样本异常样本赋值y但是这本质上还是无监督问题不是监督问题。

用训练集中的6000个正常样本进行异常检测算法求出 μ 、 σ 2 \mu、\sigma^2 μσ2后,得到p(x)。求出验证集和测试集中的样本的p(x)判断y值并与真正结果相比较,计算查准率和召回率得出F值,判断异常检测算法的好坏。
在这里插入图片描述
也可以使用之前的模型选择方法定义阈值 ε \varepsilon ε,求出p(x)后使用不同的 ε \varepsilon ε在验证集上进行检验,选取F值最高的 ε \varepsilon ε在测试集上进行检验。

4. 异常检测算法和监督学习算法的取舍

相信会有一些人觉得上面的异常检测算法很像监督学习的方法,也会疑惑为什么不直接用监督学习的算法进行异常检测,现在对二者进行取舍:
在这里插入图片描述
当出现👆偏斜类问题时,选择异常检测算法。
在这里插入图片描述
当出现异常有很多类型而且未来可能出现没出现过的异常时,选择异常检测算法。
二者实际应用对比:
在这里插入图片描述
5. 如何选择异常检测算法的特征

通常使用误差分析确定一场算法的特征,和之前监督学习算法的误差分析很像。

先完整的训练出一个算法,在一组验证集上运行算法,找出预测出错的样本提取共同特征改善算法。
特征矫正(非官方叫法):当我们选取完特征后,在选取样本时最好查看他的图像是否能够满足正太分布。
输入一个特征 x x x的一组值,画出图像(octave中hist函数),如果图像和正态分布很像就不用调整,如果不像就调整一下使其像正态分布。

调整手段:取对数等数学变形。

如:初始图象如下图的集合
在这里插入图片描述
经过①处理后变成了下图
在这里插入图片描述
经过②处理后变成了下图

在这里插入图片描述

在这里插入图片描述
6. 多元高斯分布
多元高斯分布和高斯分布的不同是多元高斯分布并不分别对每个特征进行高斯建模,而是一次性将所有特征值建模成一个高斯函数。
在这里插入图片描述
Σ \Sigma Σ就是PCA中的协方差矩阵。

det(A) %求矩阵A的行列式的octave代码

在这里插入图片描述
👆是多元高斯分布的表达式,接下来会用多元高斯分布构建异常检测算法。
在这里插入图片描述
👆参数估计。
在这里插入图片描述
👆将新的样本代入p(x)进行检验,如果小于阈值就标注异常。

实际上,最开始的模型在这里插入图片描述
就是当 Σ \Sigma Σ矩阵主对角线是方差、非主对角线元素都是0时的多元高斯分布模型。

那么如何在两个模型之间选择呢?
在这里插入图片描述

原始模型被使用的更多一些,但多元高斯模型在捕捉不同特征之间关系方面更加灵活。如果想要使用原始模型去对特征之间的关系进行综合比较需要创建一个新特征如两个原本特征的比值等等,但是多元高斯模型可以自动捕捉这些关系;原始模型的计算成本较低,能够使用大规模运算,多元高斯模型的运算代价就比较大,当数据量较大时可能成本会很高;对于训练集较小的情况下原始模型也可以很好的运行,但是多元高斯模型需要样本数量>特征数量才可以,不然 Σ \Sigma Σ不可逆不能运行。

吴恩达老师的选择方法:
当样本数量 ≥ \ge 特征数量的十倍时,选用多元高斯模型;其余选用原始模型。

Σ \Sigma Σ不可逆时,一方面是样本数量小于特征数量,再就是特征线性相关(即存在冗余特征)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NIO(非阻塞I/O)和IO(阻塞I/O)详解

文章目录 一、NIO&#xff08;Non-blocking I/O&#xff0c;非阻塞I/O&#xff09;1、Channel&#xff08;通道&#xff09;与Buffer&#xff08;缓冲区&#xff09;1.1、使用ByteBuffer读取文件1.2、ByteBuffer 方法1.2、ByteBuffer 结构1.3、字符串与 ByteBuffer 互转1.4 Sca…

代码随想录算法训练营DAY48|C++动态规划Part9|121.买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III

文章目录 121.买卖股票的最佳时机思路CPP代码 122.买卖股票的最佳时机II思路CPP代码 123.买卖股票的最佳时机III思路CPP代码 121.买卖股票的最佳时机 力扣题目链接 文章讲解&#xff1a;121.买卖股票的最佳时机 视频讲解&#xff1a;动态规划之 LeetCode&#xff1a;121.买卖股…

BJFUOJ-C++程序设计-实验3-继承和虚函数

A TableTennisPlayer 答案&#xff1a; #include<iostream> #include<cstring> using namespace std;class TableTennisPlayer{ private:string firstname;string lastname;bool hasTable;public:TableTennisPlayer(const string &, const string &, bool…

jupyter notebook使用与本地位置设置

本地安装好Anaconda之后&#xff0c;自带的有Jupter notebook。 使用jupyter notebook 使用jupyter notebook时&#xff0c;可以直接打开或者搜索打开&#xff1a; 打开后&#xff0c;我们生成的或者编辑的一些文件&#xff0c;都可以看到&#xff0c;如下&#xff1a; j…

HTML标签大全

本文是用于解释文章中使用的标签&#xff0c;方便萌新理解标签结构&#xff0c;也方便大佬忘了过来查一下~ 本文根据博客教学进度实时更新&#xff0c;可以收藏一下~ 文章目录 第二篇1.template2.div3. button 第三篇4.ul5.li 第二篇 第二篇链接 1.template <template&g…

计算机408备考-数据结构重要知识点-数据结构的定义

请关注一下B站账号&#xff1a;谭同学很nice&#xff01;后期更新发布在这个账号上。。【计算机408备考-数据结构重要知识点-数据结构的定义-哔哩哔哩】https://b23.tv/x7shjNf 数据是信息的载体。数据元素是数据的基本单位。一个数据元素可由若干数据项组成&#xff0c;数据项…

利用大语言模型(KIMI)构建控制信息模型

数字化的核心是数字化建模&#xff0c;为一个事物构建数字模型是一项十分复杂的工作。不同的应用场景&#xff0c;对事物的关注重点的不同的。例如&#xff0c;对于一个智能传感器而言&#xff0c;从商业的角度看&#xff0c;产品的信息模型中应该包括产品的类型&#xff0c;名…

ESD管 AZ5825-01F国产替代型号ESDA05CPX

已经有很多客户选用雷卯的ESDA05CPX替代Amazing 的 AZ5825-01F&#xff0c; 客户可以获得更好的价格和更快的交期&#xff0c;主要应用于对5V供电和4.5V供电电流较大的Vbus线路插拔保护等。 雷卯ESDA05CPX优势&#xff1a; 带回扫 &#xff0c;钳位电压Vc 低&#xff0c;IPP为…

逻辑漏洞:水平越权、垂直越权靶场练习

目录 1、身份认证失效漏洞实战 2、YXCMS检测数据比对弱&#xff08;水平越权&#xff09; 3、MINICMS权限操作无验证&#xff08;垂直越权&#xff09; 1、身份认证失效漏洞实战 上一篇学习了水平越权和垂直越权的相关基本知识&#xff0c;在本篇还是继续学习&#xff0c;这…

利用亚马逊云科技GenAI企业助手Amazon Q Business构建企业代码开发知识库

2024年五一节假日的前一天&#xff0c;亚马逊云科技正式重磅发布了云计算行业期待已久的服务——Amazon Q Business。Amazon Q Business是专为企业用户打造的一个开箱即用的完善而强大企业GenAI助手。企业用户只需要将Amazon Q Business连接到现有的企业内部数据源&#xff0c;…

整合文本和知识图谱嵌入提升RAG的性能

我们以前的文章中介绍过将知识图谱与RAG结合的示例&#xff0c;在本篇文章中我们将文本和知识图谱结合&#xff0c;来提升我们RAG的性能 文本嵌入的RAG 文本嵌入是单词或短语的数字表示&#xff0c;可以有效地捕捉它们的含义和上下文。可以将它们视为单词的唯一标识符——捕获…

文件传送协议

壹、文件传输协议FTP 一、FTP简介 文件传送协议FTP曾是互联网上使用最广泛的协议&#xff1b; 在互联网发展的早期阶段&#xff0c;用FTP传送文件约占整个互联网的通信量的三分之一&#xff1b;知道1995年&#xff0c;www的通信量才首次超过FTP。 FTP实现的是通过网络实现异…

EasyRecovery2024汉化版电脑数据恢复软件下载

EasyRecovery是一款功能强大的数据恢复软件&#xff0c;其主要功能包括但不限于以下几点&#xff1a; 硬盘数据恢复&#xff1a;能够扫描本地计算机中的所有卷&#xff0c;建立丢失和被删除文件的目录树&#xff0c;实现硬盘格式化、重新分区、误删数据、重建RAID等硬盘数据恢…

基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络&#xff08;CNN&#xff09;在时间序列中的应用 4.2 长短时记忆网络&#xff08;LSTM&#xff09;处理序列依赖关系 4.3 注意力机制&#xff08;Attention&#xff09; 4…

细说SVPWM原理及软件实现原理,关联PWM实现

细说SVPWM原理及软件实现原理&#xff0c;关联PWM实现 文章目录 细说SVPWM原理及软件实现原理&#xff0c;关联PWM实现1. 前言2. 基础控制原理回顾2.1 FOC 原理回顾2.2 细说 SVPWM2.2.1 矢量扇区计算2.2.2 矢量作用时间计算 2.2.3 如何理解 U4 U6 2/3Udc?2.2.4 如何理解 U4m…

Linux系统编程--信号与管道

1、信号与管道是什么&#xff1f; 首先了解信号与管道的意义&#xff0c;我们需要了解Linux系统中进程之间是如何通信的。Linux操作系统下&#xff0c;以进程为单位来分配或者管理资源&#xff0c;进程之间不能直接访问资源&#xff0c;因此&#xff0c;要求进程间的资源和信息…

上位机图像处理和嵌入式模块部署(树莓派4b与消息分发)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 和多线程相比较&#xff0c;多进程最大的好处就是安全。一个进程挂了&#xff0c;不影响其他进程的运行。但是多线程也有自己的优点&#xff0c;那…

Ex1-C6油气化工防爆轮式巡检机器人

Ex1系列防爆轮式巡检机器人整机采用防爆设计&#xff0c;防爆等级为Exd II CT4 Gb。机器人通过无轨3D形态导航技术&#xff0c;结合360度防爆云台和无线防爆充电桩&#xff0c;实现整套防爆标准&#xff0c;可广泛应用于石油、燃气、化工、冶金等II类爆炸环境中&#xff0c;代替…

程序员缓解工作压力——方法分享

前言 作为一名初级程序员&#xff0c;我承认自己在应对工作压力方面还有待提高。在日常工作中&#xff0c;我时常感到压力山大&#xff0c;尤其是在面对复杂问题或紧迫的项目期限时。然而&#xff0c;为了保持高效和持久的工作热情&#xff0c;我还是积极寻求并使用了一…

Python 贪吃蛇

文章目录 效果图&#xff1a;项目目录结构main.pygame/apple.pygame/base.pygame/snake.pyconstant.py 效果图&#xff1a; 项目目录结构 main.py from snake.game.apple import Apple # 导入苹果类 from snake.game.base import * # 导入游戏基类 from snake.game.snake im…