>>>import numpy
>>>vec1=[[1,1,1],[2,2,2]]
>>>vec2=[[2,2,2],[1,1,1]]
>>>vec1=numpy.array(vec1)
>>>vec2=numpy.array(vec2)
>>>vec1
array([[1, 1, 1],
[2, 2, 2]])
>>>vec2
array([[2, 2, 2],
[1, 1, 1]])
>>>dist = numpy.sqrt(numpy.sum(numpy.square(vec1 - vec2)))
>>>dist
2.4494897427831779
>>>numpy.linalg.norm(vec1-vec2)
2.4494897427831779
余弦相似度:
>>>vec1
array([[1, 1, 1],
[2, 2, 2]])
>>>vec2
array([[2, 2, 2],
[1, 1, 1]])
>>>num=float(numpy.sum(vec1*vec2))
>>>num
12.0
>>>denom=numpy.linalg.norm(vec1)*numpy.linalg.norm(vec2)
>>>cos=num/denom
>>>denom
15.000000000000002
>>
欧氏距离与余弦相似度在向量计算中的应用

本文介绍了如何使用numpy计算两个向量间的欧氏距离和余弦相似度,并探讨了它们在机器学习中计算相似度的区别。欧氏距离衡量的是点之间的距离,而余弦相似度关注的是向量之间的夹角。文章通过实例解释了两种方法的计算过程和实际意义,展示了它们在判断变化趋势和价格相似度等方面的应用。
最低0.47元/天 解锁文章
1848

被折叠的 条评论
为什么被折叠?



