【机器学习300问】39、高斯分布模型如何实现异常检测?

news2024/11/24 0:39:32

一、异常检测是什么?

(1)举几个例子

        ① 信用卡交易异常检测

        在信用卡交易数据分析中,如果某个用户的消费习惯通常是小额且本地化消费,那么突然出现一笔大额且跨国的交易就可能被标记为异常。

        ② 电机温度异常检测

        在电机运行数据分析中,如果一台电机的历史温度数据显示其在正常负载和冷却条件下通常保持在一个稳定的中低温区间,那么突然出现一次大幅度升温或高温持续不退的现象,会被标记为潜在的异常情况,可能预示着电机存在过载、散热不良或其他机械故障的风险。 

(2)异常检测的定义

        异常检测指的是识别并标记那些显著偏离常规模式或预期行为的数据点的过程。它关注的是找出与大多数数据显著不同的个体或事件。异常检测通常应用于安全监控、故障预测、信用欺诈检测等诸多场景中,它的目标不是划分数据,而是找出潜在的异常现象。

异常检测
异常检测

二、高斯分布的基本知识

(1)高斯分布是什么?

        高斯分布(Gaussian distribution),也称为正态分布(Normal distribution),是一种连续概率分布,高斯分布的图形是对称的,关于均值μ对称,当μ=0且σ=1时,分布被称为标准正态分布。如果我们有一组数x_1, x_2, \dots, x_n

