python计算余弦相似度最高的_在 python 中计算余弦相似度给定的稀疏矩阵数据,最快的方法是?_pandas_酷徒编程知识库...

以下方法比scipy.spatial.distance.pdist快大约30倍。 它在大矩阵上运行非常快(假设你有足够的内存)

关于稀疏的优化问题,请参阅下面的讨论。# base similarity matrix (all dot products)

# replace this with A.dot(A.T).todense() for sparse representation

similarity = numpy.dot(A, A.T)

# squared magnitude of preference vectors (number of occurrences)

square_mag = numpy.diag(similarity)

# inverse squared magnitude

inv_square_mag = 1 / square_mag

# if it doesn't occur, set it's inverse magnitude to zero (instead of inf)

inv_square_mag[numpy.isinf(inv_square_mag)] = 0

# inverse of the magnitude

inv_mag = numpy.sqrt(inv_square_mag)

# cosine similarity (elementwise multiply by inverse magnitudes)

cosine = similarity * inv_mag

cosine = cosine.T * inv_mag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值