Python 3 - Scipy and KDEpy



我使用的是python-3.x,我想使用KDEpy评估所提供的一组点上的估计pdf,但我做不好,

我使用了scipy.stats.gaussian_kde,它很好,当我应用pdf方法时效果很好,因为我对在提供的一组点上评估估计的pdf感兴趣

所以问题是,如果我使用KDEpy FFTKDE ,如何从scipy.stats.kde中获得相同的结果

这里有一个小例子来描述我正在寻找的东西:

from scipy.stats.kde import gaussian_kde
data = np.array([[-1.84134663, -1.42036525, -1.38819347],
[-2.58165693, -2.49423057, -1.57609454],
[-0.78776371, -0.79168188,  0.21967791],
[-1.0165618 , -1.78509185, -0.68373997],
[-1.21764947, -0.43215885, -0.34393573]]) 

my_pdf = gaussian_kde(data.T, bw_method = None  )    
my_pdf1.pdf(data.T)
print (my_pdf1.pdf(data.T)) # here we will Evaluate the estimated pdf on a provided set of points

结果是:

[0.24234078 0.22071922 0.23802877 0.22474656 0.25402297]

如何使用KDEpy FFTKDE获得相同的结果

from KDEpy import FFTKDE
my_pdf2 = FFTKDE(kernel="gaussian").fit(data.T).evaluate()

但我不知道如何在提供的一组点上评估估计的pdf,类似于使用pdf方法的scipy.stats.kde

您可以使用例如numpy.linspace创建等距网格,并将其传递给.evaluate():

from KDEpy import FFTKDE
import numpy as np
x_grid = np.linspace(-10, 10, num=2**10)
my_pdf = FFTKDE(kernel="gaussian").fit(data.T).evaluate(x_grid)

最新更新