余弦相似度:
计算向量之间的角度值:
创建向量
import numpy as np
x = np.array([3, 5])
y = np.array([4, 2])
计算两个向量的长度
lx = np.sqrt(x.dot(x)) (x.dot(x)是点乘,计算平方和)
ly = np.sqrt(y.dot(y))
计算余弦值,即cos值
cos = x.dot(y)/(lx*ly) (向量夹角求值为两个向量相乘除以两个向量的模(范数)相乘的值)
将余弦值转化为弧度值
cos1 = np.arccos(cos)
将弧度值转化为度数值
cos2 = cos1*360/2/np.pi(计算度数值为弧度值除以180度除以π)
print(cos2)
### 32.47119229084849
方法二
计算矢量的范数(长度)
lx = np.linalg.norm(x) (取自线代思想)
ly = np.linalg.norm(y)
计算余弦值
cos = x.dot(y)/(lx*ly)
计算弧度值
cos1 = np.arccos(cos)
计算度数值
cos2 = np.rad2deg(cos1)
print(cos2)
### 32.47119229084849