相似性度量

2442 字
12 分钟
相似性度量

在聚类分析中,要产生一个简单的分组结构,我们就需要一种衡量接近程度或相似性的度量。

Info

选择相似性度量时涉及很大的主观性。

Info

本篇节选自我的课程笔记,因此标题序号沿用了原笔记中的排列(懒得改)。

3.1 连续型测量#

对象可以用 pp 维测量值表示:

x=[x1,…,xp],y=[y1,…,yp].\mathbf{x}=[x_1,\ldots,x_p], \qquad \mathbf{y}=[y_1,\ldots,y_p].

欧氏距离(Euclidean distance)#

d(x,y)=(x1−y1)2+⋯+(xp−yp)2.d(\mathbf{x},\mathbf{y}) = \sqrt{ (x_1-y_1)^2+\cdots+(x_p-y_p)^2 }.

欧氏距离就是两点间的直线距离,即勾股定理在高维的推广,是我们日常空间直觉中最自然的“距离”。

平方欧氏距离#

d(x,y)=(x1−y1)2+⋯+(xp−yp)2.d(\mathbf{x},\mathbf{y}) = (x_1-y_1)^2+\cdots+(x_p-y_p)^2.

欧氏距离去掉根号。它不再是严格意义上的“距离”,但保留了大小排序信息:d2d^2 越大,两点越远。

去掉根号带来两个好处:

  • 求导更方便:聚类、最优化中经常要对距离求导,带根号的式子导数繁琐,平方形式则很干净;
  • 可分解性:平方欧氏距离可以拆成各维度贡献之和,Ward 法的簇内平方和 ESSESS 正是基于这种分解。

统计距离#

欧氏距离有两个致命弱点,用一个例子说明:假设有两个变量:收入(元) 和 年龄(岁)。

  • 弱点一:量纲敏感。 收入差 5000 元、年龄差 5 岁,算欧氏距离时收入完全主导结果——年龄几乎被“淹没”了(我们在 3.4 节会介绍标准化)。
  • 弱点二:忽略相关性。 设想数据点分布成一个倾斜的椭圆(收入与年龄正相关)。椭圆长轴方向上的波动是数据的自然变异,应该“算近一点”;短轴方向上偏离很多才是真正的异常,应该“算远一点”。而欧氏距离对各方向一视同仁,做不到这一点。

统计距离表达:

d(x,y)=(x−y)TA(x−y).d(\mathbf{x},\mathbf{y}) = \sqrt{ (\mathbf{x}-\mathbf{y})^T A (\mathbf{x}-\mathbf{y}) }.

对于 AA ,一个常见的选择是

A=S−1,A=S^{-1},

其中 SS 为样本协方差矩阵。

当我们取 A=S−1A=S^{-1} 时,它也被称为马氏距离(Mahalanobis distance)。它不仅看两点相隔多远,还考虑数据的分布形状。这样,它就解决了欧氏距离的两个问题:

  • 协方差矩阵的对角元素(各变量的方差)自动校正量纲——效果类似先标准化再算距离(标准化后算欧氏距离等价于取 A=diag(S)−1A=\text{diag}(S)^{-1} 的统计距离,参见 3.4 节);
  • 非对角元素(协方差)考虑变量间的相关性,把椭圆“转正、拉圆”之后再量距离,各方向权重符合数据的真实分布。

闵可夫斯基度量(Minkowski metric)#

闵可夫斯基度量则是一个统一的框架,前面的欧氏距离只是它的一个特例:

d(x,y)=[∑i=1p∣xi−yi∣m]1/m.d(\mathbf{x},\mathbf{y}) = \left[ \sum_{i=1}^{p} |x_i-y_i|^m \right]^{1/m}.

它通过参数 mm 控制距离的“性格”。mm 取不同值时,就得到一系列熟悉的距离:

mm距离名称特点
m=1m=1曼哈顿距离(Manhattan / 城市街区距离)各维差值绝对值直接相加
m=2m=2欧氏距离我们熟悉的直线距离
m→∞m\to\infty切比雪夫距离(Chebyshev)只看差距最大的那一维

mm 的直觉在于,mm 越大,距离越被“大差距”的维度主导;mm 越小,各维度越“平等”。

这句话是什么意思?#

举个具体例子。假设两个点在 3 个维度上的差值是:

∣x1−y1∣=10,∣x2−y2∣=3,∣x3−y3∣=1|x_1-y_1|=10,\quad |x_2-y_2|=3,\quad |x_3-y_3|=1

