Я пытаюсь использовать класс scipy.stats.gaussian_kde
класс для сглаживания некоторые дискретные данные, собранные с информацией о широте и долготе, так что в конечном итоге они выглядят как нечто похожее на контурную карту, где высокие плотности являются пиком, а низкие плотности - долиной.
Мне трудно помещение двумерного набора данных в класс gaussian_kde
. Я поигрался, чтобы понять, как это работает с одномерными данными, поэтому я подумал, что 2-мерное будет чем-то вроде:
from scipy import stats
from numpy import array
data = array([[1.1, 1.1],
[1.2, 1.2],
[1.3, 1.3]])
kde = stats.gaussian_kde(data)
kde.evaluate([1,2,3],[1,2,3])
, где говорится, что у меня есть 3 точки в [1.1, 1.1], [1.2, 1.2], [1.3, 1.3]
. и я хочу получить оценку плотности ядра, используя от 1 до 3, используя ширину 1 по осям x и y.
При создании gaussian_kde он продолжает выдавать мне эту ошибку:
raise LinAlgError("singular matrix")
numpy.linalg.linalg.LinAlgError: singular matrix
Просмотр исходного кода ] gaussian_kde
, я понимаю, что то, как я думаю о том, что означает набор данных, полностью отличается от того, как вычисляется размерность, но я не смог найти ни одного примера кода, показывающего, как многомерные данные работают с модулем. Может ли кто-нибудь помочь мне с некоторыми примерами способов использования gaussian_kde
с многомерными данными?