2013-09-27 78 views
0

我有一套300.000左右的矢量,我想以某种方式进行比较,给出一个矢量我希望能够找到最接近的矢量,我想到了三种方法。矢量之间的测量距离

  • 简单的欧氏距离
  • 余弦相似
  • 使用内核(例如高斯)来计算格拉姆矩阵。
  • 将矢量视为离散概率分布(这使得 有意义)并计算一些散度测量。

我真的不明白什么时候做一个而不是另一个有用。我的数据有很多零元素。考虑到这一点,是否有一些一般的经验法则来确定三种方法中哪一种最好?

对不起,我不得不从某处开始...

谢谢!

回答

0

你的问题不太清楚,你是在寻找向量之间的距离度量还是一种有效地找到最近邻居的算法?

如果您的向量仅包含数字类型,例如双精度或整数,则可以使用诸如kd-tree之类的结构高效地找到最近邻居。 (因为你只是在d维空间中查看点)。其他方法见http://en.wikipedia.org/wiki/Nearest_neighbor_search

否则,选择距离度量和算法非常依赖于向量的内容。