我正在分析权重表示“重要性”的GPS位置数据。这可以很容易地绘制为热图,例如在谷歌地图。
我想使用python数据堆栈对此进行分析,尤其是要查找内核密度估计的模式。

如何在python中计算KDE的模式?

具体地说,以https://scikit-learn.org/stable/auto_examples/neighbors/plot_species_kde.html中的示例为例,您将如何找到最有可能找到“ Bradypus variegatus”物种的位置?

最佳答案

让我们考虑一个获取kde-estimation的简单示例:

import numpy as np
from scipy.stats import gaussian_kde
from pylab import plt

np.random.seed(10)

x = np.random.rand(100)
y = np.random.rand(100)
kde = gaussian_kde(np.vstack([x, y]))
X, Y = np.meshgrid(np.linspace(0, 1, 100), np.linspace(0, 1, 100))
Z = kde(np.vstack([X.ravel(), Y.ravel()])).reshape(X.shape)

plt.contourf(X, Y, Z)
plt.show()


python - 在GPS数据中查找核密度估计的模式-LMLPHP

现在,我们可以获得坐标X和Y,其中Z取其最大值:

X.ravel()[np.argmax(Z.ravel())]

0.3535353535353536

Y.ravel()[np.argmax(Z.ravel())]

0.5555555555555556


在实践中,当估计发生概率最高的位置时,一些
物种,您不仅需要一个位置,还需要周围的一些区域。
在这种情况下,您可以选择所有位置,例如
大于所有可能概率值的90%,例如

Y.ravel()[Z.ravel() > np.percentile(Z, 90)]
X.ravel()[Z.ravel() > np.percentile(Z, 90)]


对于cited example,您可以尝试使用相同的方法来获得所需的结果。可能您需要调整阈值,例如选择75%而不是90%的值。

关于python - 在GPS数据中查找核密度估计的模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55824415/

10-12 18:29
查看更多