Python 快速核密度估计(概率密度函数)

3

我正在寻找一种获取数据集核密度函数并绘制任意数据点的方法。使用Scipy统计模块,我得出了以下代码:

import numpy as np
import scipy.stats as st

def get_pdf(data):
    a = np.array(data)
    ag = st.gaussian_kde(a)
    x = np.linspace(0, max(data), max(data)*10)
    y = ag(x)
    return x, y

这样做可以得到预期的结果,但是当数据集规模较大时,性能非常差。

我发现 fastkde 是一种快速核密度估计的实现。但我无法找到一种像使用Scipy stats KDE一样使用它的方法。

有人能给我一些见解吗?

谢谢

1个回答

1
您可能正在寻找类似以下内容的东西:
from fastkde.fastKDE import pdf


def get_pdf(data):
    y, x = pdf(data)
    return x, y

请注意,通常情况下,fastKDE.pdf()返回pdf, axes(PDF和PDF的轴,类似于直方图的hist,bins)。
如果有多个输入变量,则axes变量是一个轴的列表,每个轴对应一个输入变量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接