参考:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.multivariate_normal.html

一个多元正态随机变量。
mean关键字指定平均值,cov关键字指定协方差矩阵。
新版本0.14.0。

补充:高斯分布

Gaussian Distribution(Normal Distribution)其图形特点为中间高,两头低,是钟形曲线(bell-shaped curve)。在高斯分布中,以数学期望μ(即mean)表示钟型的中心位置(也即曲线的位置),而标准差(standard deviation)σ表征曲线的离散程度。

协方差矩阵,参考百度百科:

协方差矩阵的每个元素是各个向量元素之间的协方差

协方差矩阵可用来表示多维随机变量的概率密度,从而可通过协方差矩阵达到对多维随机变量的研究

1)参数:

  • x : 数组,分位数,最后一个x轴标记组件。
  • mean:数组,可选的。分布的均值(默认为0)
  • cov :数组,可选的。分布的协方差矩阵(默认为1)

可以该multivariate_normal对象可以被调用(作为函数)来固定均值和协方差参数,返回一个“frozen”的多元正态随机变量rv:

rv = multivariate_normal(mean=None, scale=1)

冻结对象采用相同的方法,但保持给定的均值和协方差不变。

2)注意:

将参数均值mean设为None等价于将均值mean设为零向量。参数cov可以是一个标量,在这种情况下,协方差矩阵是该值的单位乘、协方差矩阵的对角项向量,或者二维数组。

协方差矩阵cov必须是一个(对称的)正半定矩阵。将cov的行列式和逆分别计算为伪行列式和伪逆,使cov不需要满秩。

multivariate_normal的概率密度函数是:

μ是平均值mean,默认为0;∑即cov是协方差矩阵,默认为1;k是x获取值的空间的维度

3)举例:

from scipy.stats import multivariate_normal
x = np.linspace(, , , endpoint=False)
y = multivariate_normal.pdf(x, mean=2.5, cov=0.5);
x,y

返回,y得到的值x的值在mean=2.5取值点附近的可能性:

(array([. , 0.5, . , 1.5, . , 2.5, . , 3.5, . , 4.5]),
array([0.00108914, 0.01033349, 0.05946514, 0.20755375, 0.43939129,
0.56418958, 0.43939129, 0.20755375, 0.05946514, 0.01033349]))

画图:

plt.plot(x, y)

输入分位数x可以是任何形状的数组,只要最后一个轴标记组件。这使得我们可以在二维中显示非各向同性随机变量的冻结pdf,如下:

补充np.mgrid的用法

x, y = np.mgrid[-::., -::.]
pos = np.empty(x.shape + (,)) #从x.shape=(,)变为(,,)
pos[:, :, ] = x
pos[:, :, ] = y
#mean=[0.5, -0.2],cov=[[2.0, 0.3], [0.3, 0.5]],声明一个带着指定mean和cov的rv对象
rv = multivariate_normal([0.5, -0.2], [[2.0, 0.3], [0.3, 0.5]])
#将f(X,Y)=rv.pdf(pos)的值对应到color map的暖色组中寻找(X,Y)对应的点对应的颜色
plt.contourf(x, y, rv.pdf(pos))

返回:

可见使用概率密度函数pdf对数据pos,即(x,y)值进行处理后得到满足设置的mean和cov的值,使其分布满足高斯分布。rv.pdf(pos).shape为(200,200)

4)可使用方法:

  • pdf(x, mean=None, cov=1) :概率密度函数
  • logpdf(x, mean=None, cov=1) :概率密度函数日志
  • rvs(mean=None, cov=1) :从多元正态分布中随机抽取样本
  • entropy() :计算多元法线的微分熵

