先决条件 – 数据挖掘中的距离度量
在数据挖掘中,相似性度量是指数据集中表示数据对象特征的维度的距离。如果这个距离较小,则相似度较高,但当距离较大时,相似度较低。
一些流行的相似性度量是——
- 欧几里得距离。
- 曼哈顿距离。
- 杰卡德相似度。
- 闵可夫斯基距离。
- 余弦相似度。
余弦相似度是一个度量,有助于确定数据对象的相似程度,而不管它们的大小。我们可以使用余弦相似度来衡量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”向量不同。
好处 :
- 余弦相似度是有益的,因为即使两个相似的数据对象由于大小而相距欧几里得距离,但它们之间的角度仍然可以更小。角度越小,相似度越高。
- 在多维空间上绘制时,余弦相似度捕获数据对象的方向(角度)而不是大小。