我使用的是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)