È il teorema del contrasto relativo di Beyer et al. articolo: "Sul comportamento sorprendente delle metriche di distanza nello spazio ad alta dimensione" fuorviante?


10

Questo è citato molto spesso quando si parla della maledizione della dimensionalità e va

(formula a destra chiamata contrasto relativo)

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

Il risultato del teorema mostra che la differenza tra le distanze massima e minima rispetto a un determinato punto di interrogazione non aumenta tanto rapidamente quanto la distanza più vicina a qualsiasi punto nello spazio dimensionale elevato. Ciò rende una query di prossimità insignificante e instabile perché vi è una scarsa discriminazione tra il vicino più vicino e il più lontano.

collegamento

Tuttavia, se si prova effettivamente a calcolare il contrasto relativo per i valori campione, il che significa che si prende un vettore contenente valori molto piccoli e si calcola la distanza dal vettore zero e si fa lo stesso per un vettore contenente valori molto più grandi, quindi si confrontano i valori per una dimensione di 3 e una dimensione 109 volte più grande, si vedrà che, mentre il rapporto diminuisce, il cambiamento è talmente piccolo da essere irrilevante per il numero di dimensioni effettivamente utilizzate nella pratica (o qualcuno conosce qualcuno che lavora con dati con dimensioni le dimensioni del numero di Graham - che immagino siano le dimensioni necessarie affinché l'effetto descritto nel documento sia effettivamente rilevante - penso di no).

Come accennato in precedenza, questo teorema viene spesso citato per sostenere l'affermazione secondo cui misurare la prossimità basata sullo spazio euclideo è una strategia scadente in uno spazio ad alta dimensione, dicono gli stessi autori, eppure il comportamento proposto non ha effettivamente luogo, rendendomi penso che questo teorema sia stato usato in modo fuorviante.

Esempio: con dla dimensione

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

per d = 3
9999999999.0
per d = 1e8
9999999998.9996738

E con 1e1 invece di 1e5 (diciamo che i dati sono normalizzati)
per d = 3
99.0
per d = 1e8
98.999999999989527


2
Come hai ottenuto un campione di dati nella dimensione ? Stai forse confondendo la "dimensione" con la "scala"? 3+109
whuber

2
Hai verificato la condizione sulla varianza?
Aksakal,

Risposte:


8

No, il teorema non è fuorviante. Può certamente essere applicato in modo errato, ma questo è vero per qualsiasi teorema.

Ecco un semplice script MATLAB per dimostrare come funziona:

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

Il risultato:

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

Nel mio codice res1 e res2 sono le due espressioni nella tua equazione dal foglio: una per la varianza e la seconda per il contrasto.

Puoi vedere come entrambi vanno a zero come previsto quando le dimensioni vanno da 1 a 10.000.


Ora penso che la domanda diventi, per quali distribuzioni da cui Xproviene la varianza va a zero?
Nimitz14

2
@ Nimitz14 Sarebbe un'ottima domanda da porre a sé stante.
Sycorax dice di reintegrare Monica il

3
@ Nimitz14 questo teorema non dovrebbe funzionare per Cauchy, puoi testarlo facilmente sostituendo normale con studente t (1). Altrimenti, penso che dovrebbero essere coperte tutte le distribuzioni regolari come normale, uniforme, beta ecc.
Aksakal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.