Appearance
余弦相似
两个向量的夹角,夹角越小,表示两个向量越相似
公式
$ \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. $
python
import numpy as np
def cosine_similarity_manual(a, b):
dot_product = np.dot(a, b)
norm_a = np.linalg.norm(a) # 计算向量 a 的模
norm_b = np.linalg.norm(b) # 计算向量 b 的模
return dot_product / (norm_a * norm_b)
vector_a = np.array([1, 2, 3])
vector_b = np.array([4, 5, 6])
cos_sim = cosine_similarity_manual(vector_a, vector_b)
print("余弦相似度:", cos_sim)
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
# 定义两个向量
vector_a = np.array([1, 2, 3])
vector_b = np.array([4, 5, 6])
# 公式计算余弦相似度
# 1*4 + 2*5 + 3*6 = 32
# sqrt(1^2 + 2^2 + 3^2) = sqrt(14)
# sqrt(4^2 + 5^2 + 6^2) = sqrt(77)
# 32 / (sqrt(14) * sqrt(77)) = 0.9746318461970762
# 计算余弦相似度
cos_sim = cosine_similarity([vector_a], [vector_b])
print("余弦相似度:", cos_sim[0][0])