数据挖掘学习笔记:余弦相似性

为何选择余弦度量相似性:

数据挖掘学习笔记:余弦相似性_第1张图片

定义

余弦相似性(余弦相似度):通过计算两个向量的夹角余弦值来评估他们的相似性。

令x,y是两个待比较的向量,使用余弦度量作为相似性函数:

                                              sim(x,y)=\frac{x\cdot y}{\left \| x \right \|\left \| y \right \|}

其中,\left \| x \right \|是向量x=(x_{1},x_{2},x_{3},...,x_{p})的欧几里得范数,定义为\sqrt{x_{1}^{2}+x_{2}^{2}+...+x_{p}^{2}},从概念上讲,就是向量 x 的长度。

0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。这结果是与向量的长度无关的,仅仅与向量的指向方向相关。余弦相似度通常用于正空间,因此给出的值为-1到1之间。

这上下界对任何维度的向量空间中都适用,而且余弦相似性最常用于高维正空间。例如在信息检索中,每个词项被赋予不同的维度,而一个维度由一个向量表示,其各个维度上的值对应于该词项在文档中出现的频率。余弦相似度因此可以给出两篇文档在其主题方面的相似度。

另外,它通常用于文本挖掘中的文件比较。此外,在数据挖掘领域中,会用到它来度量集群内部的凝聚力。

当属性是二值属性时 -- Tanimoto系数(即广义的Jaccard系数)

数据挖掘学习笔记:余弦相似性_第2张图片

对象 x 的第 i 个属性只有两种可能,有/无,对应的取值是1/0。所以,x·y 的计算结果是 x 和 y 所共有的属性个数

举例:x=(0,1,1,0),y=(1,0,1,0),则x·y=0*1+1*0+1*1+0*0=1,即 x 和 y 共有的属性个数为 1 ,与观察结果一致

分母表示:x 中有的属性个数 + y 中有的属性个数 - x 和 y 共有的属性个数,即在 x 或 y 中存在的属性个数

你可能感兴趣的:(数据挖掘)