【问题标题】:Is there a way to calculate similarity between one sparse vector and matrix?有没有办法计算一个稀疏向量和矩阵之间的相似度?
【发布时间】:2016-09-29 19:23:12
【问题描述】:

如何计算一个稀疏向量和一个矩阵(即稀疏向量数组)之间的(例如余弦)相似度?
这可以使用 scikit-learn、scipy、numpy 等吗?如果可能,相似度指标应该很容易改变。

【问题讨论】:

    标签: python numpy scipy scikit-learn sparse-matrix


    【解决方案1】:

    如果您对计算余弦相似度感兴趣,可以使用 sklearn 中的cosine-similarity 度量功能来完成,如果输入是矩阵形式,它会返回距离矩阵。

    插图:

    import numpy as np
    from sklearn.metrics.pairwise import pairwise_distances
    
    mat_1 = np.matrix([[1,2,3],[3,4,5]])
    vec_1 = (2, 3, 5)
    # Make sure the dimensions of the vector and matrix are equal
    >>>print pairwise_distances(mat_1, vec_1, metric = 'cosine')
    [[ 0.00282354]
    [ 0.01351234]]
    

    注意:如果您打算更改距离度量,您可以通过将适当的名称放置在度量参数中来实现。但是,如果您的输入包含稀疏矩阵,则您只能使用指标 - ['cityblock', 'cosine', 'euclidean', 'l1', 'l2', 'manhattan'],因为不支持其他指标来处理稀疏指标输入。


    您可以进一步参考的文档:Pairwise metrics, Affinities and Kernels

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 2021-08-28
      相关资源
      最近更新 更多