余弦相似度是衡量两个非零向量夹角余弦值的指标,常用于文本分类、图像识别等场景中。它通过计算两个向量的点积除以它们的模长乘积来得出相似度。
具体来说,余弦相似度的取值范围为[-1, 1]。当两个向量的方向完全一致时,相似度为1;当它们方向相反时,相似度为-1;而当它们正交(即不相关)时,相似度为0。
为了计算余弦相似度,我们通常使用NumPy库中的np.linalg.norm
函数来求解向量的L2范数,并利用np.dot
函数进行点积运算。
import numpy as np
def cosine_similarity(a, b):
a_norm = np.linalg.norm(a)
b_norm = np.linalg.norm(b)
dot_product = np.dot(a, b)
return dot_product / (a_norm * b_norm)
# 示例数据
t1 = np.array([-0.4, 0.8, 0.5, -0.2, 0.3])
t2 = np.array([-0.5, 0.4, -0.2, 0.7, -0.1])
print(cosine_similarity(t1, t2))
上述代码展示了如何使用Python和NumPy库来计算两个向量的余弦相似度。通过这种方法,我们可以轻松地评估不同数据点之间的相似性,从而为各种应用场景提供支持。