【问题标题】:Python 3 - Scipy and KDEpyPython 3 - Scipy 和 KDEpy
【发布时间】:2021-02-06 12:49:19
【问题描述】:

我正在使用 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,类似于 scipy.stats.kde with pdf 方法。

【问题讨论】:

    标签: python-3.x numpy scipy gaussian


    【解决方案1】:

    您可以使用例如创建等距网格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)
    

    【讨论】:

    • 谢谢,但我得到了这个错误:ValueError: Shape of data and grid points must be the same.我不知道为什么?
    猜你喜欢
    • 2017-06-20
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2023-03-06
    • 2013-07-12
    相关资源
    最近更新 更多