scipy.stats.multivariate_normal的使用的更多相关文章

  1. Scipy教程 - 统计函数库scipy.stats

    http://blog.csdn.net/pipisorry/article/details/49515215 统计函数Statistical functions(scipy.stats) Pytho ...

  2. scipy.stats

    scipy.stats Scipy的stats模块包含了多种概率分布的随机变量,随机变量分为连续的和离散的两种.所有的连续随机变量都是rv_continuous的派生类的对象,而所有的离散随机变量都是 ...

  3. [原创博文] 用Python做统计分析 (Scipy.stats的文档)

    [转自] 用Python做统计分析 (Scipy.stats的文档) 对scipy.stats的详细介绍: 这个文档说了以下内容,对python如何做统计分析感兴趣的人可以看看,毕竟Python的库也 ...

  4. scipy.stats与统计学:4个概率分布:N,chi2,F,t

    scipy.stats与统计学:4个概率分布:N,chi2,F,t   四个常用分布的概率密度函数.分布函数.期望.分位数.以及期望方差标准差中位数原点矩: 1,正态分布: from scipy.st ...

  5. 标准正态分布表(scipy.stats)

    0. 标准正态分布表与常用值 Z-score 是非标准正态分布标准化后的 x即 z=x−μσ" role="presentation">z=x−μσz=x−μσ 表 ...

  6. python scipy stats学习笔记

    from scipy.stats import chi2 # 卡方分布from scipy.stats import norm # 正态分布from scipy.stats import t # t分 ...

  7. 关于使用scipy.stats.lognorm来模拟对数正态分布的误区

    lognorm方法的参数容易把人搞蒙.例如lognorm.rvs(s, loc=0, scale=1, size=1)中的参数s,loc,scale, 要记住:loc和scale并不是我们通常理解的对 ...

  8. multivariate_normal 多元正态分布

    多元正态分布 正态分布大家都非常熟悉了,多元正态分布就是多维数据的正态分布,其概率密度函数为 上式为 x 服从 k 元正态分布,x 为 k 维向量:|Σ| 代表协方差矩阵的行列式 二维正态分布概率密度 ...

  9. Abnormal Detection(异常检测)和 Supervised Learning(有监督训练)在异常检测上的应用初探

    1. 异常检测 VS 监督学习 0x1:异常检测算法和监督学习算法的对比 总结来讲: . 在异常检测中,异常点是少之又少,大部分是正常样本,异常只是相对小概率事件 . 异常点的特征表现非常不集中,即异 ...

随机推荐

  1. MyEclipse 新手使用教程---图文详解

    引言 某天在群里看到有小伙伴问MyEclipse/Eclipse的一些使用问题,虽然在我看来,问的问题很简单,但是如果对于刚刚学习的人来说,可能使用就不那么友好了.毕竟我在开始使用MyEclipse/ ...

  2. 使用 Jaeger 完成服务间的链路追踪

    世上本没有路,走的人多了,便变成了路 -- 鲁迅     本次讨论的话题就是需要在各个服务之间踏出条"路",让问题有"路"可循. 至于为什么用 jaeger.. ...

  3. 大众美团服务链监控CAT

    github链接:https://github.com/dianping/cat CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户 ...

  4. 在centos7中python3的安装注意

    ---恢复内容开始--- 云主机的python是2.7有些不方便,故要更换3,看到官网有3.6的包,就下载了. wget https://www.python.org/ftp/python/3.6.3 ...

  5. Python并发编程之学习异步IO框架:asyncio 中篇(十)

    大家好,并发编程 进入第十章.好了,今天的内容其实还挺多的,我准备了三天,到今天才整理完毕.希望大家看完,有所收获的,能给小明一个赞.这就是对小明最大的鼓励了.为了更好地衔接这一节,我们先来回顾一下上 ...

  6. webpack4.0各个击破(8)—— tapable篇

    webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...

  7. Linux基础(Ubuntu16.04):安装vim及配置

    1.进入终端  Ctrl + Alt +T 出现终端窗口 2.输入命令: sudo apt-get install vim-gtk 3.验证是否成功 安装完vim后查看命令 vi tab键,就会关联出 ...

  8. asp.net引用System.Speech实现语音提示

    using System; using System.Speech.Synthesis; namespace testvoice { class Program { static void Main( ...

  9. vue 如何点击按钮返回上一页

    1,vue 如何点击按钮返回上一页呢? 这是vue挂载的范围html代码 <div @click="goOff()">返回</div> 下面是点击返回的方法 ...

  10. vue+axios 前端实现的常用拦截

    一.路由拦截使用 首先在定义路由的时候就需要多添加一个自定义字段requireAuth,用于判断该路由的访问是否需要登录.如果用户已经登录,则顺利进入路由,否则就进入登录页面,路由配置如下: cons ...