如何x在 Scipy 中计算多元高斯在某一点的概率?
我试过
probability = multivariate_normal(x, mean, v)
Run Code Online (Sandbox Code Playgroud)
其中x、mean、v都是大小正确的向量,但我得到:
probability = multivariate_normal(x, mean, v )
TypeError: __call__() takes at most 3 arguments (4 given)
Run Code Online (Sandbox Code Playgroud)
首先是错误。当您调用时,multivariate_normal您实际上是在调用 __call__该类multivariate_normal_gen(源代码位于第 555 行)。因为它是一个方法,所以将自身作为self参数,并且始终是第一个参数。当您再添加三个参数时,参数总数为四个。
pdf关于您的问题,您通过调用来评估给定点的概率密度函数multivariate_normal。例子:
from scipy.stats import multivariate_normal
import numpy as np
x = np.array([[1,2], [3,4]])
multivariate_normal.pdf(x, mean=[0, 1], cov=[5, 2])
Run Code Online (Sandbox Code Playgroud)
打印出:
Out[44]: array([ 0.0354664 , 0.00215671])
Run Code Online (Sandbox Code Playgroud)