【机器学习】余弦相似度计算公式是什么?

余弦相似度(Cosine Similarity)是用来衡量0到1之间两个向量之间相似度的数学表达式。

计算公式如下:

cosine_similarity(A, B) = (A • B) / ||A|| ||B||

其中:

  • A 和 B 是两个n维向量
  • A•B 是内积,指A和B对应的两两项的乘积再相加:
 A•B = a1b1 + a2b2 + ... + anbn
  • ||A|| 表示向量A的模长,计算公式为:
||A|| = √ (a1^2 + a2^2 + ... + an^2)
  • ||B|| 表示向量B的模长,同理计算。
  • cosθ 表示A和B之间的夹角余弦值。

假设A = [a1, a2, a3], B = [b1, b2, b3], 则公式展开为:

(a1*b1 + a2*b2 + a3*b3) / (√(a1^2 + a2^2 + a3^2) * √(b1^2 + b2^2 + b3^2))
  • 若两向量完全相同,则夹角为0°,余弦值最大(1)
  • 若两向量垂直,则余弦值0
  • 余弦值越大,意味着两向量越相似

总的来说,余弦相似度的计算考虑了:

  1. 两个向量的内积
  2. 两个向量的模长
  3. 余弦值代表相似度

它具有几个优点:

  • 简单速度快
  • 不需要向量标准化
  • 固定范围 [0,1]