多元高斯分布(python示例)

Python绘制高斯分布(正态分布)图像,附python绘图技巧 阅读详情

多元高斯分布(也称为多变量正态分布)是单变量高斯分布的推广,用于描述多个随机变量之间的联合分布,这些变量之间可能存在线性相关性。多元高斯分布的概率密度函数的形式比较复杂,主要依赖于均值向量和协方差矩阵。

多元高斯分布的表达式

对于一个kkk-维的多元高斯分布,其概率密度函数可以表达为:

f(x)=1(2π)k/2∣Σ∣1/2exp⁡(−12(x−μ)TΣ−1(x−μ)) f(\mathbf{x}) = \frac{1}{(2\pi)^{k/2} |\Sigma|^{1/2}} \exp\left(-\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \Sigma^{-1} (\mathbf{x} - \mathbf{\mu})\right) f(x)=(2π)k/2∣Σ∣1/21​exp(−21​(x−μ)TΣ−1(x−μ))

其中:

  • x\mathbf{x}x 是一个 kkk-维随机向量。
  • μ\mathbf{\mu}μ 是一个 kkk-维均值向量。
  • Σ\SigmaΣ 是一个 k×kk \times kk×k 的协方差矩阵,它是对称的,且正定。
  • ∣Σ∣|\Sigma|∣Σ∣ 表示协方差矩阵的行列式。

三元高斯分布的例子

假设我们有一个三元高斯分布,其随机向量 x=(X1,X2,X3)T\mathbf{x} = (X_1, X_2, X_3)^Tx=(X1​,X2​,X3​)T,均值向量 μ=(μ1,μ2,μ3)T\mathbf{\mu} = (\mu_1, \mu_2, \mu_3)^Tμ=(μ1​,μ2​,μ3​)T,和协方差矩阵 Σ\SigmaΣ 如下:

μ=[1−10],Σ=[10.30.20.320.50.20.53] \mathbf{\mu} = \begin{bmatrix} 1 \\ -1 \\ 0 \end{bmatrix}, \quad \Sigma = \begin{bmatrix} 1 & 0.3 & 0.2 \\ 0.3 & 2 & 0.5 \\ 0.2 & 0.5 & 3 \end{bmatrix} μ=​1−10​​,Σ=​10.30.2​0.320.5​0.20.53​​

因此,这个三元高斯分布的概率密度函数为:

f(x)=1(2π)3/2∣Σ∣1/2exp⁡(−12(x−μ)TΣ−1(x−μ)) f(\mathbf{x}) = \frac{1}{(2\pi)^{3/2} |\Sigma|^{1/2}} \exp\left(-\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \Sigma^{-1} (\mathbf{x} - \mathbf{\mu})\right) f(x)=(2π)3/2∣Σ∣1/21​exp(−21​(x−μ)TΣ−1(x−μ))

其中 ∣Σ∣|\Sigma|∣Σ∣ 是协方差矩阵的行列式,Σ−1\Sigma^{-1}Σ−1 是协方差矩阵的逆。

计算示例

让我们用Python计算一下这个分布的行列式以及逆矩阵,并展示如何使用这个表达式计算某个具体点的概率密度。

import numpy as np

# 定义均值向量和协方差矩阵
mu = np.array([1, -1, 0])
Sigma = np.array([
    [1, 0.3, 0.2],
    [0.3, 2, 0.5],
    [0.2, 0.5, 3]
])

# 计算协方差矩阵的行列式和逆矩阵
Sigma_det = np.linalg.det(Sigma)
Sigma_inv = np.linalg.inv(Sigma)

# 设置一个具体的点x
x = np.array([0, 0, 0])

# 计算多元正态分布的概率密度函数值
k = len(mu)  # 维数
denominator = (2 * np.pi) ** (k / 2) * np.sqrt(Sigma_det)
exponent = -0.5 * (x - mu).T.dot(Sigma_inv).dot(x - mu)
pdf_value = (1 / denominator) * np.exp(exponent)

print(Sigma_det)
print(Sigma_inv)
print(pdf_value)

