【问题标题】:Calculate Cosine similarity without matrix with duplicate sum from coo_matrix to csr_matrix计算没有矩阵的余弦相似度,从 coo_matrix 到 csr_matrix
【发布时间】:2019-02-10 18:36:34
【问题描述】:

我想计算购买数据集的产品之间的余弦相似度。我有超过 100000 行(行 = 用户购买事件)和超过 80000 种产品。

为了避免使用pandas.crosstab 来制作数据集的格式:

>  user_id\item_id  1  2  3  4  ...   
>       1         | 1  1  0  0
>       2         | 0  1  0  0
>       3         | 1  0  1  0
>       4         | 0  0  0  0
>       5         | 0  0  1  0
>       ...
> 
> Matrix: Whether a user purchased an item or not

我将购买数据集转换为scipy.coo_matrix,并认为我必须随后执行tocsr() 来进行产品之间的标准化和相似性计算,但发现当我们将coo_matrix 转换为csr_matrix 时,它总和重复项(我不想发生这种情况,我的矩阵中只需要 1 和 0)。

有没有办法解决这个问题并计算余弦相似度?

【问题讨论】:

    标签: python scipy sparse-matrix cosine-similarity


    【解决方案1】:

    作为csr_matrix 支持项目索引,您可以使用以下一个衬垫将大于一的所有内容转换为一

    X[X > 1] = 1
    

    【讨论】:

      猜你喜欢
      • 2019-04-07
      • 1970-01-01
      • 2014-03-25
      • 2016-10-22
      • 2019-04-22
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 2015-07-17
      相关资源
      最近更新 更多