在python的多元正态密度函数中传递二维数据?
Pass 2-dimensional data in the Multivariate normal density function of python?
我想计算二维数据的高斯 PDF,我正在尝试使用 scipy.stats.multivariate_normal
函数在 python 中执行此操作,但我不明白如何将数据传递给它?
是multivariate_normal
只用于分析n维的一维数据还是我也可以用于我的数据集?
data set-> X = [X1,X2....Xn]
其中每个
Xi=[x1 x2]
是二维的。
要计算密度函数,请使用对象 scipy.stats.multivariate_normal
的 pdf()
方法。第一个参数是你的数组 X
。接下来的两个参数是分布的均值和协方差矩阵。
例如:
In [72]: import numpy as np
In [73]: from scipy.stats import multivariate_normal
In [74]: mean = np.array([0, 1])
In [75]: cov = np.array([[2, -0.5], [-0.5, 4]])
In [76]: x = np.array([[0, 1], [1, 1], [0.5, 0.25], [1, 2], [-1, 0]])
In [77]: x
Out[77]:
array([[ 0. , 1. ],
[ 1. , 1. ],
[ 0.5 , 0.25],
[ 1. , 2. ],
[-1. , 0. ]])
In [78]: p = multivariate_normal.pdf(x, mean, cov)
In [79]: p
Out[79]: array([ 0.05717014, 0.04416653, 0.05106649, 0.03639454, 0.03639454])
我想计算二维数据的高斯 PDF,我正在尝试使用 scipy.stats.multivariate_normal
函数在 python 中执行此操作,但我不明白如何将数据传递给它?
是multivariate_normal
只用于分析n维的一维数据还是我也可以用于我的数据集?
data set-> X = [X1,X2....Xn]
其中每个
Xi=[x1 x2]
是二维的。
要计算密度函数,请使用对象 scipy.stats.multivariate_normal
的 pdf()
方法。第一个参数是你的数组 X
。接下来的两个参数是分布的均值和协方差矩阵。
例如:
In [72]: import numpy as np
In [73]: from scipy.stats import multivariate_normal
In [74]: mean = np.array([0, 1])
In [75]: cov = np.array([[2, -0.5], [-0.5, 4]])
In [76]: x = np.array([[0, 1], [1, 1], [0.5, 0.25], [1, 2], [-1, 0]])
In [77]: x
Out[77]:
array([[ 0. , 1. ],
[ 1. , 1. ],
[ 0.5 , 0.25],
[ 1. , 2. ],
[-1. , 0. ]])
In [78]: p = multivariate_normal.pdf(x, mean, cov)
In [79]: p
Out[79]: array([ 0.05717014, 0.04416653, 0.05106649, 0.03639454, 0.03639454])