对于给定的三元高斯分布参数和随机向量 x=(0,0,0)\mathbf{x} = (0, 0, 0)x=(0,0,0),计算结果如下:

  • 协方差矩阵 Σ\SigmaΣ 的行列式:5.465.465.46
  • 协方差矩阵 Σ\SigmaΣ 的逆矩阵:
    [1.053−0.147−0.046−0.1470.542−0.081−0.046−0.0810.350] \begin{bmatrix} 1.053 & -0.147 & -0.046 \\ -0.147 & 0.542 & -0.081 \\ -0.046 & -0.081 & 0.350 \end{bmatrix} ​1.053−0.147−0.046​−0.1470.542−0.081​−0.046−0.0810.350​​
  • 在点 x=(0,0,0)\mathbf{x} = (0, 0, 0)x=(0,0,0) 的概率密度值:0.010570.010570.01057.

概率密度函数的解释

这个概率密度值表示,在给定的三元高斯分布下,随机变量 x=(0,0,0)\mathbf{x} = (0, 0, 0)x=(0,0,0) 出现的概率密度。由于高斯分布的特性,这个值不是概率本身,而是在这个点的密度值,用于概率计算和统计推断。

这个具体的概率密度函数值告诉我们,在均值 μ=(1,−1,0)\mu = (1, -1, 0)μ=(1,−1,0) 附近,向量 x=(0,0,0)\mathbf{x} = (0, 0, 0)x=(0,0,0) 的出现相对较为罕见,因为其概率密度较低。如果我们计算离均值更近的点,概率密度值通常会更高。

多元高斯分布(Multivariate Gaussian Distribution)(详细说明,便于理解) 在深入了解多元高斯分布前,可以先了解一下一元高斯分布。 接下来对多元高斯分布进行详细的说明与推导。 对于 维的向量(连续变量),多变量(多元, multivariate Gaussian)高斯分布形式为: 式中的是 维的均值向量,是的协方差矩阵(covariance matrix),是的行列式(determinan... 阅读详情

相关推荐

Python | 高斯分布拟合示例

当我们绘制一个数据集(如直方图)时,图表的形状就是我们所说的分布。最常见的连续值形状是钟形曲线,也称为高斯分布或正态分布。它以德国数学家卡尔·弗里德里希·高斯的名字命名。遵循高斯分布的一些常见示例数据集是体温、人的身高、汽车里程、IQ分数。让我们尝试生成理想的正态分布,并使用Python绘制它。

m0_59236127的博客 2717

如何用python实现高斯分布

简单了解高斯分布 百度百科里边解释叫“正态分布”,也称常态分布,若随机变量x服从一个数学期望μ,方差σ²的正态分布,记为N(μ,σ²),其概率密度函数为正太分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度,当μ=0,σ=1时的正态分布是标准正态分布。 一维正态分布 若随机变量X服从一个位置参数μ,尺度参数为σ的概率分布,且其概率密度函数为: 则这个随机变量就称为正态随机变量,正态随机变量服...

weixin_44935235的博客 2万+

高斯混合模型和软聚类

通过给出每个样本属于每个成分的概率分布,高斯混合模型提供了一种模糊的聚类分配方式。硬聚类将样本分配到一个确定的聚类中,而软聚类则提供了更灵活的方法,可以对样本进行模糊的聚类分配。高斯混合模型通过给出每个样本属于每个成分的概率分布,提供了一种软聚类的方式。在高斯混合模型中,每个样本都被分配到每个成分的概率被称为聚类的隶属度(membership),表示样本属于每个成分的程度。在高斯混合模型中,每个样本的生成过程分为两个步骤:首先,选择一个成分作为生成该样本的成分;库,它提供了高斯混合模型的实现。

AlianBlank的博客 268

从一元高斯分布到多元高斯分布(含例子,python代码)

为了简化下面的高斯分布都是按照零均值写的一元高斯的标准形式: 多元高斯的标准形式: 下面推导为什么一般的多元高斯具有形式: 核心观点:所有的非奇异的多元高斯分布都是以多元标准高斯分布为基础,通过非奇异矩阵 进行坐标变换而来的假设对于一般的多元高斯分布 有 那么因此 这样应该就可以理解公式里面为什么会有协方差矩阵了代码示例import numpy as np import matplotlib....

妖白的奇幻漂流世界 1万+

Python:三维空间的概率密度函数

二维高斯分布概率密度函数数据集实战优化坐标轴与图像优化图像再次优化 概率密度函数 大家肯定都有听说过正态分布,其实正态分布只是概率密度分布的一种,正态分布的概率密度函数均值为μ ,标准差σ是高斯函数的一个实例: f(x;μ,σ)=1σ2πexp⁡(−(x−μ)22σ2) f(x ; \mu, \sigma)=\frac{1}{\sigma \sqrt{2 \pi}} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right) f(x;μ,σ)=σ2π​1​exp(−2σ2(x−μ)2​) 在一维上只有x一个变量,μ 均值,σ标准差。 正态分布具有两个

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

