Royc30ne

Royc30ne

机器学习 | 联邦学习 | VPS | 摄影 | 日常

[机器学习]常用向量空间度量整理

最后更新: 2023/4/5 修复了 Markdown 中数学符号显示异常
该文章首发于若绾, 转载请标注出处。

导言#

当涉及到机器学习和数据科学的时候,向量空间距离是一个非常重要的概念。在很多机器学习应用中,数据点通常以向量形式表示。因此,了解如何计算和比较向量之间的距离是非常关键的。向量空间距离可以用于解决许多问题,例如聚类、分类、降维等等。在联邦学习项目中,向量空间距离尤其重要,因为它可以帮助我们比较不同设备或数据源中的向量,从而确定它们是否足够相似以用于联合训练。

本文将介绍向量空间距离的基本概念,包括欧几里得距离、曼哈顿距离、切比雪夫距离等等。我们将讨论这些距离度量如何计算,它们的优缺点以及何时使用哪种距离度量。我们还将介绍一些更高级的距离度量方法,例如马氏距离和余弦相似度,并探讨它们在不同情况下的适用性。希望这篇文章能够帮助你更好地理解向量空间距离以及如何将它应用到你的联邦学习项目中。

曼哈顿距离(Manhattan distance)#

曼哈顿距离(L1 范数)是衡量两个向量 X 和 Y 之间距离的一种方法,它的公式如下:

$D_{M}(X,Y) = \sum_{i=1}^{n}|x_{i} - y_{i}|$

其中:

  • $D_{M}(X,Y) $ 表示向量 X 和 Y 之间的曼哈顿距离。

  • $x_{i}$ 和 $y_{i}$ 分别表示向量 X 和 Y 的第 i 个分量。

  • $n$ 是向量中的分量数量。

曼哈顿距离是通过计算两个向量分量之间的绝对差值之和来衡量它们之间的距离。它的名称源于曼哈顿街道的网格状布局,其中两点之间的距离是它们水平和垂直距离的总和。与欧几里得距离相比,曼哈顿距离更适用于在高维空间中的应用,因为在高维空间中,两点之间的距离更容易通过水平和垂直距离来计算。曼哈顿距离也可以在机器学习和数据科学中广泛应用,例如在聚类和分类问题中,以及在图像和语音识别中的特征提取中。

坎贝拉距离 (Canberra Distance)#

坎贝拉距离是一种衡量两个向量相似性的距离度量方法,常用于数据分析和信息检索中。它的计算公式如下:

$D_{c}(X,Y) = \sum_{i=1}^{n}\frac{|x_{i} - y_{i}|}{|x_{i}| + |y_{i}|}$

其中:

  • $D_{c}(X,Y)$ 表示向量 X 和 Y 之间的坎贝拉距离。

  • $x_{i}$ 和 $y_{i}$ 分别表示向量 X 和 Y 的第 i 个分量。

  • $n$ 是向量中的分量数量。

坎贝拉距离是一种考虑向量分量幅度的距离度量,适用于在分析基因表达数据等分量幅度重要的场合。坎贝拉距离与其他距离度量不同之处在于,它使用分量之间的绝对差值与它们的绝对值之和的比来计算距离。当向量中存在很多 0 值分量时,分母可能变得非常小,这可能导致距离的不稳定性。坎贝拉距离在机器学习和数据科学中也有广泛的应用,例如在分类、聚类、推荐系统和信息检索等领域。

欧几里得距离 (Euclidean distance)#

欧几里得距离是一种常见的向量距离度量方法,它被广泛应用于机器学习和数据科学领域中的多种任务,如聚类、分类和回归等。

欧几里得距离可以用于计算两个向量之间的距离。假设我们有两个向量 X 和 Y,它们的长度相等,即每个向量中包含 n 个分量。那么,它们之间的欧几里得距离可以通过以下公式进行计算:

$D_{E}(X,Y) = \sqrt{\sum_{i=1}^{n}(x_{i} - y_{i})^2}$

其中:

  • $D_{E}(X,Y)$ 表示向量 X 和 Y 之间的欧几里得距离。

  • $x_{i}$ 和 $y_{i}$ 分别表示向量 X 和 Y 的第 i 个分量。

  • $n$ 是向量中的分量数量。

欧几里得距离的计算方式是通过将两个向量分量之间的差值平方求和,再取其平方根得到的。它的名称来自于古希腊数学家欧几里得,欧几里得距离在平面几何中也有广泛应用。在机器学习和数据科学中,欧几里得距离通常用于计算两个样本之间的相似度或距离,因为它可以帮助我们识别在特征空间中离得较近的样本。

标准化欧几里得距离 (Standardized Euclidean distance)#

标准化欧几里得距离是一种衡量两个向量距离的度量方法,它考虑了向量分量的变异性,通常用于在分量具有不同度量单位和尺度,且分量变异性很重要的情况下。

计算公式如下:

$D_{SE}(X,Y) = \sqrt{\sum_{i=1}^{n}\frac{(x_{i} - y_{i})^2}{s_{i}^2}}$

其中:

  • $D_{SE}(X,Y)$ 表示向量 X 和 Y 之间的标准化欧几里得距离。

  • $x_{i}$ 和 $y_{i}$ 分别表示向量 X 和 Y 的第 i 个分量。

  • $n$ 是向量中的分量数量。

  • $s_{i}$ 是向量中第 i 个分量的标准差。

标准化欧几里得距离考虑了向量分量的可变性,通常适用于在分量具有不同度量单位和尺度,以及分量变异性很重要的情况下。它与欧几里得距离的计算方式相似,但在计算分量之间的差值时,将其除以分量的标准差来进行标准化。

