[042]各类距离计算函数——Python版

来源:互联网 发布:省市区县json 编辑:程序博客网 时间:2024/06/09 14:23

1,欧式距离

Python的zip函数可以为我们同时遍历两个数组、列表List,做距离计算可以减少很多代码。
n维项目的计算:

def distance(vector1,vector2):      d=0;      for a,b in zip(vector1,vector2):          d+=(a-b)**2;      return d**0.5;  

2,余弦相似度

就是两个向量的夹角余弦值,这个数值常用来评估他们的相似度,具体的公式如下:
这里写图片描述,换算成具体的数值就是:这里写图片描述

def cos(vector1,vector2):      dot_product = 0.0;      normA = 0.0;      normB = 0.0;      for a,b in zip(vector1,vector2):          dot_product += a*b          normA += a**2          normB += b**2      if normA == 0.0 or normB==0.0:          return None      else:          return dot_product /((normA*normB)**0.5)

3,编辑距离

http://www.dreamxu.com/books/dsa/dp/edit-distance.html

4,Jaccard相似度

5,最长公共子串

6,simhash

0 1