我想實現一個多元高斯PDF Python函數+,用於奇怪的行爲
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 ... ...但在持續的矩陣是
same.Please help.I使用Python 2.7
請指出愚蠢的錯誤,我一直做......這將不勝感激 – user3443615
什麼粗糙輸出你期待? –
對於給定的向量矩陣像'l'這個程序中它應該打印出相應行的正確概率 – user3443615