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