关于维度的诅咒

时间:2010-05-16 12:26:44

标签: database image-processing similarity dimensions

我的问题是关于这个话题,我一直在阅读。基本上我的理解是,在更高的维度上,所有点最终彼此非常接近。

我怀疑的是,这是否意味着以通常的方式计算距离(例如欧几里德)是否有效。如果它仍然有效,这意味着当比较高维度的向量时,即使第三个可能完全不相关,两个最相似的也不会与第三个差异很大。

这是对的吗?那么在这种情况下,你怎么能判断你是否有比赛?

2 个答案:

答案 0 :(得分:2)

基本上距离测量仍然是正确的,然而,当你有“真实世界”的数据时它会变得毫无意义。

我们在这里讨论的效果是,在一个维度上的两个点之间的高距离很快被所有其他维度中的小距离所掩盖。这就是为什么最后,所有点都有点相同的距离。对此有一个很好的例证:

假设我们希望根据每个维度中的值对数据进行分类。我们只是说我们将每个维度划分一次(其范围为0..1)。 [0,0.5]中的值为正,[0.5,1]中的值为负。根据这个规则,在3个维度中,12.5%的空间被覆盖。在5个维度中,它仅为3.1%。在10个维度中,它小于0.1%。

因此,在每个维度中,我们仍然允许整个价值范围的一半!这是非常多的。但所有这些都以总空间的0.1%结束 - 这些数据点之间的差异在每个维度上都很大,但在整个空间中可以忽略不计。

你可以更进一步说,你在每个维度上只削减了10%的范围。所以你允许[0,0.9]中的值。你最终仍然不到10个维度覆盖的整个空间的35%。在50个维度中,它是0.5%。因此,您可以看到,每个维度中的大范围数据都塞满了您搜索空间的一小部分。

这就是为什么你需要降低维数,你基本上忽略了信息量较少的轴上的差异。

答案 1 :(得分:0)

这是一个用外行人的简单解释。

我试图用下面显示的简单插图来说明这一点。

enter image description here

假设您具有一些数据特征x1和x2(可以假设它们是血压和血糖水平),并且您想要执行K近邻分类。如果以2D方式绘制数据,则可以很容易地看到数据很好地组合在一起,每个点都有一些近邻,可以用于计算。

现在让我们说,我们决定考虑使用新的第三个特征x3(例如年龄)进行分析。 情况(b)显示了一种情况,我们以前的所有数据都来自相同年龄的人。您可以看到它们都沿着年龄(x3)轴位于同一级别。 现在我们可以很快看到,如果我们要考虑分类的年龄,则age(x3)轴上会有很多空白。

我们目前仅对年龄使用单一级别的数据。如果我们要为年龄不同的人(红点)做出预测会怎样? 如您所见,没有足够的数据点靠近该点来计算距离并找到一些邻居。因此,如果我们希望通过新的第三个功能获得良好的预测,就必须从不同年龄的人那里收集更多数据,以填补年龄轴上的空白。

(C)本质上显示了相同的概念。这里假设我们的原始数据来自不同年龄的人。 (即我们在之前的2个特征分类任务中并不关心年龄,并且可能假设此特征对我们的分类没有影响)。

在这种情况下,假设我们的2D数据来自不同年龄的人(第三个特征)。现在,如果我们以3D绘制它们,相对靠近的2d数据会发生什么?如果以3D方式绘制它们,我们可以看到现在它们在我们新的更高维度的空间(3D)中彼此之间的距离越来越远(稀疏)。结果,由于我们沿新的第三个特征没有足够的数据用于不同的值,因此寻找邻居变得更加困难。

您可以想象,随着我们添加更多维度,数据变得越来越分离。 (换句话说,如果您想避免数据稀疏,我们将需要越来越多的数据)