2014-12-02 45 views
0

我有一個很大的用戶興趣列表(> 10k)。每個列表都相當長並且包含一些用戶興趣,例如, ['足球','拳擊','電影'..],並且因用戶而異。所以數據是非常高維的。計算高維數據相似度的最有效方法

現在,我想計算每個列表之間的成對相似度。其實,具體而言,對於某個列表,我想得到n個最相似的列表,其中n是任意的。我正在使用scikit進行此操作,到目前爲止,我只是將列表向量化並計算每個列表之間的餘弦相似度。可以理解,這似乎相當緩慢,並且不能很好地適應大而稀疏的數據集。使用類似kd-Tree或Ball-Tree的東西會更好嗎?

回答

0

稀疏的最有效方式數據和餘弦是倒排列表索引。

想一想文本搜索引擎。它完全符合你的需求。

+1

要麼是這個,要麼是隨機投影到kd樹變得有用的小空間上。 +1。 – 2014-12-03 11:20:07