J'ai du mal à comprendre la malédiction de la dimensionnalité. Plus précisément, je l'ai rencontré en faisant le scikit-learn
tutoriel en python. Quelqu'un peut-il expliquer plus simplement ce qui suit? Désolé, j'essaie de comprendre depuis longtemps et je ne comprends pas comment ils ont calculé le nombre d'exemples de formation pour obtenir un estimateur KNN efficace?
Voici l'explication:
Pour qu'un estimateur soit efficace, il faut que la distance entre les points voisins soit inférieure à une valeur d, qui dépend du problème. Dans une dimension, cela nécessite en moyenne n ~ 1 / j points. Dans le contexte de l'exemple KNN ci-dessus, si les données sont décrites par une seule caractéristique avec des valeurs allant de 0 à 1 et avec n observations d'entraînement, les nouvelles données ne seront pas plus éloignées que 1 / n. Par conséquent, la règle de décision du plus proche voisin sera efficace dès que 1 / n est petit par rapport à l'échelle des variations d'entités entre classes.
Si le nombre d'entités est p, vous avez maintenant besoin de n ~ 1 / d ^ p points. Disons que nous avons besoin de 10 points dans une dimension: Maintenant, 10 ^ p points sont requis dans p dimensions pour ouvrir l'espace [0, 1]. Lorsque p devient grand, le nombre de points d'apprentissage requis pour un bon estimateur croît de façon exponentielle.
EDIT: le tilde ( ~
) est-il également censé représenter approximatif dans cet exemple? ou l'opérateur tilde python?
la source
Réponses:
Traduire ce paragraphe:
Soit un ensemble de fonctionnalités décrivant un point de données. Vous regardez peut-être la météo. Cet ensemble de fonctionnalités peut inclure des éléments tels que la température, l'humidité, l'heure de la journée, etc. Ainsi, chaque point de données peut avoir une fonctionnalité (si vous ne regardez que la température) ou il peut avoir 2 fonctionnalités (si vous regardez la température) et humidité) et ainsi de suite. Ce que dit ce paragraphe, c'est qu'en fonction du nombre de dimensions de vos données (combien de fonctionnalités elles ont), plus il est difficile de faire un estimateur. C'est parce que si vous avez simplement une caractéristique de données, ou des données à 1 dimension, alors lorsque vous allez représenter graphiquement ces données, vous obtenez un graphique linéaire et imaginer un graphique linéaire entre disons 0-50 degrés C, cela ne prend que 50 points aléatoires avant chaque point de données sont à environ 1 degré de tout autre point de données. Maintenant, laisse' s pensez à 2 dimensions, en parlant de l'humidité et de la température, maintenant il est plus difficile de trouver que d de telle sorte que tous les points soient dans les unités "d" les uns des autres. Imaginez que la température se situe toujours entre 0 et 50, mais maintenant, l'humidité est également comprise entre 0 et 100%. Combien de points aléatoires faut-il pour obtenir tous les points à 1 ou 2 mètres l'un de l'autre? Maintenant, c'est 100 * 50 ou ~ 5000! Imaginez maintenant 3 dimensions, etc. Vous commencez à avoir besoin de beaucoup plus de points pour vous assurer que chaque point est à l'intérieur de d d'un autre point. Pour vous faciliter la vie, essayez de supposer que «d» est égal à 1 et voyez ce qui se passe. J'espère que cela pourra aider! Combien de points aléatoires faut-il pour obtenir tous les points à 1 ou 2 mètres l'un de l'autre? Maintenant, c'est 100 * 50 ou ~ 5000! Imaginez maintenant 3 dimensions, etc. Vous commencez à avoir besoin de beaucoup plus de points pour vous assurer que chaque point est à l'intérieur de d d'un autre point. Pour vous faciliter la vie, essayez de supposer que «d» est égal à 1 et voyez ce qui se passe. J'espère que cela pourra aider! Combien de points aléatoires faut-il pour obtenir tous les points à 1 ou 2 mètres l'un de l'autre? Maintenant, c'est 100 * 50 ou ~ 5000! Imaginez maintenant 3 dimensions, etc. Vous commencez à avoir besoin de beaucoup plus de points pour vous assurer que chaque point est à l'intérieur de d d'un autre point. Pour vous faciliter la vie, essayez de supposer que «d» est égal à 1 et voyez ce qui se passe. J'espère que cela pourra aider!
la source
n~1/d
signifierait que n doit être d'environ 1? Cela n'a pas beaucoup de sens?matty-d
a déjà fourni une très bonne réponse, mais j'ai trouvé une autre réponse qui explique également ce problème, d'un utilisateur de Quora, Kevin Lacker:la source
Cet exemple peut donner une certaine intuition du problème, mais n'est en fait pas une preuve rigoureuse du tout: ce n'est qu'un exemple où de nombreux échantillons sont nécessaires pour obtenir une "bonne" couverture spatiale. Il pourrait y avoir (et il y a en effet, par exemple, des hexagones en 2D déjà) des couvertures beaucoup plus efficaces qu'une grille régulière ... (la zone sophistiquée de séquences à faible écart est consacrée à cela) ... et prouvant que même avec de telles couvertures meilleures il y a encore une malédiction de dimensionnalité est tout à fait un autre problème. En fait, dans certains espaces fonctionnels, il existe même des moyens de contourner ce problème apparent.
la source