用Python和NumPy手把手教你计算多元高斯分布的概率密度(附代码示例)

本文详细介绍了如何使用Python和NumPy实现多元高斯分布(又称多元正态分布)的概率密度计算。通过分步解析均值向量、协方差矩阵和标准化常数的计算过程,结合代码示例和性能优化技巧,帮助读者掌握这一机器学习与数据分析中的核心技能。文章还涵盖了最大似然估计等进阶应用,并提供了可视化示例和常见问题解决方案。

weixin_32296621的博客 263

KEPServer EX6的Modbus、MQTT和REST Server一站式配置整理说明

KEPServer EX6的Modbus、MQTT和REST Server一站式配置整理说明

syqenter的专栏 8961

高斯分布可视化

高斯分布

KPer_Yang的博客 766

伺服电机三环控制实战:从参数整定到系统优化

本文以实战视角,深入解析伺服电机三环控制(位置环、速度环、电流环)的参数整定与系统优化全流程。文章摒弃复杂理论,通过生动的比喻和分步调试指南,详细阐述了从电流环快速响应、速度环平滑调节到位置环精准定位的调试方法,并提供了常见问题排查与进阶优化技巧,帮助工程师有效提升伺服系统性能与稳定性。

weixin_29201933的博客 244

深入解析车载以太网DoIP诊断:Wireshark实战TCP/UDS报文分析

本文深入解析车载以太网DoIP诊断,重点介绍如何利用Wireshark进行TCP/UDS报文实战分析。文章详细讲解了从以太网帧、IP帧、TCP段到DoIP协议及UDS服务的逐层拆解方法,并提供了使用Wireshark定位通信故障(如乱序、丢包、重传)的实用技巧,帮助工程师高效排查车载诊断网络问题。

c2d3e4f的博客 674

Python生成正态分布的随机数

正态分布,最早由棣莫弗在二项分布的渐近公式中得到,而真正奠定正态分布地位的,却是高斯对测量误差的研究。测量是人类与自然界交互中必不可少的环节,测量误差的普遍性,确立了正态分布作用范围的广泛性,或许正因如此,正态分布才又被称为Gauss分布。多元高斯分布的主要参数仍为期望和方差,但所谓多元分布,在坐标层面的表现就是坐标轴的个数,也就是向量维度。逆高斯分布的说法容易引发歧义,实际上,逆高斯分布和高斯分布相当于布朗运动研究中的两个视角。其中,正态分布、对数正态分布以及逆高斯分布的概率密度函数如下表。

微小冷的学习笔记 1万+

图像去模糊(二)——Richardson–Lucy算法

Richardson Lucy Algorithm(Richardson-Lucy算法详解及效果实例)

xueruhongchen的博客 3万+

【很详细】高斯分布之间的KL散度讲解+Python代码实现

非常详细的高斯分布、高斯分布的KL散度的讲解,附带Python代码,加深理解,全过程,很详细

秋水顽石 5523

【Xilinx】如何在petalinux下编译vcu-gst-app以及独立编译vcu-gst-app

Xilinx从2018.1开始,提供了一套基于zcu106的vcu参考设计。里面提供了一套基于GStreamer的程序,即vcu-gst-app。如何脱离petalinux直接编译呢,这里以为例,其他版本也是类似的操作。

王师傅 3040

RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况

文章目录1、不敢高声语,恐惊天上人:sysfs目的2、窥一斑而知全豹:sysfs目录介绍3、千丝万缕:sysfs中要素的关系4、数据观星:sysfs中相关结构体 1、不敢高声语,恐惊天上人:sysfs目的 我们想通过sys下面的目录和文件清楚的了解跑Liunx系统的嵌入式设备的系统状况。 2、窥一斑而知全豹:sysfs目录介绍 sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件.

