关于距离计算的总结.doc

上传人:白大夫 文档编号:3388814 上传时间:2019-08-20 格式:DOC 页数:3 大小:18KB
返回 下载 相关 举报
关于距离计算的总结.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《关于距离计算的总结.doc》由会员分享,可在线阅读,更多相关《关于距离计算的总结.doc(3页珍藏版)》请在三一文库上搜索。

1、关于距离计算的总结距离计算在自然语言处理中得到广泛使用,不同距离计算方式应用与不同的环境,其中也产生了很多不同的效果。1 余弦距离余弦夹角也可以叫余弦相似度。集合中夹角可以用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。余弦取值范围为-1,1。求得两个向量的夹角,并得出夹角对应的余弦值,词余弦值就可以用来表示这两个向量的相似性。夹角越小,趋近于0度,余弦值越接近于1,它们的方向就更加吻合,即更加相似。当两个向量的方向完全相反时,夹角的余弦取最小值-1。当余弦值为0时,两向量正交,夹角为90度。因此可以看出,余弦相似度于向量的幅值无关,于向量的方向相关。公式描述:Py

2、thon代码实现:import numpy as np# np.dot(vec1,vec2) 量向量(数组):两个数组的点积,即元素对应相乘后求和# np.linalg.norm(vec1):即求vec1向量的二范数(向量的模)vec1 = 1,2,3,4vec2 = 5,6,7,8dist1 = np.dot(vec1, vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2)print(余弦距离测试结果为:t+str(dist1)2 欧氏距离欧几里得距离即欧几里得空间中两点间的直线距离。Python实现:import numpy as npvec1

3、= np.mat(1,2,3,4) # 生成numpy矩阵vec2 = np.mat(5,6,7,8)# 根据公式求解1dist1 = np.sqrt(np.sum(np.square(vec1 - vec2)print(欧式距离测试结果是:t+ str(dist1)dist2 = np.sqrt(vec1-vec2)*(vec1-vec2).T)# 根据公式求解2print(欧式距离测试结果是:t+ str(dist2)3 曼哈顿距离曼哈顿距离也成为城市街区距离。用来表示两个点在标准坐标系上的绝对轴距之和,即从一个路口到另外一个路口,驾驶距离不是两点之间的直线距离。Python实现impor

4、t numpy as npvec1 = np.mat(1,2,3,4)vec2 = np.mat(6,7,8,9)dist = np.sum(np.abs(vec1 - vec2)print(曼哈顿距离测试结果是:t+str(dist)4 明可夫斯基距离明氏距离又叫明可夫斯基距离,是欧氏空间中的一种测度,被看作欧氏距离和曼哈顿距离的一种推广。当p=1时,就是曼哈顿距离当p=2时,就是欧氏距离当p=3时,就是切比雪夫距离python实现可参照之前代码5 切比雪夫距离python实现import numpy as npvec1 = np.mat(1,2,3,4)vec2 = np.mat(5,6,

5、7,8)dist = np.max(np.abs(vec1 - vec2)print(切比雪夫距离测试结果是:t + str(dist)6 杰卡德距离杰卡德(Jaccard)相似系数:两个集合A和B的交集在元素在A、B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。杰卡德距离:在占比中所取的是两个集合中不同元素。Python实现:import numpy as npv1 = np.random.random(10) 0.5 # 生成10个true false数据(即0,1)v2 = np.random.random(10) 0.5vec1 = np.asanyarra

6、y(v1, np.int32) # 转换位0、1矩阵vec2 = np.asanyarray(v2, np.int32)# 距离计算up = np.double(np.bitwise_and(vec1 != vec2),np.bitwise_or(vec1 !=0,vec2!=0).sum() # 涉及到数学逻辑运算down = np.double(np.bitwise_or(vec1 !=0 ,vec2!=0).sum() # 取并集, (vec1 !=0 ,vec2!=0)先转对应元素为true ,false的矩阵dist = (up/down)print(杰卡德距离测试结果是:t+str(dist)7 汉明距离在信息论中,两个登场字符串之间的汉明距离对应位置上的不同字符的个数。也就是说,将一个字符串变换成另一个字符串所需要替换的字符个数。例如:“toned”与“roses”之间的汉明距离就是3python实现:import numpy as npv1=np.random.random(10)0.5v2=np.random.random(10)0.5vec1=np.asarray(v1,np.int32)vec2=np.asarray(v2,np.int32)dist=np.mean(vec1!=vec2) # 取均值print(汉明距离测试结果是:t+str(dist)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1