📜  余弦相似度

📅  最后修改于: 2021-09-10 02:16:53             🧑  作者: Mango

先决条件 – 数据挖掘中的距离度量

在数据挖掘中,相似性度量是指数据集中表示数据对象特征的维度的距离。如果这个距离较小,则相似度较高,但当距离较大时,相似度较低。

一些流行的相似性度量是——

  1. 欧几里得距离。
  2. 曼哈顿距离。
  3. 杰卡德相似度。
  4. 闵可夫斯基距离。
  5. 余弦相似度。

余弦相似度是一个度量,有助于确定数据对象的相似程度,而不管它们的大小。我们可以使用余弦相似度来衡量Python两个句子之间的相似度。在余弦相似度中,数据集中的数据对象被视为向量。找到两个向量之间的余弦相似度的公式是 –

Cos(x, y) = x . y / ||x|| * ||y||

在哪里,

  • X 。 y = 向量“x”和“y”的乘积(点)。
  • ||x||||y|| = 两个向量“x”和“y”的长度。
  • ||x|| * ||y|| = 两个向量“x”和“y”的叉积。

例子 :
考虑使用余弦相似度查找两个向量之间的相似度的示例 – ‘x’‘y’

‘x’ 向量有值, x = { 3, 2, 0, 5 }
‘y’ 向量有值, y = { 1, 0, 0, 0 }

余弦相似度的计算公式为: Cos(x, y) = x 。 y / ||x|| * ||y||

x . y = 3*1 + 2*0 + 0*0 + 5*0 = 3

||x|| = √ (3)^2 + (2)^2 + (0)^2 + (5)^2 = 6.16

||y|| = √ (1)^2 + (0)^2 + (0)^2 + (0)^2 = 1

∴ Cos(x, y) = 3 / (6.16 * 1) = 0.49 

两个向量“x”和“y”之间的不同由下式给出——

∴ Dis(x, y) = 1 - Cos(x, y) = 1 - 0.49 = 0.51
  • 两个向量之间的余弦相似度以“θ”来衡量。
  • 如果 θ = 0°,则 ‘x’ 和 ‘y’ 向量重叠,从而证明它们是相似的。
  • 如果 θ = 90°,则“x”和“y”向量不同。

两个向量之间的余弦相似度

好处 :

  • 余弦相似度是有益的,因为即使两个相似的数据对象由于大小而相距欧几里得距离,但它们之间的角度仍然可以更小。角度越小,相似度越高。
  • 在多维空间上绘制时,余弦相似度捕获数据对象的方向(角度)而不是大小。