database - 关于维数灾难

标签 database image-processing similarity dimensions

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

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

这是正确的吗?那么在这种情况下,您如何判断是否匹配?

最佳答案

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

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

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

这就是您需要降维的原因,您基本上可以忽略信息量较少的轴上的差异。

关于database - 关于维数灾难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2843711/

相关文章:

mysql - 如何合并 2 个或更多类似的 mysql 行?

database - 使用 MAX() 方法重新启动表的初始 ID

image-processing - 使用 node.js 动态裁剪和调整图像大小

python - 如何根据图像质量确定使用哪种 OCR 方法

python - 使用用户的个人数据计算相似度?

MySQL : "Appending more data to a column"

php - 从具有多个要求的两个表中选择值,但只使用其中一个

python - 使用 python 提取二值图像中的连接像素

python - Pandas DataFrame 中文本的 Jaccard 相似度

elasticsearch - Elasticsearch更改相似性不起作用