【问题标题】:Most efficient way to compute similarity on high-dimensional data计算高维数据相似度的最有效方法
【发布时间】:2015-01-30 18:36:08
【问题描述】:

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

现在,我想计算每个列表之间的成对相似度。实际上,具体来说,对于某个列表,我想获得 n 个最相似的列表,其中 n 是任意的。我为此使用 scikit,到目前为止,我只是对列表进行矢量化并计算每个列表之间的余弦相似度。可以理解的是,这似乎很慢,并且不能很好地扩展到大型但稀疏的数据集。使用 kd-Tree 或 Ball-Tree 之类的东西会更好地为我服务吗?

【问题讨论】:

    标签: scikit-learn data-mining similarity nearest-neighbor


    【解决方案1】:

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

    想想一个文本搜索引擎。它完全满足您的需求。

    【讨论】:

    • 要么是这个,要么是随机投影到 kd-trees 变得有用的较小空间。 +1。
    猜你喜欢
    • 1970-01-01
    • 2011-02-28
    • 2019-02-02
    • 2016-02-15
    • 2018-08-01
    • 2019-11-08
    • 2011-02-11
    • 2016-06-15
    • 1970-01-01
    相关资源
    最近更新 更多