内核笔记 1万+

多元高斯分布概率密度函数(PDF)示例

多元高斯分布(Multivariate Gaussian Distribution)适用于。,用于建模数据的联合分布。完整计算可以用 Python 验证。假设我们有一个二维(

qq_51011530的博客 899

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

【Proteus仿真】用24C04与1602LCD设计的简易加密电子密码锁

perseverance51博客 1122

机器学习(八):AnomalyDetection异常检测_Python

七、异常检测 Anomaly Detection github地址:https://github.com/lawlite19/MachineLearning_Python 全部代码 1、高斯分布(正态分布)Gaussian distribution 分布函数: 其中,u为数据的均值,σ为数据的标准差 σ越小,对应的图像越尖 参数估计(parameter estimation) 2、异常检测算法

莫失莫忘的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

python 画出决策边界_在给定概率函数的情况下,建立用于绘制贝叶斯决策边界的函数...

在上面的评论中关于Chris的猜测,我假设你想根据高斯混合模型聚类点 - 一种合理的方法,假设基础分布是高斯分布式样本的线性组合。下面我展示了一个示例,使用numpy创建样本数据集,sklearn用于GM建模,pylab用于显示结果。import numpy as npfrom pylab import *from sklearn import mixture# Create some sampl...

weixin_39640687的博客 502

Python如何生成服从多元正态分布的随机变量?

机器学习研究经常需要进行模拟实验,生成服从多元正态分布、混合高斯分布的样本是一个基本功。至今在优快云上很少发现有这样现成的代码可以直接用。本文进行了系统介绍。

Chenglin(Ben) Yu's Miracle 1238

高斯判别分析算法及其python实现

高斯判别分析算法(Gaussian discriminat analysis)高斯判别算法是一个典型的生成学习算法

随便记点东西 1万+

python判别分析_python实现高斯判别分析算法的例子

高斯判别分析算法(Gaussian discriminat analysis)高斯判别算法是一个典型的生成学习算法(关于生成学习算法可以参考我的另外一篇博客)。在这个算法中,我们假设p(x|y)p(x|y)服从多元正态分布。注:在判别学习算法中,我们假设p(y|x)p(y|x)服从一维正态分布,这个很好类比,因为在模型中输入数据XX通常是拥有很多维度的,所以对于XX的条件概率建模时要取多维正态分布...

weixin_39581099的博客 352

python 高斯烟羽模型_高斯过程 Gaussian Processes 原理、可视化及代码实现

本文搬运于个人博客,欢迎点击这里查看原博文。高斯过程 Gaussian Processes 是概率论和数理统计中随机过程的一种,是多元高斯分布的扩展,被应用于机器学习、信号处理等领域。本文对高斯过程进行公式推导、原理阐述、可视化以及代码实现,介绍了以高斯过程为基础的高斯过程回归 Gaussian Process Regression 基本原理、超参优化、高维输入等问题。目录一元高斯分布多元高斯分布...

weixin_34486987的博客 1744

task_2异常检测方法—统计学习方法

一、基于统计学方法的异常检测 主要原理是:学习一个拟合给定数据集的生成模型,然后识别该模型低概率区域中的对象,把它们作为异常点。也就是说,包括两个步骤,第一,给出概率模型,第二,考虑对象有多大可能符合该模型。 根据如何指定和学习模型,异常检测的统计学方法可以划分为两个主要类型:参数方法和非参数方法。 参数方法:假定正常的数据对象被一个以Θ\ThetaΘ为参数的参数分布产生。该参数分布的概率密度函数f(x,Θ)f(x,\Theta)f(x,Θ)给出对象xxx被该分布产生的概率。该值越小,xxx越可能是异常点

XYQLTX的博客 592

MachineLearning中numpy 常用操作技巧

数组移位 import numpy as np a = np.arange(10) b = np.roll(a, -1) print(a) print(b) ''' [0 1 2 3 4 5 6 7 8 9] [1 2 3 4 5 6 7 8 9 0] ''' 筛选array中出现次数最多的元素 c = np.array([1,2,5,9,9,9,3]) a = np.binco...

Mortal's blog 169
上一篇: 【Python】Python标准库:logging
下一篇: numpy中linalg包的功能
读思辨
博客等级 码龄9年 428粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值