将N维向量映射到一个点的方法

Way to mapping N dimensional vector to a point

我遇到映射问题,我需要将 N 维向量映射到一个 group/point,例如 [0,1....N-1] 到 1 | [1,2....N-1] 到 2.

问题是,现在我有一个接收维度向量和 return 点的函数,该点就是结果,我想避免调用该函数,我已经存储了所有结果在 table 中,问题是,我将删除该函数,现在我需要将新条目映射到现有点。

有什么方法可以将条目映射到正确的点?

有一些算法可以映射到正确的点吗?

有什么帮助或建议吗?

我已经看过这个话题了,但是我不确定希尔伯特曲线是否是解决方案,我需要更多地研究它。 Mapping N-dimensional value to a point on Hilbert curve

我将不胜感激。

将n维数据映射到一维数据称为投影。有很多方法可以将 n 维数据投影到较低维度,最著名的方法是 PCA、SVD 或使用径向基函数。如果你不再有你的投影方法,你可能无法投影另一个点,除非你有一个以前投影点的散列-table。如果你碰巧有完全相同的点,那么你可以将它映射到相同的点。但是,请注意投影不是一对一的,这意味着可能存在映射到较低维度中同一点的两个点。这种情况的一个例子是屏幕上的 3D 点投影,其中许多点可能会映射到屏幕上完全相同的点。结果,点的逆投影通常有歧义。关于您发送的关于希尔伯特曲线的link,这是将ND中的一个点投影到space填充曲线(SFC)上的一个点的通用方法,例如希尔伯特,皮亚诺等。这个网站在麻省理工学院有关于使用 SFC 降维的有趣内容: http://people.csail.mit.edu/jaffer/Geometry/MDSFC