我面临着映射问题,我需要将N维向量映射到一个组/点,如[0,1 .... N-1]到1 | [1,2 .... N-1]到2。
问题是,现在我有一个函数,其中接收一个维度向量并返回一个点,那个点就是结果,我想避免调用该函数,我已将所有结果存储在一个表中,问题是的,我将删除该功能,现在我需要将新条目映射到现有点。有一些方法可以将条目映射到正确的点吗?
有一些算法可以映射到正确的点吗?
一些帮助或建议?
我已经看过这个话题,但我不确定Hilbert Curve是否是解决方案,我需要更多地研究它。 Mapping N-dimensional value to a point on Hilbert curve
我很感激。
答案 0 :(得分:0)
将n维数据映射到一维数据称为投影。有许多方法可以将n维数据投影到较低维度,最常见的是PCA,SVD或使用径向基函数。如果您不再使用投影方法,除非您拥有先前投影点的哈希表,否则您可能无法投影另一个点。如果您碰巧具有完全相同的点,则可以将其映射到同一点。但是,请注意投影不是一对一意味着可能存在两个点映射到较低维度中的同一点。这种情况的一个示例是在屏幕上投影3D点,其上许多点可以被映射到屏幕上的完全相同的点。结果,反投影点通常具有模糊性。关于您发送的关于希尔伯特曲线的链接,这是将ND中的点投影到空间填充曲线(SFC)上的点的一般方法,例如Hilbert,Peano等。麻省理工学院的这个网站有关于降维的有趣内容使用SFC: http://people.csail.mit.edu/jaffer/Geometry/MDSFC