对维度的诅咒需要更多的直觉

机器算法验证 机器学习 欧几里得
2022-03-29 03:15:22

人们鄙视在高维空间中使用欧几里德距离,因为它不是一个可行的度量。人们认为,随着维数的增加,两个向量之间的距离会变得非常大。

但对我来说:当我们添加更多维度时,高维空间中两点之间的欧几里德距离会随着我们添加更多维度而变得更大,这是有道理的。我不太明白这里的问题。

膨胀两个向量之间的距离如何使 metirc 本身无效?距离的大小可能更大,但为什么它仍然不能成为一个可行的比较指标?

统计学习的书元素给出了一个很好的画面,试图描述欧几里距离失败的原因:

在此处输入图像描述

好吧——那又怎样?两点之间的距离越来越大?为什么这会使指标无效?当我们添加新维度时,这两个向量之间的距离会更大,这是完全有道理的,因为它们在新维度中彼此更加不同。

让我们想一个例子,我们收集了一堆玩具的长度:

  • 5.3
  • 2.2
  • 1.2

基于欧几里得距离,新玩具 4.2 的最近点是 5.3。现在让我们添加另一个维度,称为这些玩具的宽度。

  • <5.3、5.6>
  • <2.2、2.1>
  • <1.2, 0.4>

我们的新点是<4.2, 0>。现在最近的点是 <2.2, 2.1>。这是有道理的。因为那里的第二个维度有很大的不同。人们认为距离变得不那么有意义了。但我仍然可以在这里成功应用它,由此产生的距离对我来说非常有意义。

无论如何,我并不完全理解这种对欧几里得距离的仇恨——这对我来说似乎很有意义!

2个回答

在我看来,我习惯了一个基本相同但更具说明性的例子。

x1,...xl在单位内独立且均匀分布n-球以原点为中心。然后可以显示(我现在不写推导,如果您感兴趣,请告诉我)这些点到原点的最大欧几里得距离的中位数m=medmaxl(ρ(x1,0),...,ρ(xl,0))

m=[121/l]1/n
明显地,mn1.

现在,对于维度灾难的一些直觉,假设我们想使用kNN分类器(为简单起见,即使使用k=1)。这个公式给我们的是,当特征空间的维度变得足够大时,通常我们的训练样本的点将“几乎肯定”(不完全是测量理论意义上的)将几乎位于我们单位的边界上球,因此,与我们的点有几乎相同的欧几里得距离,使得到兴趣点的距离比较实际上是无用的。

这就是我喜欢这样思考标语“在高维空间中,几乎所有点之间的距离几乎相等”。希望这种直觉能让你满意。

编辑 公式证明:

1)让r(x)=ρ(x,0). 那么分布函数为r是(谁)给的

Fr(t)=P(ρ(x,0)<t)=Vn(t)Vn(1)=tn,
在哪里Vn(t)是一个半径为 N 维的球的体积t.

2)让M(X)=max(r(x1),...,r(xl)). 然后是分布M

FM(t)=P(M<t)=1P(Mt)=1(1Fr(t))l=1(1tn)l.

3) 现在,定义mFM(m)=1/2. 简单的算术现在给出了要求。

欧几里得距离有一个方面是不舒服的,因为距离往往会随着维度的增加而增加:当第一对的维度与第二对的维度不同时,比较两对点之间的距离。

假设有两个点xyRn你想计算它们之间的距离。假设一开始只向您显示第一个坐标,观察到的距离是d1=(x1y1)2. 之后,另一个坐标显露出来,观察到的距离变为d2=(x1y1)2+(x2y2)2. 机会是d2>d1即使这两点xy在两种情况下都是相同的。这意味着您无法比较不同维度的距离(但当维度固定时,您仍然可以有意义地比较不同点之间的距离)。

以坐标距离的平均值为例(d=1ni=1n|xiyi|) 可能是一种补救措施。