看不同 mm 下各维度的“贡献”(乘方后的值):

mm维度1(差10)维度2(差3)维度3(差1)距离值
m=1m=11031≈14\approx 14
m=2m=210091≈10.5\approx 10.5
m=3m=31000271≈10.03\approx 10.03
m→∞m\to\infty主导一切忽略不计忽略不计=10=10

可以清楚看到:

  • m=1m=1(曼哈顿距离):就是简单相加,每个维度都“有一票”,哪怕差 1 的小维度也算数。各维度平等。
  • m=2m=2(欧氏距离):大差距被平方放大了(10→100),小差距被相对压制(3→9,1→1)。大维度开始“抢戏”。
  • m→∞m\to\infty(切比雪夫距离):乘方使得最大的那个差值碾压所有其他维度,距离完全由差距最大的那一维决定,其他维度形同虚设。

直觉来说,mm 相当于一个“偏心旋钮”:

  • mm 调大 → 数学上 max⁡\max 占上风 → 距离反映“最差的那一维”(一票否决制)
  • mm 调小 → 越接近简单的加总 → 距离反映“所有维度的总和”(人人有份)

所以:mm 决定了多维差距汇总时是“平均主义”还是“强者通吃”。这也解释了为什么表格里 m=1m=1 时小维度影响大、m→∞m\to\infty 时只剩最大维度起作用。


闵可夫斯基度量与统计距离#
闵可夫斯基度量统计距离
公式[∑∥xi−yi∥m]1/m\left[\sum\|x_i-y_i\|^m\right]^{1/m}(x−y)TA (x−y)\sqrt{(\mathbf{x}-\mathbf{y})^T A\,(\mathbf{x}-\mathbf{y})}
处理量纲差异❌ 不处理(对量纲敏感)✅ 马氏距离 AA 的对角元素自动校正
处理变量相关性❌ 各维度完全独立✅ AA 的非对角元素处理相关性
灵活性来源参数 mm(改变汇总方式)矩阵 AA(改变空间形状)
典型代表m=1m=1 曼哈顿、m=2m=2 欧氏、m→∞m\to\infty 切比雪夫A=S−1A=S^{-1} 马氏距离

闵可夫斯基度量把 pp 维空间当成各向同性的——每个维度权重相同、维度之间互不相干。

而统计距离相当于先对空间做“变形”(拉伸、旋转),再量直线距离。例如我们在 3.1 节里提到的:马氏距离是把椭圆“转正、拉圆”之后再量距离。

在实践中:

  • 如果变量之间可以视为独立,经过标准化后直接比较各维差异,就可以用闵可夫斯基距离;
  • 如果变量尺度不同、存在明显相关性,而且能够可靠估计协方差结构,用统计距离,典型是马氏距离。

3.2 二元测量#

对象对可以依据某些特征的有无来进行比较。

  • 二元变量表示某特征的存在或缺失。
  • 设 xijx_{ij} 为第 jj 个二元变量在第 ii 个对象上的取值,取 11 或 00,其中
j=1,…,p.j=1,\ldots,p.

例如:

对象变量 1变量 2变量 3变量 4变量 5
ii10011
kk11010

二元变量的平方欧氏距离#

d(x,y)=∑i=1p(xi−yi)2.d(\mathbf{x},\mathbf{y}) = \sum_{i=1}^{p}(x_i-y_i)^2.

它是:

  • 不匹配的维度数。
  • 当两个对象不相似时取值较大。
  • 基于 11-11 匹配与 00-00 匹配同等权重。

然而,在某些情况下,11-11 匹配比 00-00 匹配更能表明相似性。

1-1 匹配与 0-0 匹配的含义

二元数据并不是总该使用欧氏距离,选择取决于 0 和 1 的含义:

  • 对称二元变量:0 和 1 地位相同,例如性别编码或两个互斥状态。可以使用 Hamming、简单匹配距离或平方欧氏距离。
  • 非对称二元变量:1 表示稀有且重要的“出现”,0 只是“未出现”,例如疾病、购买行为、关键词。共同为 0 通常不应算作重要相似度,此时更适合 Jaccard 距离:
dj=b+ca+b+cd_{j}=\frac{b+c}{a+b+c}

对于上面的例子,

d(xi,xk)=(1−1)2+(0−1)2+(0−0)2+(1−1)2+(1−0)2=2.d(\mathbf{x}_i,\mathbf{x}_k) = (1-1)^2 + (0-1)^2 + (0-0)^2 + (1-1)^2 + (1-0)^2 = 2.

