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

一、异常检测是什么?

(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

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

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

相关文章

软考 系统架构设计师系列知识点之云原生架构设计理论与实践(1)

所属章节&#xff1a; 第14章. 云原生架构设计理论与实践 第1节 云原生架构产生背景 云原生&#xff08;Cloud Native&#xff09;是近几年云计算领域炙手可热的话题&#xff0c;云原生技术已成为驱动业务增长的重要引擎。同时&#xff0c;作为新型基础设施的重要支撑技术&…

新一代 数据安全管理平台是什么,对于各行各业的公司又有什么价值?

新一代数据安全管理平台&#xff0c;在数据安全建设体系中可发挥“全局风险治理、统一指挥调度”的重要作用&#xff0c;为用户提供跨数据类型、存储孤岛和生态系统集成数据的产品和服务&#xff0c;从而实现更简单、一致的数据安全。 数据安全管理平台是以数据访问行为分析为基…

Redis如何设置键的生存时间或过期时间

键的生存时间或过期时间 概述。 通过EXPIRE命令或者PEXIPIRE命令&#xff0c;客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL)&#xff0c;在经过指定的秒数或者毫秒数之后&#xff0c;服务器就会自动删除生存时间为0的键: 127.0.0.1:6379>…

Oracle:ORA-01830错误-更改数据库时间格式

1,先把报错SQL语句拿出来执行&#xff0c;看看是不是报的这个错 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 2&#xff0c;然后查看默认日期格式是不是“YYYY-MM-DD HH24:MI:SS”&#xff08;正确格式&#xff09;。&#xff1b; 执行&#xff1a; SELECT * FRO…

美团24秋招第一套笔试试题

小美的字符串匹配度 我的代码&#xff08;16/20&#xff09; import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextL…

Apache Superset

前言 最近在准备一个小的项目&#xff0c;需要对 Hive 的数据进行展示&#xff0c;所以想到了把 Hive 的数据导出到 MySQL 然后用 Superset 进行展示。 Superset 1.1 Superset概述 Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用&#xff0c;可对接…

表格固定行固定列问题

效果图 代码&#xff1a; 1.第一部分&#xff1a;表格固定行&#xff1a;用合计行来实现 <el-tableclass"fixedRowcol":data"tableData"bordershow-summarysum-text"合计"ref"table"></el-table> 2.第二部分&#xff1…

Docker 【通过Dockerfile构建镜像】【docker容器与镜像的关系】

文章目录 前言一、前期的准备工作二、上手构建一个简单的镜像三、DcokerFile1 指令总览2 指令详情 四、Dockerfile文件规范五、docker运行build时发生了什么?六、调试手段1. 修改镜像打包后&#xff0c;如何验证新内容已更新至镜像 七、Dockerfile优化方案 前言 docker构建镜…

【Spark编程基础】实验三RDD 编程初级实践(附源代码)

目录 一、实验目的二、实验平台三、实验内容1.spark-shell 交互式编程2.编写独立应用程序实现数据去重3.编写独立应用程序实现求平均值问题 一、实验目的 1、熟悉 Spark 的 RDD 基本操作及键值对操作&#xff1b; 2、熟悉使用 RDD 编程解决实际具体问题的方法 二、实验平台 …

burpsuit教程汉化+Repeater(非常详细),从零基础入门到精通,看完这一篇就够了

前言&#xff1a;释疑解惑 《BP使用教程一》发布后&#xff0c;后台收到了许多小伙伴的私信问BP是怎么汉化的&#xff0c;在这里统一为大家解答一下。 BP的汉化依赖于汉化jar包&#xff0c;在启动时引入汉化包即可&#xff0c;废话不多说&#xff0c;直接上命令&#xff1a; …

MySQL:基础篇

一、数据库概述 基本概念 RDBMS&#xff08;关系型数据库&#xff09;和非DBMS对比 RDBMS 实质&#xff1a; 优势&#xff1a; 非DBMS 介绍&#xff1a; 类型&#xff1a; RDBMS设计规则 表、字段、记录 表之间的关联关系 1、一对一 2、一对多 3、多对多 4、自我引用 二、…

Linux网络编程: TCP协议首部与可选项简述

一、TCP/IP五层模型 物理层&#xff08;Physical Layer&#xff09;&#xff1a;物理层是最底层&#xff0c;负责传输比特流&#xff08;bitstream&#xff09;以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流&#xff0c;例如通过电缆、光纤或无线传输等。…

蓝桥杯 第3217题 简单的异或难题 C++ Java Python

题目 思路和解题方法 计算给定数组中子数组异或和的问题。它采用了前缀异或的方法来预处理数组&#xff0c;然后对于每个查询&#xff0c;通过异或操作计算子数组的异或和。 读取输入的数组&#xff0c;并计算每个位置的前缀异或和。对于每个查询&#xff0c;读取查询的左右边界…

有哪些好用的客户管理软件?这5款系统好在哪里?

问题链接&#xff1a;有哪些客户管理比较好的软件&#xff1f; - 知乎 从题主的描述来看&#xff0c;问题主要聚集在客户信息管理、销售流程管理、客户优先级管理这几大方面&#xff0c;再回答这个问题之前&#xff0c;我们要先明确几个问题。比如&#xff0c;客户对企业的重要…

蓝桥杯--错误票据

求解答&#xff0c;不知道出现什么问题(虽然知道自己写的挺麻烦的&#xff0c;但是孩子能写出来就不容易了&#xff09; public class top2 {//错误票据public static void main(String[] args){Scanner scannernew Scanner(System.in);int wscanner.nextInt();String []snew S…

uniapp 开发微信小程序 出现启用组件按需注入问题如何解决

问题描述 在使用uniapp 开发微信小程序&#xff0c;进行上架发布时 代码质量栏 出现启用组件按需注入问题。 虽然现实代码上传成功&#xff0c;但是作为一个吹毛求疵的老猿人&#xff0c;肯定是无法容忍的。那么如何解决呢&#xff1f; 问题解决方案 在uniapp端&#xff0c…

GDB界面调试CGDB快速上手

什么是 CGDB&#xff1f; CGDB 是一个基于 GNU Debugger&#xff08;GDB&#xff09;的 Curses&#xff08;字符用户界面&#xff09;前端。它提供了一个类似于文本编辑器的界面&#xff0c;可以帮助用户更轻松地执行调试操作&#xff0c;而无需离开终端。 安装 CGDB 首先&a…

【鸿蒙HarmonyOS开发笔记】通知模块之发布进度条类型通知

概述 进度条通知也是常见的通知类型&#xff0c;主要应用于文件下载、事务处理进度显示。HarmonyOS提供了进度条模板&#xff0c;发布通知应用设置好进度条模板的属性值&#xff0c;如模板名、模板数据&#xff0c;通过通知子系统发送到通知栏显示。 目前系统模板仅支持进度条…

HarmonyOS定时器与定时任务

HarmonyOS 的 ArkTS 说白了 就是 TS和JS混合 加了一些新特性的语言 定时任务 就还是用 js代码就OK了 我们代码这样写 Entry Component struct Twox {build() {Row() {Column(){Button("触发定时任务").onClick(()>{setTimeout(()> {console.log(执行)},2000…

【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT

目录 系统介绍 硬件配置 硬件连接图 系统分析与总体设计 系统硬件设计 ESP8266 WIFI开发板 人体红外传感器模块 光敏电阻传感器模块 火焰传感器模块 可燃气体传感器模块 温湿度传感器模块 OLED显示屏模块 系统软件设计 温湿度检测模块 报警模块 OLED显示模块 …