繁体   English   中英

Python函数+用于奇怪的行为

[英]Python function+for strange behaviour

我正在尝试实现多元高斯pdf,

def multi_var_prob(x,mu,cov):
#Multi variate gaussian
  print x
  print (np.power(1/(2*np.pi),(len(x)*.5))/np.sqrt(np.abs(np.linalg.det(cov))))*np.exp(np.dot(np.matrix.transpose(x-mu),np.dot(np.linalg.inv(cov),(x-mu))))
  return((np.power(1/(2*np.pi),(len(x)*.5))/np.sqrt(np.abs(np.linalg.det(cov))))*np.exp(np.dot(np.matrix.transpose(x-mu),np.dot(np.linalg.inv(cov),(x-mu)))))

def get_multivar_pdf(y,mu,cov):

  for t in y:
    print multi_var_prob((np.matrix.transpose(t)),mu,cov)
  return   

现在从命令行

 >> multi_var_prob(np.matrix('2;4;5'),np.matrix('0;0;6'),np.matrix([[.3,.67,8],[2,3,8], [2,.05,2]]))


[[2]
[4]
[5]]
[[ 0.5179723]]
matrix([[ 0.5179723]])

给出小于1的正确概率

现在,当我使用

  >>> l=np.matrix([[1,2,4],[3,4,5],[2,4,5]])
  >>> print get_multivar_pdf(l,np.matrix('0;0;6'),np.matrix([[.3,.67,8],[2,3,0],            [2,.05,2]]))

  [[1]
  [2]
  [4]]
 [[ 0.04517737]]
 [[ 0.04517737]]
  [[3]
  [4]
  [5]]
 [[ 1.13453039]]
 [[ 1.13453039]]
  [[2]
  [4]
  [5]]
 [[ 2.61451178]]
 [[ 2.61451178]]
 None

它的概率被奇怪地加起来并大于1 ...但是持续的矩阵是
一样。请帮助。我使用Python 2.7

  • 为概率密度的公式中使用multi_var_prob中缺少呼叫到-0.5 np.exp

     def multi_var_prob(x, mu, cov): # Multivariate gaussian result = ( (np.power(1 / (2 * np.pi), (len(x) * .5)) / np.sqrt(np.abs(np.linalg.det(cov)))) * np.exp(-0.5 * np.dot( np.matrix.transpose(x - mu), np.dot(np.linalg.inv(cov), (x - mu))))) return result 
  • 协方差矩阵应为正定的 正定(实)矩阵是对称的,并且具有所有正特征值。 您不:

     In [122]: import numpy.linalg as LA In [123]: cov = np.matrix([[.3, .67, 8], [2, 3, 8], [2, .05, 2]]) In [124]: cov Out[124]: matrix([[ 0.3 , 0.67, 8. ], [ 2. , 3. , 8. ], [ 2. , 0.05, 2. ]]) In [125]: LA.eigvals(cov) Out[125]: array([-2.86046758, 5.96319816, 2.19726942]) 

    请记住,协方差矩阵中的元素表示变量的协方差,我们将它们中的两个称为XY 由于cov(X, Y) = cov(Y, X) ,协方差矩阵应该是对称的。

  • 还要注意, multi_var_prob返回的是概率密度 ,而不是概率。 整个域上的概率密度之和等于1,但是概率密度函数在任何给定点都可能轻易大于1。 作为一个极端的例子,考虑狄拉克增量函数 它在一点上基本上是无限的,在其他任何地方都为零,但其积分(曲线下的面积)为1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM