欧几里得距离计算相似度

比如A和B两个用户,他们都对《葫芦娃》和《奥特曼》投过票:

葫芦娃 奥特曼 A 2.5 3.0

B 3.0 1.0

可以用欧几里得距离来计算A和B偏好的相近度。把“葫芦娃”和“奥特曼”分别对应到二维坐标的X、Y轴,A和B的评分分别对应到轴上的点。

from math import sqrt
print 1/(1+sqrt(pow(2.5-3.0,2)+pow(3.0-1.0,2)))

得到的结果:

0.32663163471

公式中,用1去除以欧几里得距离公式是为了让产生的结果在0~1的区间内,如果结果为1,那么A和B偏好相同。再加一个1,是防止分母为0。