我正在尝试使用fastKDE包(https://pypi.python.org/pypi/fastkde/1.0.8)在2D图中查找点的KDE。但是,我想了解KDE超出数据点的限制,并且无法弄清楚该如何做。
使用上面链接的网站上列出的代码;
#!python
import numpy as np
from fastkde import fastKDE
import pylab as PP
#Generate two random variables dataset (representing 100000 pairs of datapoints)
N = 2e5
var1 = 50*np.random.normal(size=N) + 0.1
var2 = 0.01*np.random.normal(size=N) - 300
#Do the self-consistent density estimate
myPDF,axes = fastKDE.pdf(var1,var2)
#Extract the axes from the axis list
v1,v2 = axes
#Plot contours of the PDF should be a set of concentric ellipsoids centered on
#(0.1, -300) Comparitively, the y axis range should be tiny and the x axis range
#should be large
PP.contour(v1,v2,myPDF)
PP.show()
我可以在数据限制内找到任意点的KDE,但是如何找到该点的KDE(0,300),而不必将其包含到var1和var2中。我不想用这个数据点来计算KDE,我想知道那一点上的KDE。
我想我真正想做的就是给fastKDE提供数据的直方图,以便我自己设置轴。我只是不知道这可能吗?
干杯
最佳答案
我也一直在尝试此代码,并遇到了相同的问题。我所做的(代替良好的N-D外推器)是从fastKDE返回的网格点构建KDTree(具有scipy.spatial),并找到距我要评估的点最近的网格点。然后,我在该点查找相应的pdf值(如果不完全为零,则在pdf网格的边缘附近应该很小)并相应地分配该值。
关于python - Python fastKDE超出了数据点的限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40756024/