python中不具备np_Python中np.random.multivariate_normal问题?

首先看一下一维正太分布的公式:

其中μ为均值,σ为标准差。正太分布的草图如下图所示。

再看numpy提供的函数的参数:

multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)

在一维正太分布中,第一个参数mean就是这里的均值μ,第二个参数cov就是方差【公式Cov(X,X)=D(X),这里只是猜测】,第三个参数size就是生成的正态分布矩阵的维度

如下图,均值设置为3,方差为1,然后取100个点生成一维矩阵Y来绘制散点图,打印出方差接近设定的值1

可以看到散点图如下图,图中可以看出,100个散点的均值大致是3(看Y轴)

再看二维正太分布的公式:

这里μ1,μ2分别为变量X,Y的均值;σ1,σ2为分别为变量X,Y的标准差。草图如下。

再看协方差的定义,以及协方差与期望值的关系

函数multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)在二维正太分布中,

mean是变量X和Y的均值,它的维度为一维。

cov是一个协方差矩阵,它的组成如下,在tensorflow中一般设置cov(x,y)=cov(y,x)=0

size表示生成的正态分布矩阵的维度,如size维度为(1,3,2),那么生成的正太分布矩阵维度为:1*3*2*len(mean)

其他几个参数见链接

接着设置mean=[3,0],cov=diag(1,1),使用300个点绘制散点图,打印出X和Y的方差均接近于设定的值1

可以看到散点图中,X和Y的均值大致上分别是3和0

可依此类推至多维正太分布中。

由于初学深度学习,也是费了一番功夫百度找到一些资料,再加上代码验证所写,难免会有各种错误。错误之处还请指出,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值