R^d 中点的 k-NN定义联合空间

问题描述

我的问题与估计互信息有关(在 Python 中),使用来自两个集合的许多大向量。 我正在使用 k-NN(应用 ANN) 来使用 Kraskov 等。 al 定义。我知道有一些使用 cKDTree 的存储库。尽管如此,他们总是有使用来自 R^1 的点的例子。所以,我试图扩展定义,但我无法定义联合空间(对于联合熵),因为当点在 R^d 中时我不知道如何定义它。

更多细节:

他们通常在 R^1 中有两组点,假设每组有 1000 个元素,例如x=[[3.1],[4.2],...,[1.0]]y=[[0.1],[0.3],[1.2]],当它们计算联合空间时,会创建一个新对象 js=[[3.1,0.1],[4.2,0.3],[1.0,1.2]]。然后这个空间用于创建索引(cKDTree),使用这些新点完成查询:

tree = scipy.spatial.cKDTree(js)
dvec = [tree.query(point,k+1,p=float('inf'))[0][k] for point in js]

我的问题是:

1.在 R^1 的那个例子中,他们是否分别计算每个点与 x 和 y 索引的距离? 即取 js[0] 3.1 和 0.1 之间的距离?我需要 dvec,因为据我所知,我需要 dvec 来计算 avgdigamma

更重要的是:

2.当点来自 R^d 时,我如何编写 js? 我试过:js=[[[3.1,],[0.1,]],[[4.2,[0.3,[[1.0,[1.2,]]]cKDTree 抱怨说数据必须是 2 维我是否应该尝试做这样的事情js=[[3.1,0.1,0.3,1.2,]] 将被视为联合空间dvec 将是3.1,和 0.1,?

如果我需要更清楚,请告诉我

提前谢谢各位。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)