Scipy:不同核密度估计方法的比较?

2024-06-17 08:15:01 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,有几种方法可以进行内核密度估计,我想知道它们之间的区别,并做出一个好的选择。在

它们是:

  1. 在scipy.stats.高斯分布, http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html

  2. 在sklearn.neighbors.KernelDensity,http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KernelDensity.html#sklearn.neighbors.KernelDensity

  3. statsmodel公司 http://statsmodels.sourceforge.net/stable/nonparametric.html#kernel-density-estimation

我想我们可以和1d, 2dbandwidth selectionImplementation和{}相比较

我只有sklearn.neighbors.KernelDensity的经验。我知道的是:

速度通常很快,可以在多维上执行,但在决定带宽方面没有帮助。在

我看了scipy.kde,好像有一个带宽选择方法。在


Tags: 方法orghttphtmlstatsneighborsscipysklearn
2条回答

选择模型超参数的“sklearn方法”是网格搜索,通过交叉验证来选择最佳值。看看http://mark-kay.net/2013/12/24/kernel-density-estimation/一个如何将其应用于核密度估计的示例。在

看起来文章Kernel Density Estimation in Python正是您要找的:

I'm going to focus here on comparing the actual implementations of KDE currently available in Python. (...) four KDE implementations I'm aware of in the SciPy/Scikits stack:

  • In SciPy: gaussian_kde.
  • In Statsmodels: KDEUnivariate and KDEMultivariate.
  • In Scikit-learn: KernelDensity.

Each has advantages and disadvantages, and each has its area of applicability.

enter image description here

相关问题 更多 >