La "maledizione della dimensionalità" esiste davvero nei dati reali?


17

Capisco cos'è la "maledizione della dimensionalità" e ho fatto alcuni problemi di ottimizzazione dimensionale elevata e conosco la sfida delle possibilità esponenziali.

Tuttavia, dubito che la "maledizione della dimensionalità" esista nella maggior parte dei dati del mondo reale (beh, mettiamo da parte immagini o video per un momento, sto pensando a dati come i dati demografici dei clienti e il comportamento degli acquisti).

Siamo in grado di raccogliere dati con migliaia di funzionalità, ma è meno probabile che sia addirittura impossibile che le funzionalità possano estendersi completamente in uno spazio con migliaia di dimensioni. Ecco perché le tecniche di riduzione dimensionale sono così popolari.

In altre parole, è molto probabile che i dati non contengano il livello esponenziale di informazioni, vale a dire che molte funzionalità sono altamente correlate e molte funzionalità soddisfano le regole 80-20 (molte istanze hanno lo stesso valore).

In tal caso, penso che metodi come KNN funzioneranno ancora abbastanza bene. (Nella maggior parte dei libri la "maledizione della dimensionalità" afferma che la dimensione> 10 potrebbe essere problematica. Nelle loro dimostrazioni usano una distribuzione uniforme in tutte le dimensioni, dove l'entropia è davvero elevata. Dubito che nel mondo reale ciò accadrà mai.)

La mia esperienza personale con dati reali è che la "maledizione della dimensionalità" non influisce troppo sul metodo del modello (come KNN) e, nella maggior parte dei casi, dimensioni ~ 100 funzionerebbero comunque.

È vero per le altre persone? (Ho lavorato con dati reali in diversi settori per 5 anni, non ho mai osservato "tutte le coppie di distanze hanno valori simili" come descritto nel libro.)


1
Dato che hai escluso specificamente le immagini e l'analisi delle immagini, inserirò semplicemente un plug nei commenti dicendo che questo campo affronta la maledizione della dimensionalità abbastanza regolarmente. È molto facile ottenere una soluzione di overfit.
Ashe,

7
Le caratteristiche categoriali binarie / fittizie / con una sola codifica possono facilmente far saltare in aria un modello basato sulla distanza
Shadowtalker,

2
Un mio collega ha lavorato con le vendite di occhiali da sole. Un certo numero di caratteristiche erano categoriche con un gran numero di livelli possibili (ad esempio, marchi, materiali di diverse parti degli occhiali, ecc.). Avevo decisamente paura del CoD, ma è sempre difficile dire se è presente in un determinato set di dati, inoltre molto probabilmente non abbiamo fatto molti trucchi standard, non essendo esperti in questo particolare tipo di analisi.
S. Kolassa - Ripristina Monica il

@StephanKolassa Quindi, i metodi basati sulla distanza hanno funzionato nel caso d'uso del vetro solare?
Haitao Du,

Non troppo bene. Non è stato un progetto di grande successo.
S. Kolassa - Ripristina Monica il

Risposte:


15

Questo documento (1) discute la benedizione della non uniformità come contrappunto alla maledizione della dimensionalità. L'idea principale è che i dati non siano uniformemente dispersi nello spazio delle caratteristiche, quindi si può ottenere trazione identificando i modi in cui i dati sono organizzati.

(1) Pedro Domingos, "Alcune cose utili da sapere sull'apprendimento automatico"


7

La maledizione della dimensionalità nell'apprendimento automatico è più spesso il problema dell'esplosione dello spazio vuoto tra i pochi punti dati che hai. Dati di varietà bassi possono peggiorare ulteriormente. Ecco un esempio di installazione con 10000 campioni in cui provo a fare kNN con 1 vicino.

from numpy.random import normal
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import precision_score
import matplotlib.pyplot as plt
import numpy as np
from math import sqrt
from scipy.special import gamma

N=10000
N_broad=2
scale=20

dims=[]
precs=[]


def avg_distance(k):
    return sqrt(2)*gamma((k+1)/2)/gamma(k/2)

for dim in range(N_broad+1,30):
    clf = KNeighborsClassifier(1, n_jobs=-1)

    X_train=np.hstack([normal(size=(N,N_broad)), normal(size=(N,dim-N_broad))/avg_distance(dim-N_broad)/scale])
    y_train=(X_train[:,N_broad]>0).astype(int)
    clf.fit(X_train, y_train)

    X_test=np.hstack([normal(size=(N,N_broad)), normal(size=(N,dim-N_broad))/avg_distance(dim-N_broad)/scale])
    y_test=(X_test[:,N_broad]>0).astype(int)
    y_test_pred=clf.predict(X_test)

    prec=precision_score(y_test, y_test_pred)
    dims.append(dim)
    precs.append(prec)
    print(dim, prec)

plt.plot(dims, precs)
plt.ylim([0.5,1])
plt.xlabel("Dimension")
plt.ylabel("Precision")
plt.title("kNN(1) on {} samples".format(N))
plt.show()

Non ti sono piaciute le distribuzioni completamente uniformi, quindi l'ho trasformato in una varietà 2D con dimensioni più piccole (ridotte di scale) sparse sul piano 2D delle prime due coordinate. In effetti, una delle dimensioni più piccole è predittiva (l'etichetta è 1 quando quella dimensione è positiva).

La precisione diminuisce rapidamente con l'aumentare della dimensione.precisione kNN

Naturalmente, precisione = 0,5 sarebbe un'ipotesi casuale. Con una superficie di decisione, che è più complicata di un aereo, peggiorerebbe ancora di più.

È come se le palline kNN fossero troppo scarne per essere utili per sondare un iperpiano liscio. Con dimensioni più elevate si sentono sempre più soli.

D'altra parte, metodi come SVM hanno una visione globale e fanno molto meglio.


5

Consideriamo ad esempio serie storiche (e immagini e audio). Le letture dei sensori (Internet of Things) sono molto comuni.

La maledizione della dimensionalità è molto più comune di quanto si pensi. C'è una grande ridondanza lì, ma anche molto rumore.

Il problema è che molte persone semplicemente evitano queste sfide di dati reali e usano ripetutamente gli stessi insiemi di dati UCI ottimizzati.


P(X)=P(X1)Πn=2NP(Xn|Xn-1)

1
Forse i dati mondo più reale è da sensori come immagini, video, e le serie temporali?
Anony-Mousse -Reststate Monica

2
@ hxd1011 La proprietà markov è un'astrazione che potrebbe non avere nulla a che fare con i dati reali!
Sycorax dice Reinstate Monica il

0

C'è un meraviglioso articolo, "Statistical Modeling: the two culture" , di Breiman. Spiega i due gruppi di scienziati che si occupano dei dati e di come ciascuno di essi guarda alla "dimensionalità". La risposta alla tua domanda è "dipende" da quale gruppo sei. Controlla la carta.


Grazie @Zamir Akimbekov, ci sono grandi discussioni qui , e un altro documento interessante qui
Haitao Du,
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.