【问题标题】:Pass 2-dimensional data in the Multivariate normal density function of python?在python的多元正态密度函数中传递二维数据?
【发布时间】:2017-09-18 16:55:53
【问题描述】:

我想计算二维数据的高斯 PDF,我正在尝试在 python 中使用scipy.stats.multivariate_normal 函数来执行此操作,但我不明白如何将我的数据传递给它?

multivariate_normal 仅用于分析 n 维的一维数据还是我也可以用于我的数据集?

data set-> X = [X1,X2....Xn] 

每个地方

Xi=[x1 x2] 

是二维的。

【问题讨论】:

    标签: python machine-learning scipy computer-vision gaussian


    【解决方案1】:

    要计算密度函数,请使用对象scipy.stats.multivariate_normalpdf() 方法。第一个参数是你的数组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])
    

    【讨论】:

      猜你喜欢
      • 2013-01-01
      • 2018-03-05
      • 2012-07-21
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多