很抱歉提出一个问题可能是一个非常明显的答案,但我对如何调整我可以顺利使用KDE的方式感到有些困惑。我的代码在python中看起来像这样:
kde = scipy.stats.gaussian_kde(c)
P_0 = kde(3)
P_c = kde(c)
其中c只是一列数字,我想与上面的内容进行整合(这对于我所遇到的问题不太重要)。关于如何在scipy中更改scott / silverman方法以允许稍微过度/不平滑,我有点困惑。
答案 0 :(得分:1)
您似乎想要调整set_bandwidth参数。该链接包含简单的示例代码,我将其简化为最基本的元素:
kde = stats.gaussian_kde(c)
kde.set_bandwidth(bw_method=.3)
P = kde(c)
基本上,带宽是通过kde.set_bandwidth(bw_method=X)
调用设置的,其中X
通常是浮点数或其中一种方法silverman
,scott
。完整描述实际上表明了bw_method
:
可以是'scott','silverman',标量常量或可调用。如果是标量,则将直接用作kde.factor。如果是可调用的,则应该将gaussian_kde实例作为唯一参数并返回标量。