python 余弦距离_距离公式汇总以及Python实现

这篇博客介绍了Python中几种常见的距离计算方法,包括余弦距离、欧氏距离、曼哈顿距离、明可夫斯基距离、切比雪夫距离和汉明距离。通过实例展示了如何利用numpy和scipy库进行计算,并提供了相应的公式和程序实现。
摘要由CSDN通过智能技术生成

1、余弦距离:

描述:余弦夹角也可以叫余弦相似度。几何中夹角余弦可用来衡量两个向量方向的差异,机 器学习中借用这一概念来衡量向量样本之间的差异。余弦的取值范围[-1,1],求的两个向量 的夹角并得出夹角对应的余弦值,次余弦值就可以用来表征这两个向量的相似性。夹角越小, 趋近于零度,余弦值越接近于 1,方向也就更吻合。反之,夹角越大,余弦值越接近于-1.特 别的:余弦值为 0 两向量垂直。可以看出,余弦相似度只与方向有关。

公式:

在二维空间中向量 A(x1,y1),B(x2,y2)的夹角余弦公式为:

程序实现:

1 importnumpy as np2 from scipy.spatial.distance importpdist3 from numpy import *

4

5 #余弦距离

6 defcosDistance():7 vec1 = [1,2,3,4]8 vec2 = [5,6,7,8]9

10 print("vec1 =",vec1)11 print("vec2 =",vec2)12

13 #方法一:根据公式

14 dist1 = np.dot(vec1,vec2) / (np.linalg.norm(vec1) *np.linalg.norm(vec2))15 print ("余弦测试结果 dist1 ="+str(dist1))16

17 #方法二:根据scipy库求解

18 Vec =np.vstack([vec1,vec2])19 dist2 = 1 - pdist(Vec,'cosine')20 print("余弦测试结果 dist2 ="+str(dist2))

2、欧氏距离:

描述:欧里几得距离或欧几里得度量是空间两个点的直线距离。较早的文献称毕达哥拉斯度 量。

公式:

推倒到n维向量:

程序实现:

1 importnumpy as np2 from scipy.spatial.distance importpdist3 from numpy import *

4 #欧几里得距离

5 defoljdDistance():6 vec1 = np.mat([1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值