机器学习笔记3:闵可夫斯基距离与向量内积简介

闵可夫斯基距离啊

闵可夫斯基距离(Minkowski distance)是衡量数值点之间距离的一种非常常见的方法,假设数值点P和Q坐标如下:

$$
\large
P = (x_1, x_2, \cdots, x_n) \ and \ Q = (y_1, y_2, \cdots, y_n) \in \mathbb R ^n
$$

那么,闵可夫斯基距离定义为:

$$
\large
\begin{pmatrix}
\sum \limits_{i=1}^n \vert x _i - y _i \vert ^p
\end{pmatrix} ^{1 \over p}
$$

当p为1时表示曼哈顿距离(Manhattan distance),也叫L1距离;
当p为2时表示欧几里得距离(Euclidean distance),也叫L2距离;
当p趋近无穷大时表示切比雪夫距离(Chebyshev distance)。

以下是p为其他取值时的情况:

闵可夫斯基距离比较直观,但是它与数据的分布无关,具有一定的局限性,如果 x 方向的幅值远远大于y方向的值,这个距离公式就会过度放大x维度的作用。所以,在计算距离之前,我们可能还需要对数据进行z-transform处理,即减去均值,除以标准差:

$$
\large
(x_1,y_1)
\longmapsto
\begin{pmatrix}
{x_1-\mu_x \over \sigma_x},
{y_1-\mu_y \over \sigma_y}
\end{pmatrix}
$$

$\mu$表示该维度上的均值;$\sigma$表示该维度上的标准差。

向量内积

向量内积是线性代数里最为常见的计算,实际上它还是一种有效并且直观的相似性测量手段。向量内积的定义如下:

$$
\large
Inner(x,y) = \langle a,b \rangle =
\sum\limits_i x_i y_i
$$

向量内积的结果是没有界限的,一种解决办法是除以长度之后再求内积,这就是应用十分广泛的余弦相似度(Cosine similarity):

$$
\large
CosSim(x,y) =
{\sum\limits_i x_i y_i
\over
\sqrt {\sum\limits_i x_i^2}
\sqrt {\sum\limits_i y_i^2}
} =
{\langle x,y \rangle
\over
|x||y|
}
$$

余弦相似度与向量的幅值无关,只与向量的方向相关。需要注意一点的是,余弦相似度受到向量的平移影响,上式如果将x平移到x+1,余弦值就会改变。怎样才能实现平移不变性?这就是下面要说的皮尔逊相关系数(Pearson correlation),有时候也直接叫相关系数:

$$
Corr(x,y) =
{\sum\limits_i(x_i - \overline x)(y_i - \overline y)
\over
\sqrt {\sum\limits_i(x_i - \overline x)^2}
\sqrt {\sum\limits_i(y_i - \overline y)^2}
} =
{\langle x - \overline x, y - \overline y \rangle
\over
|x - \overline x| |y - \overline y|} =
CosSim(x - \overline x, y - \overline y)
$$

皮尔逊相关系数具有平移不变性和尺度不变性,计算出了两个向量(维度)的相关性。

参考

  1. 皮尔逊积矩相关系数 - 维基百科