问题描述
我的问题与估计互信息有关(在 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 (将#修改为@)