各种距离、相似度

n n n维样本空间里的点 x = ( x 1 , x 2 , . . . , x n ) x=(x_1,x_2,...,x_n) x=(x1,x2,...,xn)和点 y = ( y 1 , y 2 , . . . , y n ) y=(y_1,y_2,...,y_n) y=(y1,y2,...,yn)之间的各种距离

欧氏距离

d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x, y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2} d(x,y)=i=1n(xiyi)2

曼哈顿距离

亦称为城市街区距离

d ( x , y ) = ∑ i = 1 n ∣ ( x i − y i ) ∣ d(x,y)=\sum_{i=1}^n|(x_i-y_i)| d(x,y)=i=1n(xiyi)

切比雪夫距离

d ( x , y ) = max ⁡ i = 1 n ∣ x i − y i ∣ d(x,y)=\max_{i=1}^n|x_i-y_i| d(x,y)=i=1maxnxiyi

等价于

lim ⁡ k → ∞ ( ∑ i = 1 n ∣ x i − y i ∣ k ) 1 / k \lim_{k\to\infty}(\sum_{i=1}^n|x_i-y_i|^k)^{1/k} klim(i=1nxiyik)1/k

因此切比雪夫距离亦称为 L ∞ L_\infty L距离

闵可夫斯基距离

d ( x , y ) = ∑ i = 1 n ∣ x i − y i ∣ p p d(x,y)=\sqrt[p] {\sum_{i=1}^n|x_i-y_i|^p} d(x,y)=pi=1nxiyip

其中 p p p是一个参数(可以等于1,2,3…),根据参数的不同,闵氏距离可以表示一类距离

标准化欧氏距离

d ( x , y ) = ∑ i = 1 n ( x i − y i s i ) 2 d(x,y)=\sqrt{\sum_{i=1}^n(\frac {x_i-y_i} {s_i})^2} d(x,y)=i=1n(sixiyi)2

其中 s i s_i si代表包含点 x x x y y y的样本集的第i个特征的标准差。另,若将方差的倒数看成一个权重,这个公式可看成是一种加权欧氏距离

马氏距离

马氏距离(Mahalanobis Distance)是由印度统计学家普拉萨德·马哈拉诺比斯(Prasanta Chandra Mahalanobis)提出的,用于测量一个点与一个分布之间的距离。与欧氏距离不同,马氏距离考虑了数据集中各个特征的相关性,并且是尺度无关的,即它不受数据集中各个特征尺度的影响。

若不同维度之间存在相关性和尺度变换等关系,需要使用一种变化规则,将当前空间中的向量变换到另一个可以简单度量的空间中去测量。马氏距离与量纲无关,排除了变量之间的相关性的干扰。

单个数据点的马氏距离:

d ( x ) = z T z = ( x − μ ) T S − 1 ( x − μ ) d(x)=\sqrt{z^Tz}=\sqrt{(x-\mu)^TS^{-1}(x-\mu)} d(x)=zTz =(xμ)TS1(xμ)

数据点x、y之间的马氏距离:

d ( x , y ) = ( x − y ) T S − 1 ( x − y ) d(x,y)=\sqrt{(x-y)^TS^{-1}(x-y)} d(x,y)=(xy)TS1(xy)

均值记为向量 μ = ( μ 1 , μ 2 , . . . , μ m ) T \mu=(\mu_1,\mu_2,...,\mu_m)^T μ=(μ1,μ2,...,μm)T,协方差矩阵记为 S S S,则样本点 x = ( x 1 , x 2 , . . . , x m ) T x=(x_1,x_2,...,x_m)^T x=(x1,x2,...,xm)T y = ( y 1 , y 2 , . . . , y m ) T y=(y_1,y_2,...,y_m)^T y=(y1,y2,...,ym)T的 距离如上。若各个样本之间独立同分布,则公式就变成了欧氏距离。

特点

  1. 尺度无关性:马氏距离通过使用协方差矩阵调整各个特征的尺度,因此它对不同尺度的特征不敏感。

  2. 考虑特征间相关性:由于使用了协方差矩阵,马氏距离考虑了特征之间的相关性。如果特征间相互独立,协方差矩阵就是对角线矩阵,此时马氏距离等同于标准化的欧氏距离。

  3. 异常值检测:马氏距离经常用于多变量数据的异常值检测,因为它可以量化一个点与数据集分布的差异。

应用

马氏距离广泛应用于多个领域,包括模式识别、分类问题和数据聚类。在这些应用中,它帮助识别和区分不同的数据点或数据集,尤其是在特征之间存在相关性的情况下。

在实际应用中,计算马氏距离需要数据集的协方差矩阵及其逆矩阵。在多数情况下,使用样本协方差矩阵作为总体协方差矩阵的估计。需要注意的是,当特征数量大于样本数量时,协方差矩阵可能不是满秩的,这时就需要使用伪逆矩阵或添加正则化项。

计算

在实际应用中,计算巴氏距离通常涉及到计算两个分布的均值和协方差矩阵。对于非正态分布或者离散分布,巴氏距离的计算可能更加复杂,需要根据具体的分布特性来确定。在Python中,可以使用NumPy和SciPy等库来辅助计算均值、方差和协方差,进而计算巴氏距离。

余弦相似度

d ( x , y ) = x ⋅ y ∣ ∣ x ∣ ∣ ∗ ∣ ∣ y ∣ ∣ d(x,y)=\frac {x·y} {||x||*||y||} d(x,y)=∣∣x∣∣∣∣y∣∣xy

其中 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣表示 x x x的欧几里得范数,即长度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值