【发布时间】:2013-09-14 16:56:14
【问题描述】:
我可以使用scipy 库执行高斯核密度估计,只需运行
from scipy import stats
kernel = stats.gaussian_kde(data)
但我想将协方差固定为某个预定义的值并使用它执行 KDE。有没有一种简单的方法可以在 python 的帮助下实现这一点,而无需明确编写优化过程(如果没有提供此类功能的现有库,我会这样做,但我希望避免它)。
【问题讨论】:
-
您能否详细说明在这种情况下您所说的“协方差”是什么意思?通常,对于密度估计,所涉及的高斯函数用作“窗口”函数,并且该窗口的“协方差”(实际上是一维情况下的带宽参数)只是为了控制窗口的响应如何下降为被测点的距离函数。我不熟悉任何试图使用特定的多元协方差结构来实现窗口衰减效果的 KDE 程序。
-
我还猜想,在实践中最复杂的这种“协方差”将是一个对角矩阵,您只需为数据的每个维度使用不同的带宽参数。 也许(这可能非常脆弱)您可以对数据的主要方向进行某种 PCA 分解并将不同的带宽放在那里,但我认为除非数据方向有很大不同的尺度,在这种情况下,你最好先对输入进行评分,然后再进行 KDE,并使用一个带宽。
-
@EMS,如果您要拟合多元高斯,则可以有协方差。我怀疑这就是 OP 所要求的。
-
我不认为问题是关于拟合高斯,但我可能错了。
标签: machine-learning python kernel