余弦相似度和欧式距离的区别
余弦相似度和欧式距离的区别
1. 计算公式
余弦相似度:
\[\cos \left( {A,B} \right) = \frac{{A \cdot B}}{{{{\left\| A \right\|}_2}{{\left\| B \right\|}_2}}} = \frac{{\sum\limits_{i = 1}^n {\left( {{x_i} \times {y_i}} \right)} }}{{\sqrt {\sum\limits_{i = 1}^n {{{\left( {{x_i}} \right)}^2}} } \times \sqrt {\sum\limits_{i = 1}^n {{{\left( {{y_i}} \right)}^2}} } }}\]
欧式距离:
\[dist\left( {A,B} \right) = {\left\| {A - B} \right\|_2} = \sqrt {\sum\limits_{i = 1}^n {{{\left( {{x_i} - {y_i}} \right)}^2}} } \]
如果对向量模长进行归一化,欧式距离和余弦相似度有如下计算关系:
\[{\left\| {A - B} \right\|_2} = \sqrt {2\left( {1 - \cos \left( {A,B} \right)} \right)} \]
2. 取值范围
余弦相似度的取值范围:[-1,1]
欧式距离取值范围:[0, +∞)
3. 适用场景
余弦相似度计算的向量的夹角,它并不关心向量的绝对大小。
欧式距离体现的是数值上的绝对差异。