La «malédiction de la dimensionnalité» existe-t-elle vraiment dans les données réelles?


17

Je comprends ce qu'est la «malédiction de la dimensionnalité», et j'ai fait quelques problèmes d'optimisation dimensionnelle élevée et je connais le défi des possibilités exponentielles.

Cependant, je doute que la "malédiction de la dimensionnalité" existe dans la plupart des données du monde réel (eh bien, mettons les images ou les vidéos de côté pendant un moment, je pense à des données telles que les données démographiques des clients et les comportements d'achat).

Nous pouvons collecter des données avec des milliers de fonctionnalités, mais il est moins probable, voire impossible, que les fonctionnalités puissent couvrir entièrement un espace avec des milliers de dimensions. C'est pourquoi les techniques de réduction de dimension sont si populaires.

En d'autres termes, il est très probable que les données ne contiennent pas le niveau exponentiel d'informations, c'est-à-dire que de nombreuses fonctionnalités sont fortement corrélées et que de nombreuses fonctionnalités satisfont aux règles 80-20 (de nombreuses instances ont la même valeur).

Dans un tel cas, je pense que des méthodes comme KNN fonctionneront encore assez bien. (Dans la plupart des livres, "la malédiction de la dimensionnalité" dit que la dimension> 10 pourrait être problématique. Dans leurs démos, ils utilisent une distribution uniforme dans toutes les dimensions, où l'entropie est vraiment élevée. Je doute que dans le monde réel, cela se produira jamais.)

Mon expérience personnelle avec des données réelles est que la «malédiction de la dimensionnalité» n'affecte pas trop la méthode du modèle (comme KNN) et dans la plupart des cas, les dimensions ~ 100 fonctionneraient toujours.

Est-ce vrai pour les autres? (J'ai travaillé avec des données réelles dans différentes industries pendant 5 ans, jamais observé "toutes les paires de distances ont des valeurs similaires" comme décrit dans le livre.)


1
Étant donné que vous avez spécifiquement exclu les images et l'analyse d'images, je vais simplement ajouter des commentaires en disant que ce champ traite de la malédiction de la dimensionnalité assez régulièrement. Il est très facile d'obtenir une solution de sur-ajustement.
Ashe

7
Les fonctionnalités catégorielles codées binaires / fictives / à chaud peuvent facilement faire exploser un modèle basé sur la distance
shadowtalker

2
Un de mes collègues a travaillé à la vente de lunettes de soleil. Un certain nombre de caractéristiques étaient catégoriques avec un grand nombre de niveaux possibles (par exemple, les marques, les matériaux des différentes parties des lunettes, etc.). J'avais vraiment peur du CoD, mais il est toujours difficile de dire s'il est présent ou non dans un ensemble de données particulier, et nous n'avons probablement pas fait beaucoup d'astuces standard, n'étant pas experts dans ce type d'analyse particulier.
S.Kolassa - Rétablir Monica

@StephanKolassa Alors, les méthodes basées sur la distance ont-elles fonctionné dans le cas d'utilisation du verre solaire?
Haitao Du

Pas très bien. Ce n'était pas un projet très réussi.
S.Kolassa - Rétablir Monica

Réponses:


15

Cet article (1) discute de la bénédiction de la non-uniformité comme contrepoint à la malédiction de la dimensionnalité. L'idée principale est que les données ne sont pas dispersées uniformément dans l'espace des fonctionnalités, de sorte que l'on peut gagner du terrain en identifiant les façons dont les données sont organisées.

(1) Pedro Domingos, "Quelques informations utiles à connaître sur l'apprentissage automatique"


7

La malédiction de la dimensionnalité dans l'apprentissage automatique est le plus souvent le problème de l'explosion d'un espace vide entre les quelques points de données dont vous disposez. Un faible nombre de données peut aggraver les choses. Voici un exemple de configuration avec 10000 échantillons où j'essaie de faire kNN avec 1 voisin.

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()

Vous n'aimiez pas les distributions entièrement uniformes, j'ai donc créé un collecteur 2D avec des dimensions plus petites (réduites de scale) parsemées autour du plan 2D des deux premières coordonnées. En l'occurrence, l'une des plus petites dimensions est prédictive (l'étiquette est 1 lorsque cette dimension est positive).

La précision chute rapidement avec une dimension croissante.Précision kNN

Bien sûr, une précision = 0,5 serait une supposition aléatoire. Avec une surface de décision, plus compliquée qu'un avion, cela empirerait.

C'est comme si les billes kNN étaient trop rares pour être utiles pour sonder un hyperplan lisse. Avec des dimensions plus élevées, ils se sentent de plus en plus seuls.

D'un autre côté, les méthodes comme SVM ont une vue globale et font beaucoup mieux.


5

Prenons par exemple les séries chronologiques (et les images et l'audio). Les lectures de capteur (Internet des objets) sont très courantes.

La malédiction de la dimensionnalité est beaucoup plus courante que vous ne le pensez. Il y a là une grande redondance, mais aussi beaucoup de bruit.

Le problème est que beaucoup de gens évitent simplement ces défis des données réelles et n'utilisent que les mêmes ensembles de données UCI cherryupicked.


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

1
Peut - être que les données du monde le plus réel est de capteurs tels que des images, des vidéos et des séries chronologiques?
Anony-Mousse -Reinstate Monica

2
La propriété @ hxd1011 markov est une abstraction qui n'a peut-être rien à voir avec des données réelles!
Sycorax dit Réintégrer Monica le

0

Il y a un merveilleux article, "Modélisation statistique: les deux cultures" , par Breiman. Il explique les deux groupes de scientifiques qui traitent des données et comment chacun d'eux regarde la "dimensionnalité". La réponse à votre question est "cela dépend" dans quel groupe vous êtes. Vérifiez le papier.


Merci @Zamir Akimbekov, il y a de grandes discussions ici , et un autre article intéressant ici
Haitao Du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.