2013-09-27 118 views
0

我有一套300.000左右的矢量,我想以某種方式進行比較,給出一個矢量我希望能夠找到最接近的矢量,我想到了三種方法。矢量之間的測量距離

  • 簡單的歐氏距離
  • 餘弦相似
  • 使用內核(例如高斯)來計算格拉姆矩陣。
  • 將矢量視爲離散概率分佈(這使得 有意義)並計算一些散度測量。

我真的不明白什麼時候做一個而不是另一個有用。我的數據有很多零元素。考慮到這一點,是否有一些一般的經驗法則來確定三種方法中哪一種最好?

對不起,我不得不從某處開始...

謝謝!

回答

0

你的問題不太清楚,你是在尋找向量之間的距離度量還是一種有效地找到最近鄰居的算法?

如果您的向量僅包含數字類型,例如雙精度或整數,則可以使用諸如kd-tree之類的結構高效地找到最近鄰居。 (因爲你只是在d維空間中查看點)。其他方法見http://en.wikipedia.org/wiki/Nearest_neighbor_search

否則,選擇距離度量和算法非常依賴於向量的內容。