繁体   English   中英

有没有一种方法可以计算一个稀疏向量和矩阵之间的相似度?

[英]Is there a way to calculate similarity between one sparse vector and matrix?

如何计算一个稀疏向量和一个矩阵(一个稀疏向量的数组)之间的(例如,余弦)相似度?
是否可以使用scikit-learn,scipy,numpy等? 如果可能的话,相似度指标应易于更改。

如果您对计算余弦相似度感兴趣,可以使用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']因为不支持其他指标来处理稀疏指标输入。


您可以进一步参考的文档: 成对度量,亲和力和内核

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM