【问题标题】:About curse of dimensionality关于维度灾难
【发布时间】:2010-05-16 12:26:44
【问题描述】:

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

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

这是正确的吗?那么在这种情况下,你怎么知道你有没有匹配?

【问题讨论】:

  • 你能引用一些参考资料吗?
  • 嗨,马塞洛,当然。我从“Programming Collective Intelligence”和一些参考论文中读到了一些关于集群的内容。请注意,我并不是说这些来源说明了我在帖子中所写的内容。我只是想获得一些基本的了解。

标签: database image-processing similarity dimensions


【解决方案1】:

基本上距离测量仍然是正确的,但是,当您拥有“真实世界”数据时,它变得毫无意义,这是嘈杂的。

我们在这里讨论的效果是,一个维度中两点之间的大距离很快就会被所有其他维度中的小距离所掩盖。这就是为什么最终,所有点都以相同的距离结束。对此有一个很好的说明:

假设我们要根据数据在每个维度中的值对数据进行分类。我们只是说我们将每个维度划分一次(范围为 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%。因此,您会看到,每个维度中的大量数据都被塞进了您搜索空间的一小部分。

这就是您需要降维的原因,在这种情况下,您基本上会忽略信息量较少的轴上的差异。

【讨论】:

  • 在高维空间中降维不会给你一个量级(例如,在多媒体检索中处理 1000 维特征向量以进行最近邻搜索)
【解决方案2】:

下面是通俗的简单解释。

我试图用一个简单的插图来说明这一点。

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

现在假设我们决定考虑新的第三个特征 x3(比如年龄)进行分析。 案例(b)显示了我们之前的所有数据都来自同龄人的情况。您可以看到它们都位于沿年龄 (x3) 轴的同一级别。 现在我们可以很快看到,如果我们想在分类中考虑年龄,那么沿年龄(x3)轴有很多空白空间。

我们目前只有一个级别的年龄数据。如果我们想对年龄不同的人(红点)进行预测,会发生什么? 如您所见,该点附近没有足够的数据点来计算距离并找到一些邻居。所以,如果我们想用这个新的第三个特征进行良好的预测,我们必须去收集更多来自不同年龄的人的数据,以填补年龄轴上的空白。

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

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

您可以想象,随着我们添加更多维度,数据之间的距离会越来越大。 (换句话说,如果您想避免我们的数据出现稀疏性,我们需要越来越多的数据)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2012-03-16
    • 2018-06-02
    • 2010-09-12
    • 1970-01-01
    • 2010-12-04
    • 2021-07-14
    相关资源
    最近更新 更多