背景
在计算相似度时,常常用到余弦夹角来判断相似度,Cosine(余弦相似度)取值范围[-1,1],当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1,两个方向正交时夹角余弦取值为0。
在实际业务中运用的地方还是挺多的,比如:可以根据历史异常行为的用户,找出现在有异常行为的其他用户;在文本分析领域,可以根据一些文章,找出一些相似文章(把文章转换为向量)。
计算相似度的方法除了余弦夹角,还可以利用距离来判断相似,距离越近越相似,这里不做详细展开。
自定义函数法
import numpy as np
def cosine_similarity(x,y):
num = x.dot(y.T)
denom = np.linalg.norm(x) * np.linalg.norm(y)
return num / denom
输入两个np.array向量,计算余弦函数的值
cosine_similarity(np.array([0,1,2,3,4]),np.array([5,6,7,8,9]))
#0.9146591207600472
cosine_s