高斯分布曲线图
  • 均值(\mu:高斯分布的中心点,也是数据集的平均值,所有观测值围绕此点集中分布。

\mu = \frac{1}{n}\sum_{i=1}^{n}x_i

  • 标准差(\sigma:衡量数据相对于均值分散的程度。

\sigma = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i - \mu)^2}

  • 方差(\sigma ^2:是各个数据点与它们的平均数(均值)差的平方的平均数。

\sigma ^2 = \frac{1}{n}\sum_{i=1}^{n}(x_i - \mu)^2

        高斯分布的重要性质在于它在自然界和社会科学中的普遍适用性,很多随机过程在一定条件下都会趋向于高斯分布,这被称为中心极限定理。

【注】机器学习中方差通常除以n而非统计学中的n-1。在实际使用中区别很小,几乎可以忽略不计。在机器学习领域大部分人更习惯使用n-1。

(2)它的概率密度函数长什么样?

        高斯分布的概率密度函数是一个关于变量x的函数公式为:

p(x|\mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}

其中x是随机变量,\mu是期望值(均值)\sigma ^2是方差,\sigma是标准差。

(3)什么是多维高斯分布?

        多维高斯分布(Multivariate Gaussian Distribution),也称为多元正态分布或多变量正态分布,是一种在多维空间中的概率分布模型,它扩展了一维正态分布的概念到多个变量的情况。在多维空间中,每个观察数据点都是一个向量而不是单个数值。概率密度函数(Probability Density Function, PDF)公式如下:

p(\mathbf{x}; \boldsymbol{\mu}, \mathbf{\Sigma}) = \frac{1}{\sqrt{(2\pi)^d |\mathbf{\Sigma}|}} \exp\left(-\frac{1}{2}(\mathbf{x} - \boldsymbol{\mu})^\top \mathbf{\Sigma}^{-1} (\mathbf{x} - \boldsymbol{\mu})\right)

        假设我们正在研究一所大学新生入学考试成绩的数据,其中包括了数学(Math)和英语(English)两门科目的成绩。我们可以假设这些成绩整体上服从多维高斯分布。如果新录取的一名学生的成绩向量为X_{new}=[x_m,x_e],我们可以通过多维高斯分布计算出这个成绩向量的概率密度函数值,然后与预设的阈值比较,以判断这个成绩组合是否异常,即是否显著偏离大部分学生的成绩分布。

        多维高斯分布的特点是其概率密度函数呈现出一个椭球状的分布形态,其中椭球的中心对应均值向量,椭球的形状和方向由协方差矩阵决定。

二维高斯分布
二维高斯分布

三、高斯分布模型

        在实际应用中,高斯分布(正态分布)常被用来开发异常检测算法,尤其是在一维或多维连续数据中。这种情况下,假设数据服从高斯分布(这里埋个坑后续出个文章讲讲为什么要假设符合高斯分布?以及万一数据不符合高斯分布该怎么办呢?),我们可以基于高斯分布的概率密度函数(PDF)来评估数据点的“正常”程度。

(1)高斯分布异常检测算法

        利用高斯分布模型来解决异常检测问题,对于给定的数据集x_1, x_2, \dots, x_m针对每一个特征计算出\mu\sigma^2的估计值:

\mu_j = \frac{1}{m}\sum_{i=1}^{m}x_j^{(i)}

\sigma ^2_j = \frac{1}{m}\sum_{i=1}^{m}(x_j^{(i)} - \mu_j)^2

模型的公式为:

p(x)=\prod_{j=1}^{n}p(x_j|\mu_j,\sigma_j^2)=\prod_{j=1}^{n}\frac{1}{\sqrt{2\pi }\sigma_j}e^{-\frac{(x_j-\mu_j)^2}{2\sigma_j^2}}

        根据训练集中的样本点计算出了均值和方差后就拟合得到了模型p(x)(其实就是PDF),然后你如果给定新的一个样本点x_{new},想知道它到底是不是异常的样本数据,就可以把它带入公式计算p(x_{new}),当p(x_{new})< \varepsilon时说明是异常的数据。

        上面算法中我们选择一个\varepsilon,将p(x)= \varepsilon作为我们的判定边界,当时大于阈值时预测数据为正常数据,否则为异常。下面这一篇文章种详细介绍了我们该如何确定阈值\varepsilon

【机器学习300问】40、如何评估一个异常检测系统?icon-default.png?t=N7T8http://t.csdnimg.cn/xZoJp

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

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

相关文章

echart trigger 为 axis 的时候不显示 tooltip 解决办法

echart trigger 为 axis 的时候不显示 tooltip 解决办法 在项目 vitetsvue3 中使用 echart 显示了一个曲线图&#xff1a; 但当把图表的 trigger 设置成 axis 的时候&#xff0c;鼠标扫过并不显示具体的数值&#xff0c;如上图所示。 但 trigger item 的时候是正常的。 解决…

Docker Desktop 安装 ClickHouse 超级简单教程

Docker desktop 安装 clickhouse 超级简单 文章目录 Docker desktop 安装 clickhouse 超级简单 什么是 Docker &#xff1f;安装下准备安装Docker配置安装 ClickHouse配置数据库密码DBeaver 测试创建表总结 什么是 Docker &#xff1f; 下载 Docker desktop Docker Desktop …

[蓝桥杯 2015 省 B] 生命之树

水一水的入门树形DP #include<iostream> #include<algorithm> #include<vector> using namespace std; using ll long long; #define int long long const int N 2e610; const int inf 0x3f3f3f3f; const int mod 1e97;int n; int w[N]; vector<vecto…

Node.js快速入门:搭建基础Web服务器与实现CRUD及登录功能

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

Word2vec 学习笔记

word2vec 学习笔记 0. 引言1. Word2vec 简介1-1. CBOW1-2. SG 2. 实战 0. 引言 最近研究向量检索&#xff0c;看到有同事使用 MeCab、Doc2Vec&#xff0c;所以把 Word2vec 这块知识学习一下。 1. Word2vec 简介 Word2vec 即 word to vector&#xff0c;顾名思义&#xff0c;…

在MongoDB建模1对N关系的基本方法

“我在 SQL 和规范化数据库方面拥有丰富的经验&#xff0c;但我只是 MongoDB 的初学者。如何建立一对 N 关系模型&#xff1f;” 这是我从参加 MongoDB 分享日活动的用户那里得到的最常见问题之一。 我对这个问题没有简短的答案&#xff0c;因为方法不只有一种&#xff0c;还有…

HarmonyOS(鸿蒙)ArkUI组件

方舟开发框架&#xff08;简称ArkUI&#xff09;为HarmonyOS应用的UI开发提供了完整的基础设施&#xff0c;包括简洁的UI语法、丰富的UI功能&#xff08;组件、布局、动画以及交互事件&#xff09;&#xff0c;以及实时界面预览工具等&#xff0c;可以支持开发者进行可视化界面…

风速预测(八)VMD-CNN-Transformer预测模型

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测&#xff08;一&#xff09;数据集介绍和预处理-CSDN博客 风速预测&#xff08;二&#xff09;基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

负数,小数转换二进制

负数转换二进制 例&#xff1a;在带符号整数signed char的情况下&#xff0c;-57如何被表示成负数呢&#xff1f;在计算机中又是如何计算66-57呢&#xff1f; 解析 考虑int占有32位太长&#xff0c;因此使用只占8位的signed char类型来举例。57用二进制表示位00111001&#…

【Mysql数据库基础04】连接查询、内连接、外连接

Mysql数据库基础04 0 该博客所要用的数据库表的属性1 SQL92 内连接1.1 等值连接1.1.1 两个表的顺序可以调换1.1.2 加筛选1.1.3 加分组1.1.4 加排序1.1.5 三表连接 1.2 非等值连接1.3 自连接 2 SQL99 内连接2.1 等值连接2.2 非等值连接2.3 自连接 3 外连接3.1 左外和右外连接 4 …

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 并训练自己的数据集

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 概述 大模型微调(finetuning)以适应特定任务是一个复杂且计算密集型的过程。本文训练测试主要是基于主流的的微调方法:LoRA、Adapter、Prefix-tuning、P-tuning和Prompt-tuning,并对…

网络原理(3)——TCP协议

目录 一、连接管理 二、三次握手 1、何为三次握手&#xff1f; 2、三次握手有何意义&#xff1f; 三、四次挥手 三次握手和四次挥手的相似之处和不同之处 &#xff08;1&#xff09;相似之处 &#xff08;2&#xff09;不同之处 四、TCP的状态 建立连接&#xff1a; 断开…

Matlab中inv()函数的使用

在Matlab中&#xff0c;inv()函数是用来求解矩阵的逆矩阵的函数。逆矩阵是一个与原矩阵相乘后得到单位矩阵的矩阵。在数学中&#xff0c;矩阵A的逆矩阵通常用A^-1表示。 什么是逆矩阵 在数学中&#xff0c;对于一个n阶方阵A&#xff0c;如果存在一个n阶方阵B&#xff0c;使得…

华为综合案例-普通WLAN全覆盖配置(1)

适用范围和业务需求 适用范围 本案例适用于大多数场景&#xff0c;如办公室、普通教室、会议室等普通非高密场景。 业务需求 主要业务需求如下&#xff1a; 接入需求 随时、随地无线业务接入。无线覆盖需要做到覆盖均匀、无盲区。 无线漫游需求 多层网络、快速切换、网络…

P1143 进制转换题解

题目 请你编一程序实现两种不同进制之间的数据转换。 输入输出格式 输入格式 共三行&#xff0c;第一行是一个正整数&#xff0c;表示需要转换的数的进制n (2≤n≤16)&#xff0c;第二行是一个n进制数&#xff0c;若n>10则用大写字母A∼F表示数码10∼15&#xff0c;并且…

使用 GTSAM 进行曲线拟合的示例

GTSAM介绍 GTSAM(通用因子图优化库)是一种用于状态估计和传感器数据融合的开源C++库。它提供了强大的工具,用于在机器人和自主系统领域进行感知、决策和控制。 功能和特点 状态估计与优化: GTSAM 提供了灵活且高效的状态估计框架,能够处理从传感器获取的数据,并…

接口测试系列 —— 转转交易业务场景接口测试实践

01 Why接口测试 一、提高效率 关键词&#xff1a;QA 职责保质保量的完成需求测试工作在保证质量的前提下提高效率&#xff0c;要保证质量&#xff0c;首先需要先弄清楚这次需求的测试范围&#xff0c;针对性的使用不同的测试方法&#xff0c;而接口测试就是其中的一种&#x…

JMeter 并发测试和持续性压测详解

并发测试和持续性压测都是评估系统性能的常用方法&#xff0c;它们可以帮助开发人员发现并解决系统中的性能问题。本文来详细介绍下。 概念 并发测试&#xff1a; 旨在评估系统在同时处理多个用户请求时的性能。在这种 测试 中&#xff0c;系统会暴露于一定数量的用户负载下&…

Bito插件

此文档只作用于指导性工作&#xff0c;更多资料请自行探索。 1、插件安装与介绍 1.1 插件下载与安装 在idea中搜索&#xff1a;Bito Bito is also available for:​编辑VSCode​编辑JetBrains​编辑CLI 1.2 官方介绍 插件&#xff1a;ChatGPT GPT-4 - Bito AI Code Assista…

SQLiteC/C++接口详细介绍sqlite3_stmt类(五)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;四&#xff09;- 下一篇&#xff1a; 无 12. sqlite3_bind_text16函数 sqlite3_bind_text16函数用于将UTF-16编码的文本数据&#xff08;字符串&#xff09;绑定…