我需要一个简单的核密度估计,固定带宽和高斯核。
唉,在scipy.stats.gaussian_kde
我只看到了自动带宽选择。就我看来,set_bandwidth
方法仅将自动选择的值与一些校正比率相乘。我只需要设置我想设置的带宽。
我不想将我手写的Python代码用于KDE:它的工作速度有点太慢了。
你不知道scipy.stats.gaussian_kde
的任何替换吗?
答案 0 :(得分:0)
在scipy.stats.gaussian_kde中,您可以为bw_method
选项提供标量。这将设置kde.factor
变量。 kde.factor
是协方差矩阵乘以的数字,因此它应与带宽相同。
答案 1 :(得分:0)
答案 2 :(得分:0)
您还可以在scikit-learn(sklearn)中尝试使用KDE: http://scikit-learn.org/stable/modules/density.html 它有各种不同的内核你可以尝试,并允许你直接设置带宽,但显然(!)没有自动带宽选择的方法。
答案 3 :(得分:0)
您可以在OpenTURNS中使用KernelSmoothing类。 Non parametric distribution fitting中提供了一个示例,理论是described here。有一个自动的多维带宽规则,但是带宽可以由用户设置。此外,该库还提供了Sheather和Jones的“等式求解”插件规则,该规则对于多峰分布和混合规则(比前者的CPU消耗少)有效。