Я ищу способ получить функцию плотности ядра набора данных и построить ее для произвольных точек данных. Используя модуль статистики Scipy, я получил следующий код:
import numpy as np
import scipy.stats as st
def get_pdf(data):
a = np.array(data)
ag = st.gaussian_kde(a)
x = np.linspace(0, max(data), max(data)*10)
y = ag(x)
return x, y
Это дает ожидаемый результат, но при очень большом размере набора данных производительность очень низкая.
Я нашел fastkde
как реализацию для быстрой оценки плотности ядра. Но я не мог придумать способ использовать это так же, как я использовал статистику Scipy KDE.
Может кто-нибудь подсказать мне?
Спасибо