基於Python計算餘弦相似性
阿新 • • 發佈:2020-12-14
技術標籤:python
餘弦相似度:
在我們計算相似度時,常常用到餘弦夾角來判斷兩個向量或者矩陣之間的相似度,Cosine(餘弦相似度)取值範圍[-1,1],當兩個向量的方向重合時夾角餘弦取最大值1,當兩個向量的方向完全相反夾角餘弦取最小值-1,兩個方向正交時夾角餘弦取值為0。
x
1
x_1
x1 和
x
2
x_2
x2 分別是輸入的兩個向量。
基於python的程式碼:
import numpy as np
x_1 = np.array([1,3,6,2,3,6])
x_2 = np.array([3,4,1,5,7,8])
def cos_sim(a, b):
a_norm = np.linalg.norm(a)
b_norm = np.linalg.norm(b)
cos = np.dot(a,b)/(a_norm * b_norm)
return cos
print(cos_sim(x_1,x_2))
基於sklearn的python程式碼:
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
x_1 = np.array([1,3,6,2,3,6]).reshape(1,6)
x_2 = np.array([3,4,1,5,7,8]). reshape(1,6)
con_sim = cosine_similarity(x_1,x_2) #輸入必須是一個二維的,如果是一個矩陣的話,輸入的是矩陣的每行的
print(con_sim)
可以看出兩者計算出的相似度是一樣的。