是Beyer等人的相对对比度定理。论文:“关于高维空间中距离度量的惊人行为”引起误解?


10

这在提到维数诅咒时经常被引用

(右手公式称为相对对比度)

limdvar(||Xd||kE[||Xd||k])=0,then:DmaxdkDmindkDmindk0

定理的结果表明,到给定查询点的最大距离和最小距离之间的差不会像在高维空间中到任何点的最近距离一样快。这使得邻近查询变得毫无意义且不稳定,因为最近邻居和最远邻居之间的区分度很差。

链接

但是,如果实际上尝试计算样本值的相对对比度,则意味着要获取一个包含非常小的值的向量,并计算到零向量的距离,然后对包含更大值的向量进行相同的计算,然后将其与尺寸为3且尺寸为109倍的尺寸,人们会看到,尽管该比例确实减小了,但变化却很小,以至于与实际使用的尺寸数量无关(或者有人知道有人在工作吗?数据的大小与Graham数的大小相同-我想这是描述纸张的效果与实际相关所需的大小-我认为不是)。

如前所述,该定理经常被引用来支持这样的说法,即基于欧几里德空间来测量接近度在高维空间中是一种较差的策略,作者本人也是这样说的,但是建议的行为实际上并未发生,这使我认为该定理已被误导使用。

示例:具有d尺寸

a=np.ones((d,)) / 1e5
b=np.ones((d,)) * 1e5
dmin,dmax=norm(a), norm(b)
(dmax-dmin)/dmin

对于d = 3
9999999999.0
对于d = 1e8
9999999998.9996738

并使用 d = 1e8的
d = 3 用1e1代替1e5(假设数据已标准化)
99.0

98.999999999989527


2
您如何获得维的数据样本?您是否可能将“尺寸”与“比例”混淆?3+109
ub

2
您是否检查了方差的条件?
阿克萨卡尔州

Answers:


8

不,该定理不会引起误解。当然可以错误地应用它,但是对于任何定理都是如此。

以下是简单的MATLAB脚本来演示其工作原理:

xd = randn(1e5,10000);
%%
cols = [1,10,100,1000,10000];
for c = cols
    xdt = table(xd(:,1:c));
    res = table2array(rowfun(@norm,xdt));
    mr = mean(res);
    res1 = var(res/mr);
    res2 = (max(res) - min(res))/min(res);
    fprintf('res1: %f, res2: %f\n',res1,res2)
end

输出:

res1: 0.568701, res2: 2562257.458668
res1: 0.051314, res2: 9.580602
res1: 0.005021, res2: 0.911065
res1: 0.000504, res2: 0.221981
res1: 0.000050, res2: 0.063720

在我的代码中,res1和res2是本文方程式中的两个表达式:一个用于方差,第二个用于对比度。

您可以看到尺寸从1到10,000时,两者都将如预期的那样变为零。


现在,我觉得问题就变成了,X方差从哪个分布得出零?
Nimitz17年

2
@ Nimitz14就其本身而言,这将是一个很好的问题。
Sycorax说恢复莫妮卡

3
@ Nimitz14该定理不适用于柯西,您可以通过用学生t(1)代替法线轻松地对其进行测试。否则,我认为应该涵盖所有正态分布,例如正态分布,均值分布,Beta等。
阿克萨卡(Aksakal)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.