Es el teorema del contraste relativo de Beyer et al. artículo: "¿Sobre el comportamiento sorprendente de las métricas de distancia en el espacio de alta dimensión" engañoso?

10

Esto se cita muy a menudo cuando se menciona la maldición de la dimensionalidad y va

(fórmula de la derecha llamada contraste relativo)

limrevar(El |El |XreEl |El |kmi[El |El |XreEl |El |k])=0 0,entonces:remaxrek-reminrekreminrek0 0

El resultado del teorema muestra que la diferencia entre las distancias máximas y mínimas a un punto de consulta dado no aumenta tan rápido como la distancia más cercana a cualquier punto en el espacio dimensional alto. Esto hace que una consulta de proximidad carezca de sentido e sea inestable porque hay poca discriminación entre el vecino más cercano y el más alejado.

enlace

Sin embargo, si uno realmente intenta calcular el contraste relativo de los valores de muestra, lo que significa que toma un vector que contiene valores muy pequeños y calcula la distancia al vector cero y hace lo mismo para un vector que contiene valores mucho más grandes, y luego compara los valores para una dimensión de 3 y una dimensión veces mayor, se verá que, si bien la relación disminuye, el cambio es tan pequeño que no tiene importancia para la cantidad de dimensiones realmente utilizadas en la práctica (o alguien conoce a alguien que trabaje con datos con dimensiones del tamaño del número de Graham, que supongo que es el tamaño necesario para que el efecto describiera el documento como realmente relevante, creo que no). 109 9

Como se mencionó anteriormente, este teorema se cita con mucha frecuencia para respaldar la afirmación de que medir la proximidad basada en el espacio euclidiano es una estrategia deficiente en un espacio de alta dimensión, dicen los propios autores, y sin embargo, el comportamiento propuesto no tiene lugar, lo que me hace Creo que este teorema se ha utilizado de manera engañosa.

Ejemplo: con dla dimensión

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

para d = 3
9999999999.0
para d = 1e8
9999999998.9996738

Y con 1e1 en lugar de 1e5 (digamos que los datos están normalizados)
para d = 3
99.0
para d = 1e8
98.999999999989527

Nimitz14
fuente
2
¿Cómo obtuvo una muestra de datos en la dimensión ? ¿Quizás estás confundiendo "dimensión" con "escala"? 3+109 9
whuber
2
¿Verificaste la condición de la varianza?
Aksakal

Respuestas:

8

No, el teorema no es engañoso. Ciertamente puede aplicarse incorrectamente, pero eso es cierto para cualquier teorema.

Aquí hay un simple script de MATLAB para demostrar cómo funciona:

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

La salida:

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

En mi código res1 y res2 son las dos expresiones en su ecuación del documento: una para la varianza y la segunda para el contraste.

Puede ver cómo ambos van a cero como se supone que cuando las dimensiones van de 1 a 10,000.

Aksakal
fuente
Ahora siento que la pregunta es, ¿para qué distribuciones de dónde Xviene la varianza llega a cero?
Nimitz14
2
@ Nimitz14 Eso sería una excelente pregunta para hacer por derecho propio.
Sycorax dice Reinstate Monica
3
@ Nimitz14 este teorema no debería funcionar para Cauchy, puede probarlo fácilmente reemplazando normal por student t (1). De lo contrario, creo que todas las distribuciones regulares como normal, uniforme, beta, etc. deberían estar cubiertas.
Aksakal