2014-12-02 122 views
0

我有一个很大的用户兴趣列表(> 10k)。每个列表都相当长并且包含一些用户兴趣,例如, ['足球','拳击','电影'..],并且因用户而异。所以数据是非常高维的。计算高维数据相似度的最有效方法

现在,我想计算每个列表之间的成对相似度。其实,具体而言,对于某个列表,我想得到n个最相似的列表,其中n是任意的。我正在使用scikit进行此操作,到目前为止,我只是将列表向量化并计算每个列表之间的余弦相似度。可以理解,这似乎相当缓慢,并且不能很好地适应大而稀疏的数据集。使用类似kd-Tree或Ball-Tree的东西会更好吗?

回答

0

稀疏的最有效方式数据和余弦是倒排列表索引。

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

+1

要么是这个,要么是随机投影到kd树变得有用的小空间上。 +1。 – 2014-12-03 11:20:07