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

时间:2016-02-24 02:51:22

标签: python scipy statistics

在python中,有几种做核密度估计的方法,我想知道它们之间的差异,并做出一个很好的选择。

他们是:

  1. scipy.stats.gaussian_kde, 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

  4. 我认为我们可以与1d, 2dbandwidth selectionImplementationperformance进行比较

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

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

    我查看scipy.kde,似乎有一个带宽选择方法。

2 个答案:

答案 0 :(得分:1)

" sklearn方式"选择模型超参数是网格搜索,通过交叉验证来选择最佳值。请查看http://mark-kay.net/2013/12/24/kernel-density-estimation/,了解如何将其应用于核密度估算。

答案 1 :(得分:1)

看起来Kernel Density Estimation in Python正是您所需要的:

  

在这里,我将专注于比较Python中当前可用的KDE的实际实现。 (...)我在SciPy / Scikits堆栈中了解的四个KDE实现:

     
      
  • 在SciPy中:gaussian_kde。
  •   
  • 在统计模型中:KDEUnivariate和KDEMultivariate。
  •   
  • 在Scikit学习中:KernelDensity。
  •   
     

每个都有优点和缺点,并且每个都有其适用范围。

enter image description here