gpt4 book ai didi

python - n维数据的高斯KDE : leading minor of the array is not positive definite

转载 作者:行者123 更新时间:2023-12-05 05:05:28 27 4
gpt4 key购买 nike

我有两个 n 维数据子集 AB,我想知道,对于 B 中的每个样本A 周围的样本密度。

在 3 个维度上具有 5 个样本的示例数据集

A = np.array([[-2.44528668, -0.09326276, -1.06527892],
[-1.35144799, -1.45507518, -0.02096 ],
[-0.5788315 , -1.48932706, -0.28496559],
[-1.60224949, -0.76823424, -0.11548589],
[-1.15768561, -0.74704022, -0.14744463]])

B = np.array([[-1.84134663, -1.42036525, -1.38819347],
[-2.58165693, -2.49423057, -1.57609454],
[-0.78776371, -0.79168188, 0.21967791],
[-1.0165618 , -1.78509185, -0.68373997],
[-1.21764947, -0.43215885, -0.34393573]])

我尝试了以下操作

from scipy.stats import gaussian_kde

kernel = gaussian_kde(A)
densities = kernel(B)

但这引发了

LinAlgError: 2-th leading minor of the array is not positive definite

这个错误是什么意思,对于 B 中的每个样本,我如何从 A 中获取点的密度?

最佳答案

根据我收到的错误消息

kernel = gaussian_kde(A)
densities = kernel(B[0])

我发现 gaussian_kde 将每一列视为一个样本,将每一行视为第 n 维的坐标,因此我应该改用数组的转置。

所以为了得到我想要的结果,我应该这样做

kernel = gaussian_kde(A.T)
densities = kernel(B.T)

但我仍然不知道我收到的错误消息是什么意思。

关于python - n维数据的高斯KDE : leading minor of the array is not positive definite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60486956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com