平方欧几里得距离 (Squared Euclidean distance)#

平方欧几里得距离是一种计算两个向量之间距离的度量方法,其计算公式如下:

$D_{SE}^2(X,Y) = \sum_{i=1}^{n}(x_{i} - y_{i})^2$

其中:

  • $D_{SE}^2 (X,Y)$ 表示向量 X 和 Y 之间的平方欧几里得距离。

  • $x_{i}$ 和 $y_{i}$ 分别表示向量 X 和 Y 的第 i 个分量。

  • $n$ 是向量中的分量数量。

平方欧几里得距离是通过计算两个向量分量之间的差值平方之和来衡量它们之间的距离。与欧几里得距离相比,平方欧几里得距离避免了对平方和的开方运算,从而计算更加高效。平方欧几里得距离在机器学习和数据科学中也有广泛的应用,例如在聚类、分类、回归等任务中。

需要注意的是,平方欧几里得距离忽略了分量的尺度和单位,因此在一些情况下,它可能不太适合用于测量向量之间的距离。在这种情况下,我们可以使用其他距离度量方法,如标准化欧几里得距离、曼哈顿距离、切比雪夫距离等。

余弦相似度(Cosine Similarity)#

余弦相似度是一种测量两个向量相似性的度量方法,其计算公式如下:

$cos(\theta) = \frac{X \cdot Y}{\left| X\right| \left| Y\right|} = \frac{\sum\limits_{i=1}^{n} x_i y_i}{\sqrt{\sum\limits_{i=1}^{n} x_i^2} \sqrt{\sum\limits_{i=1}^{n} y_i^2}}$

其中:

  • $cos (\theta)$ 表示向量 X 和 Y 之间的余弦相似度。

  • $X \cdot Y$ 表示向量 X 和 Y 的点积。

  • $\left| X\right|$ 和 $\left| Y\right|$ 分别表示向量 X 和 Y 的模。

  • $x_i$ 和 $y_i$ 分别表示向量 X 和 Y 的第 i 个分量。

  • $n$ 是向量中的分量数量。

余弦相似度是一种考虑向量之间夹角的相似度度量方法。在自然语言处理和信息检索等领域,余弦相似度通常用于测量文本之间的相似性,因为文本可以表示为向量,且分量的大小不重要。与其他距离度量方法相比,余弦相似度计算更为简单,同时也具有很好的性能。例如,当两个向量完全相同时,余弦相似度为 1,当两个向量夹角为 90 度时,余弦相似度为 0,当两个向量方向相反时,余弦相似度为 - 1。

需要注意的是,余弦相似度不考虑向量分量之间的大小差异,因此可能不适用于一些数据集

切比雪夫距离#

切比雪夫距离是一种用于测量两个向量之间距离的度量方法,其计算方式是计算两个向量中分量差值的绝对值的最大值。假设我们有两个向量 X 和 Y,它们的长度相等,即每个向量中包含 n 个分量。那么,它们之间的切比雪夫距离可以通过以下公式进行计算:

$D_{C}(X,Y) = max_{i=1}^{n}|x_{i} - y_{i}|$

其中:

  • $D_{C}(X,Y)$ 表示向量 X 和 Y 之间的切比雪夫距离。

  • $x_{i}$ 和 $y_{i}$ 分别表示向量 X 和 Y 的第 i 个分量。

  • $n$ 是向量中的分量数量。

切比雪夫距离通常被用于测量向量之间的距离,它的计算方式与曼哈顿距离类似,但在计算差值时取的是绝对值最大的分量差值,因此它能够比曼哈顿距离更好地捕捉到向量之间的差异。切比雪夫距离在机器学习和数据科学领域中也有广泛的应用,如在图像处理、信号处理、时间序列分析等方面。

需要注意的是,切比雪夫距离可能会受到离群值的影响,因为它是基于分量差值的绝对值的最大值计算的,因此在存在离群值的情况下,切比雪夫距离可能会给出不准确的距离度量。

马氏距离#

马氏距离是一种用于测量两个向量之间距离的度量方法,它考虑了各个分量之间的相关性。假设我们有两个向量 X 和 Y,它们的长度相等,即每个向量中包含 n 个分量。那么,它们之间的马氏距离可以通过以下公式进行计算:

$D_{M}(X,Y) = \sqrt{(X-Y)^T S^{-1} (X-Y)}$

其中:

  • $D_{M}(X,Y)$ 表示向量 X 和 Y 之间的马氏距离。

  • $X$ 和 $Y$ 是两个长度为 n 的向量。

  • $S$ 是 $n \times n$ 的协方差矩阵。

马氏距离的计算公式与欧几里得距离类似,但考虑到各个分量之间的相关性。如果协方差矩阵为单位矩阵,那么马氏距离就等价于欧几里得距离。与欧几里得距离相比,马氏距离能够更好地捕捉到各个分量之间的相关性,因此在一些需要考虑各个分量相关性的领域中,如金融风险管理、语音识别、图像识别等方面,马氏距离得到了广泛应用。

需要注意的是,马氏距离要求各个分量之间服从多元正态分布,且协方差矩阵需要是正定矩阵。如果分量之间不满足这些条件,马氏距离可能会给出不准确的距离度量。此外,马氏距离也受到协方差矩阵的估计误差的影响。在实际应用中,我们需要通过样本数据来估计协方差矩阵,因此样本数量的大小和样本的质量都会影响到马氏距离的准确性。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。