Давайте рассмотрим простой пример получения kde-оценки:
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()
![enter image description here](https://i.stack.imgur.com/PzFmF.png)
Теперь мы можем получить координаты 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)]
В случае приведенный пример ,Вы можете попробовать тот же подход, чтобы получить желаемый результат.Возможно, вам потребуется настроить пороговое значение, например, выберите 75-процентиль вместо 90-процентиля.