Използвам KD-оценка с персонализиран показател. Метриката очевидно е по-бавна от вграденото евклидово разстояние, но работи добре. Когато правите
kde=KernelDensity(...)
kde.fit(X)
Получавам резултати за разумен период от време.
Когато след това изчисля
surface=np.exp(kde.score_samples(meshgrid))
където mehsgrid е numpy масив с размер (около) 64000x2, kde изчислява разстоянието до всяка точка в мрежата. Изглежда основно не разбирам защо това е необходимо... Плътността вече е изчислена с метода .fit() и score_samples "трябва" просто да оцени плътността на всяка точка в мрежата - нали? Пренебрегвам ли нещо?
Когато правя всички изчисления с вградената евклидова метрика, изчислението е доста бързо, няма намек, че .score_samples ще повтори милиони точки...
Всеки намек се оценява.