也就是说,ii 和 kk 总共有 2 个不匹配的维度。

3.3 其他相似性系数#

设匹配与不匹配的频数汇总如下:

对象 kk:1对象 kk:0合计
对象 ii:1aabba+ba+b
对象 ii:0ccddc+dc+d
合计a+ca+cb+db+dT=a+b+c+dT=a+b+c+d

基于匹配比例的度量包括:

公式依据
a+dT\dfrac{a+d}{T}11-11 匹配与 00-00 匹配同等权重
aT\dfrac{a}{T}分子中不含 00-00 匹配
2(a+d)2(a+d)+b+c\dfrac{2(a+d)}{2(a+d)+b+c}11-11 匹配与 00-00 匹配赋予双倍权重
a+da+d+2(b+c)\dfrac{a+d}{a+d+2(b+c)}不匹配对赋予双倍权重

例子#

对象 kk:1对象 kk:0合计
对象 ii:1213
对象 ii:0112
合计325

因此,

  • 普通匹配比例,将两种匹配视为同等重要:
    • 适合 0 和 1 地位对称的变量。
d1(xi,xk)=a+dT=35,d_1(\mathbf{x}_i,\mathbf{x}_k) = \frac{a+d}{T} = \frac35,
  • 只奖励共同出现,只算 1-1,不看 0-0:
    • 适合 1 代表重要事件的出现,而 0 只是未出现的情形。
d2(xi,xk)=aT=25,d_2(\mathbf{x}_i,\mathbf{x}_k) = \frac{a}{T} = \frac25,
  • 给匹配双倍权重,每个匹配贡献 2 分,每个不匹配贡献 1 分:
    • 强调“相同”的证据。
d3(xi,xk)=2(a+d)2(a+d)+b+c=68,d_3(\mathbf{x}_i,\mathbf{x}_k) = \frac{2(a+d)} {2(a+d)+b+c} = \frac68,
  • 给不匹配双倍权重:
d4(xi,xk)=a+da+d+2(b+c)=37.d_4(\mathbf{x}_i,\mathbf{x}_k) = \frac{a+d} {a+d+2(b+c)} = \frac37.

3.4 标准化#

相似性度量对量纲(尺度)敏感,离散程度大的变量对最终相似性值的影响更大。

对于观测 ii 和变量 jj,按变量进行的标准化为

zij=xij−xˉjsj.z_{ij} = \frac{x_{ij}-\bar{x}_j}{s_j}.

标准化得分:

  • 消除量纲问题。
  • 等价于使用统计距离并取
A=diag⁡(S)−1,A=\operatorname{diag}(S)^{-1},

其中 SS 为整个数据集的样本协方差矩阵。

要注意,这里的 A=diag⁡(S)−1A=\operatorname{diag}(S)^{-1} 表示只留下 SS 的对角元素,并把所有协方差设为 0,等价于各变量标准化后再计算欧氏距离的平方,要和前面的 A=S−1A=S^{-1} 马氏距离区分开。

例子#

对象购买概率广告观看时长(分钟)广告观看时长(秒)标准化购买概率标准化观看时长
A603.0180-1.06-1
B653.52100.930
C634.02400.131

欧氏距离:

配对时长(分钟)排名时长(秒)排名标准化值排名
A-B5.025330.4122.222
A-C3.162260.0732.333
B-C2.062130.0611.281

以 A-B 对为例,使用分钟进行计算:

d(A,B)=(60−65)2+(3.0−3.5)2≈5.025\begin{aligned} d(A,B)&=\sqrt{(60-65)^2+(3.0-3.5)^2} \\ &\approx 5.025 \end{aligned}

而购买概率不变,把分钟改成秒,也就是观看时长乘以 60 后,从上面的表格可以看出,A、B、C 本身没有发生任何实质变化,只是观看时长从分钟换成了秒,A-B 和 A-C 的排名却互换了。

原因是秒数的差异比分钟数大 60 倍;平方以后,其距离贡献变成原来的 602=360060^2=3600 倍,于是观看时长几乎完全支配了欧氏距离。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

相似性度量
https://hac.he.cn/posts/stat-02/
作者
HAC
发布于
2026-09-03
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
HAC
观之非易,行且克难
Greetings
欢迎来到我的博客!这里主要分享我的学习笔记与兴趣爱好。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
46
分类
8
标签
19
总字数
116,126
运行时长
0 天
最后活动
0 天前
文章目录