numpy笔记整理 multivariate_normal(多元正态分布采样)
1 基本用法
np.random.multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)
根据均值和协方差矩阵的情况生成一个多元正态分布矩阵
2 参数说明
mean | mean是多维分布的均值,维度为1 |
cov |
协方差矩阵 注意:协方差矩阵必须是对称的且需为半正定矩阵; |
size |
指定生成的正态分布矩阵的维度 eg:若size=(1, 1, 2),则输出的矩阵的shape即形状为 1X1X2XN(N为mean的长度) |
check_valid |
这个参数用于决定当cov即协方差矩阵不是半正定矩阵时程序的处理方式。 它一共有三个值:warn,raise以及ignore。
|
3 举例说明
import numpy as np;
mean = (1, 2)
#均值向量
alpha=[[1. , 0. ],[0. , 0.5]]
#精度矩阵,协方差矩阵的倒数
cov=np.linalg.inv(alpha)
#协方差矩阵x = np.random.multivariate_normal(mean, cov)
x
#array([1.52666855, 1.77005564])x1 = np.random.multivariate_normal(mean, cov,size=(3,2))
x1
#一个3*3*N, 即3*2*2的矩阵,每一行表示一个样本
'''
array([[[ 0.34648623, -0.45031679],[-0.04902216, 0.76346656]],[[ 3.45690489, 1.88220564],[-0.20572284, 1.36394544]],[[ 0.62486475, -0.56346348],[ 1.53072488, 3.5600083 ]]])
'''
4 “手动”采样
看到一种别的思路,从精度矩阵(协方差矩阵的倒数)出发,来进行采样的
数据还是这几个:
import numpy as np;
mean = (1, 2)
#均值向量
alpha=[[1. , 0. ],[0. , 0.5]]
#精度矩阵,协方差矩阵的倒数
cov=np.linalg.inv(alpha)
#协方差矩阵
大致思路是:
我们以一维高斯分布N(μ,σ^2)为例,对于满足这个分布的x,我可以通过这种方式进行归一化:。那么相反地,我们从N(0,1)出发的x',可以通过以下方式转换成满足N(μ,σ^2)的分布:
那么多维的运算就是,我们找到协方差矩阵Σ,然后对他进行cholesky分解(线性代数笔记: Cholesky分解_UQI-LIUWJ的博客-CSDN博客),得到L和L^T,然后用L*X+μ 来采样(这里的X满足N(0,I),+μ操作可能是一个广播操作)
【我们这里使用精度矩阵α来实现的,所以进行cholesky分解前/后,需要进行矩阵求逆操作】
import scipy
src=np.random.normal(size=(2,5))
#从N(0,1)里面采样,每一列是一个样本
print(src)
'''
[[-1.73043484 0.97310463 -1.26852045 0.18902608 0.46363832][ 1.17343672 -1.10486709 -1.19307965 0.72384929 -0.17661455]]
'''L_upp=scipy.linalg.cholesky(alpha,check_finite = False)
print(L_upp)
#将精度矩阵转换成L*L^T的形式(其中L是下三角矩阵)
'''
[[1. 0. ][0. 0.70710678]]
'''x3=scipy.linalg.solve_triangular(L_upp,src,lower=False,check_finite = False)
#这里直接用np.linalg.inv(L_upp) @ src 也可以
#找x3,使得L_upp*x3=srcprint(x3)
'''
[[-1.73043484 0.97310463 -1.26852045 0.18902608 0.46363832][ 1.65949013 -1.56251802 -1.68726942 1.02367749 -0.24977069]]
'''x3=x3.T+mean
#加上均值
x3
'''
array([[-0.73043484, 3.65949013],[ 1.97310463, 0.43748198],[-0.26852045, 0.31273058],[ 1.18902608, 3.02367749],[ 1.46363832, 1.75022931]])
'''
numpy笔记整理 multivariate_normal(多元正态分布采样)相关推荐
- 【ML学习笔记】17:多元正态分布下极大似然估计最小错误率贝叶斯决策
简述多元正态分布下的最小错误率贝叶斯 如果特征的值向量服从d元正态分布,即其概率密度函数为: 即其分布可以由均值向量和对称的协方差矩阵 唯一确定. 如果认为样本的特征向量在类内服从多元正态分布: 即对 ...
- 多元正态分布的后验采样(包含程序)
原文来自师兄的博客:http://blog.csdn.net/wjj5881005/article/details/53535613 均值和方差未知的多元正态分布的后验Multivariate nor ...
- 多元正态分布的后验采样
均值和方差未知的多元正态分布的后验Multivariate normal with unknown mean and variance 从后验分布中采样均值mu和方差Sigma 1. 均值和方差未知的 ...
- 《多元统计分析》学习笔记之多元正态分布
鄙人笔记,记一些知识点. 文章目录 多元正态分布 1.1多元分布的基本概念 1.2统计距离 1.3多元正态分布 1.5常用分布及抽样分布 多元正态分布 1.1多元分布的基本概念 随机变量 假定所讨论的 ...
- numpy 笔记: random模块
1 基本应用 randint 随机生成大小为size的正整数ndarray low.high.size三个参数.默认high是None,如果只有low,那范围就是[0,low).如果有high,范围就 ...
- 正态分布、正态分布采样及Python实现
正态分布.正态分布采样及Python实现 多元正态分布(多元高斯分布) 协方差矩阵 协方差分解 变量的线性变换(正态分布采样原理) python实现 参考文献 多元正态分布(多元高斯分布) 直接从多元 ...
- 机器学习总结——机器学习课程笔记整理
机器学习笔记整理 说明 基础点整理 1. 基础数学知识 (1) 一些零七八碎的基础知识 (2) 最优化相关问题 (3) 概率论相关问题 (4) 矩阵相关问题 2. 回归(线性回归.Logistic回归 ...
- NumPy - np.random.multivariate_normal()
np.random.multivariate_normal(mean, cov, size=None, check_valid=None, tol=None) 生成一个多元正态分布矩阵. o. mea ...
- Deep Learning(深度学习)学习笔记整理系列之常用模型
Deep Learning(深度学习)学习笔记整理系列之常用模型(四.五.六.七) 九.Deep Learning的常用模型或者方法 9.1.AutoEncoder自动编码器 Deep Learnin ...
最新文章
- ajax得到后端数据一直提示为[object Object]解决方法
- Spring Cloud Data Flow手动安装
- 超轻型的数据库sqlite
- ubuntu rpm安装_为什么说Ubuntu是一个值得尊敬的Linux发行版
- jquery 性能优化与实践
- 【转】NB-IoT移远BC95使用小结
- 量子纠缠1——量子比特、Bell态、EPR佯谬
- dying relu 和weight decay
- html表格标题标签_HTML标题标签
- 计算机通信中ip,macid的主要作用和区别
- ggplot绘制小提琴图
- oracle查看当前的数据库实例名称,主机名称
- 中国RV减速器行业竞争格局与发展趋势预测报告2022-2028年
- 统计输入字符串中大写字母、小写字母、阿拉伯数字个数和特殊符号的个数
- c语言用迭代法求最大公约数,用迭代法求两个数的最大公约数和最小公倍数
- CRM——验证码(JWT技术)、接口资源鉴权
- 无头结点单链表的逆置_从无头单链表中删除节点及单链表的逆置
- JS:Vue项目浏览器直接上传文件到阿里云OSS
- HTTP-FLV协议
- 高完整性系统(4)Formal Logic (形式逻辑和 Alloy 简介)
热门文章
- 如何让一个类可以被foreach枚举?
- Hadoop RPC protocol description--转
- TCP-IP详解:重传机制
- 算法提高课-图论-负环-AcWing 904. 虫洞:spfa求负环裸题
- 大创项目实施方案模板范文_27篇互联网电商创业计划书范文+34个电商行业商业计划书模板下载...
- Android 实训:日志(基于外部存储音乐播放器V01)
- fedora21 mysql_在fedora21 上的php+mysql+apache环境搭建
- python递归函数讲解_Python递归函数实例讲解
- 电阻应用电路之指示灯电路的设计
- python中数字应该用什么表示_Python