在依赖点的距离函数下,有没有一种快速的方法来计算数据集中最近的点



我正在寻找一种(快速(方法,在依赖于(x,y(的距离函数下计算数据集中离给定点x最近的点y。

我的距离函数的形式是:d(x,y(=1/f(x,y(*||x-y|^2,其中||x||表示标准欧几里得范数。函数f(x,y(满足所有必要的性质,使得d(x,y(是距离测量,即正的、对称的,。。。

对于";正常的";距离函数我可以对数据本身进行一些变换,并使用一些k近邻方法。但对于这种情况,我找不到有用的东西。有人有主意吗?

现在,我正在使用Julia来实现。

只要d(x,y(是"凸";。

用";凸的";我的意思是,围绕P的等距点的曲线是凸的。例如,对于欧几里得,这是一个圆,对于曼哈顿/出租车距离,它是一个正方形。

这是必需的,因为这些索引通常将数据划分为正方形、矩形或半空间(kd-tree(,因此它们依赖于通过计算到边界矩形的角或边的距离来计算到一组点的最小距离。只要距离函数是凸的(或者至少不是凹的(,那么这些索引中的任何索引都应该有效。

最新更新