探究余弦距离
《百面机器学习》笔记
余弦相似度可以作分析两个特征向量之间的相似性的一种度量指标。
由点积a∗b=∣∣a∣∣∗∣∣b∣∣cosθa*b=||a|| * ||b|| \cos\thetaa∗b=∣∣a∣∣∗∣∣b∣∣cosθ可知两个向量的夹角的余弦值为
cosθ=ab∣∣a∣∣2∣∣b∣∣2\cos\theta=\frac{ab}{||a||_2||b||_2}cosθ=∣∣a∣∣2∣∣b∣∣2ab
因此余弦相似度的取值范围为[−1,1][-1, 1][−1,1] 相同的相似度为1。
而余弦距离dist(A,B)=1−cosθdist(A,B)=1-\cos\thetadist(A,B)=1−cosθ, 因此余弦距离的取值范围为[0,2][0, 2][0,2],距离等于0则说明两个向量是相等的。
向量归一化后的欧式距离与余弦距离的关系
向量归一化可得∣∣A∣∣2=1,∣∣B∣∣2=1||A||_2=1, ||B||_2=1∣∣A∣∣2=1,∣∣B∣∣2=1, 因此余弦距离则为:dist(A,B)=1−ABdist(A, B)=1-ABdist(A,B)=1−AB
归一化后的欧氏距离为∣∣A−B∣∣2=∣∣A∣∣22+∣∣B∣∣22−2AB=2−2AB=2(1−AB)||A-B||^2=||A||_2^2+||B||_2^2-2AB=2-2AB=2(1-AB)∣∣A−B∣∣2=∣∣A∣∣22+∣∣B∣∣22−2AB=2−2AB=2(1−AB)
即:欧氏距离∣∣A−B∣∣=2(1−AB)=2(1−dist(A,B))||A-B||=\sqrt{2(1-AB)}=\sqrt{2(1-dist(A,B))}∣∣A−B∣∣=2(1−AB)=2(1−dist(A,B))
这就说明了,向量归一化后,欧氏距离与余弦距离存在单调关系。
余弦距离不是一个严格定义的距离
根据数学上的定义,在一个集合中,如果一对元素均可确定一个实数,使得三条距离公式(非负性,对称性,三角不等式)成立,则该实数可称为这对元素之间的距离。
1.非负性
由上面的余弦距离可以知道,余弦距离的取值范围为[0,2][0, 2][0,2],这就满足了非负性的性质。
2.对称性
dist(A,B)=1−cosθ=∣∣A∣∣2∣∣B∣∣2−AB∣∣A∣∣2∣∣B∣∣2=∣∣B∣∣2∣∣A∣∣2−BA∣∣B∣∣2∣∣A∣∣2=dist(B,A)
dist(A, B)=1-\cos\theta
\\\\\\\\\\ = \frac{||A||_2||B||_2 - AB}{||A||_2||B||_2}
\\\\\\\\\\ = \frac{||B||_2||A||_2 - BA}{||B||_2||A||_2}
\\\\\\\\\\ = dist(B, A)
dist(A,B)=1−cosθ=∣∣A∣∣2∣∣B∣∣2∣∣A∣∣2∣∣B∣∣2−AB=∣∣B∣∣2∣∣A∣∣2∣∣B∣∣2∣∣A∣∣2−BA=dist(B,A)
由于dist(A,B)=dist(B,A)dist(A, B)=dist(B, A)dist(A,B)=dist(B,A),因此满足对称性。
3.三角不等式
例子:A=(1,0),B=(1,1),C=(0,1)A=(1, 0), B=(1, 1), C=(0,1)A=(1,0),B=(1,1),C=(0,1),则有
dist(A,B)=1−22dist(A,B)=1-\frac{\sqrt{2}}{2}dist(A,B)=1−22
dist(B,C)=1−22dist(B,C)=1-\frac{\sqrt{2}}{2}dist(B,C)=1−22
dist(A,C)=1dist(A,C)=1dist(A,C)=1
因此,dist(A,B)+dist(B,C)=2−2<1=dist(A,C)dist(A,B)+dist(B,C)=2-\sqrt{2}<1=dist(A,C)dist(A,B)+dist(B,C)=2−2<1=dist(A,C)。
因此,余弦距离是不满足三角不等式的性质的。
总结
余弦距离不是一个严格定义的距离,但是却可以很有效的体现特征向量方向上的相对差异。