Python-Scipy核密度估计平滑问题

Python-Scipy核密度估计平滑问题,python,scipy,kernel-density,Python,Scipy,Kernel Density,很抱歉,我问了一个很明显的问题,但我有点困惑,如何调整我能顺利使用KDE的程度。我的代码在python中类似于这样: kde = scipy.stats.gaussian_kde(c) P_0 = kde(3) P_c = kde(c) 其中c只是一列数字,我想用上面的数字做一个积分(这对于我现在的问题来说并不太重要)。对于如何在scipy中更改scott/silverman方法以允许过度/欠平滑,我有点困惑。您似乎想要调整参数。该链接包含简单的示例代码,我在此将其简化为最基本的元素: kde

很抱歉,我问了一个很明显的问题,但我有点困惑,如何调整我能顺利使用KDE的程度。我的代码在python中类似于这样:

kde = scipy.stats.gaussian_kde(c)
P_0 = kde(3)
P_c = kde(c)

其中c只是一列数字,我想用上面的数字做一个积分(这对于我现在的问题来说并不太重要)。对于如何在scipy中更改scott/silverman方法以允许过度/欠平滑,我有点困惑。

您似乎想要调整参数。该链接包含简单的示例代码,我在此将其简化为最基本的元素:

kde = stats.gaussian_kde(c)
kde.set_bandwidth(bw_method=.3)
P = kde(c)
因此,基本上,带宽是通过
kde.set_bandwidth(bw_method=X)
调用设置的,其中
X
通常是一个浮点数或方法
silverman
scott
之一。完整的描述实际上表明
bw\u方法

可以是“scott”、“silverman”、标量常量或可调用变量。如果是标量,它将直接用作kde.factor。如果是可调用的,则应将gaussian_kde实例作为唯一参数并返回标量


这是非常广泛的。您可以将浮点值(作为平滑参数)设置为param
bw\u method
。除此之外,还不清楚你想做什么。使用一些替代方法,交叉验证更容易使用(sklearn->随机和网格搜索;statsmodels->基于优化)。谢谢!这是一件奇怪的事,我不明白,但现在它有了意义!:)