2016-08-30 2 views
-2

Каковы необходимые модули для выполнения функции pdf_multivariate_gauss() в IPython?pdf_multivariate_gauss() function in Python

Я пытаюсь выполнить приведенный ниже код, но я получаю такие ошибки, как «Ошибка импорта» и «Ошибка имени».

Код:

import numpy as np 
from matplotlib import pyplot as plt 
from matplotlib.mlab import bivariate_normal 
import parzen_window_est 
import pdf_multivariate_gauss ######## ImportError ######## 
import operator 


from mpl_toolkits.mplot3d import Axes3D 

############################################## 
### Predicted bivariate Gaussian densities ### 
############################################## 


mu_vec = np.array([0,0]) 
cov_mat = np.array([[1,0],[0,1]]) 
x_2Dgauss = np.random.multivariate_normal(mu_vec, cov_mat, 10000) 
# generate a range of 400 window widths between 0 < h < 1 
h_range = np.linspace(0.001, 1, 400) 

# calculate the actual density at the center [0, 0] 
mu = np.array([[0],[0]]) 
cov = np.eye(2) 
actual_pdf_val = pdf_multivariate_gauss.pdf_multivariate_gauss(np.array([[0],[0]]), mu, cov) 
######## NameError ######### 

# get a list of the differnces (|estimate-actual|) for different window widths 
parzen_estimates = [np.abs(parzen_window_est.parzen_window_est(x_2Dgauss, h=1, center=[0, 0])) for i in h_range] 

# get the window width for which |estimate-actual| is closest to 0 
min_index, min_value = min(enumerate(parzen_estimates), key=operator.itemgetter(1)) 

IPython output

+0

Я думаю, что вы запутались с 'pdf_multivariate_gaus' там нет такого модуля в Python (насколько я знаю по крайней мере). Я мог бы предложить вам заглянуть в 'scipy.stats'. Может быть, вы взяли пример [form this] (http://stackoverflow.com/questions/23101977/trying-to-plot-multivariate-gaussian-dist-in-a-3d-plot-matplotlib-returns-an- em)? Функция определена в тексте, и вы можете попробовать ее использовать, если она дает результаты по вашему желанию. –

+0

Да, вы правы. В scipy.stats я нашел «multivariate_normal», а не «pdf_multivariate_gauss», и, как я протестировал в вашей ссылке (решении), относительная функция работает отлично. Спасибо! – wasilis

ответ

1

Насколько я могу сказать, что нет такой вещи, как pdf_multivariate_gauss (как уже отмечалось). Существует реализация питон этого в scipy, однако: scipy.stats.multivariate_normal

Можно было бы использовать его как это:

from scipy.stats import multivariate_normal 
mvn = multivariate_normal(mu,cov) #create a multivariate Gaussian object with specified mean and covariance matrix 
p = mvn.pdf(x) #evaluate the probability density at x