相似度计算
1、欧式距离
向量看成坐标系中两个点,欧式距离计算两点之间的距离,一般指位置上的差别,即距离
计算方法:
import numpy as np vec1 = np.array([1, 2, 3]) vec2 = np.array([4, 5, 6]) dist = np.linalg.norm(vec1 - vec2) # 方法1 dist = np.sqrt(np.sum(np.square(vec1 - vec2))) # 方法2
归一化:
sim = 1.0 / (1.0 + dist)
2、余弦距离
余弦距离计算两向量之间的夹角,一般指方向上的差别
计算方法:
import numpy as np vec1 = np.array([1, 2, 3]) vec2 = np.array([4, 5, 6]) cos = np.dot(vec1, vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2))
归一化:
sim = 0.5 + 0.5 * cos