我通过余弦相似性将大型稀疏向量聚类。我没有使用标准化的聚类算法,而是亲自编写了实现。我认为我可能没有正确使用sklearn.metrics.pairwise.cosine_similarity
,但是经过大量调试后我仍然看不到问题。
更具体地说,我有两个向量:
>>> v1
<1x1099511627776 sparse matrix of type '<class 'numpy.int64'>'
with 227 stored elements in Compressed Sparse Row format>
>>> v2
<1x1099511627776 sparse matrix of type '<class 'numpy.int64'>'
with 48 stored elements in Compressed Sparse Row format>
>>> simm = cosine_similarity(v1, v2, dense_output=False) # hangs
或者,我可以在两个向量中创建非零项的字典,并手动计算出余弦相似度。
我认为部分问题可能在于我选择的数据表示形式。我试图找到最快的方法来计算余弦相似度,而且我不明白为什么scikit操作会无限期地挂在两个向量上。我使用CSR矩阵不正确吗?这项手术不是为了接管他们吗?