【问题标题】:How to show the Bandwidth Matrix in Kernel Density Estimation?如何在核密度估计中显示带宽矩阵?
【发布时间】:2015-09-22 05:55:15
【问题描述】:

我正在使用 KDE 的 scipy 实现来查找 3 维数据 kde source 的密度估计。我想知道如何在 scipy.kde 中获取 kde 的带宽矩阵。对于 1D,它只是一个缩放器,但对于 3d,它假设是一个 3X3 矩阵。但我不知道如何输出矩阵。谁能帮忙谢谢!

import numpy as np
from scipy import stats

data = np.array([[1, 4, 3], [2, .6, 1.2], [2, 1, 1.2],
         [2, 0.5, 1.4], [5, .5, 0], [0, 0, 0],
         [1, 4, 3], [5, .5, 0], [2, .5, 1.2]])
data = data.T 
kde = stats.gaussian_kde(data)
minima = data.T.min(axis=0)
maxima = data.T.max(axis=0)
space = [np.linspace(mini,maxi,20) for mini, maxi in zip(minima,maxima)]
grid = np.meshgrid(*space)
coords = np.vstack(map(np.ravel, grid))
#Evaluate the KD estimated pdf at each coordinate
density = kde(coords)

【问题讨论】:

    标签: python scipy bandwidth kernel-density


    【解决方案1】:

    根据documentationkde.factor 应该给你带宽。您还应该重新阅读 kde.set_bandwidthkde.covariance_factor 的方法 - 这可能会澄清一些事情。 如果我正确地回忆了内核密度估计,那么带宽应该始终是浮点数,而不是高维数据的矩阵。

    【讨论】:

    • 这里在滑块 5-7 中说 multivariate kde H 是一个矩阵.. 我有什么遗漏吗?谢谢
    猜你喜欢
    • 2015-10-07
    • 2011-10-30
    • 2021-07-11
    • 2015-08-11
    • 2020-04-23
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 2017-05-09
    相关资源
    最近更新 更多