1. 程式人生 > 其它 >基於Python計算餘弦相似性

基於Python計算餘弦相似性

技術標籤: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)

在這裡插入圖片描述
可以看出兩者計算出的相似度是一樣的。