【问题标题】:Scipy multidimensional kernel density estimateScipy 多维核密度估计
【发布时间】:2014-01-13 13:30:34
【问题描述】:

我一直在尝试获取 30x30 阵列的核密度估计值。下面是一个简短的例子,

from scipy.stats import gaussian_kde

x = arange(-0.5,0.51,1/29.)
y = arange(-0.5,0.51,1/29.)
z = randn(30,30)

vec = vstack((x,y))

KDE = gaussian_kde(z.T)
KDE2 = KDE(vec)

这会产生以下错误,

ValueError: points have dimension 2, dataset has dimension 30

我在这里发现了一些其他帖子,其中建议在估算之前需要重新调整数据,但我不确定如何正确执行此操作。

任何帮助表示赞赏 D

【问题讨论】:

  • 您能否在这些帖子中提供建议?

标签: python scipy


【解决方案1】:

使用KDE = gaussian_kde(z.T),您正在对30 随机变量(检查KDE.n)进行核密度估计,每个变量的维度为30(检查KDE.d)。

如果您正在研究一些数据,则该数据是gaussian_kde() 的输入。

使用KDE(vec),然后您估计z 的内核密度。输入必须具有(30,)(30,N) 形状,其中30 是维度数KDE.d。请参阅文档here

用这些形状喂x,y 没有任何意义。示例here 应该可以帮助您入门。在该示例中,d=2n= 2000

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 2013-07-23
    • 2017-12-07
    • 2015-12-12
    • 1970-01-01
    • 2015-12-20
    • 2016-06-06
    • 2015-07-20
    • 1970-01-01
    相关资源
    最近更新 更多