Qu'est-ce que la réduction de dimensionnalité? Quelle est la différence entre la sélection de fonctionnalités et l'extraction?


59

De wikipedia,

La réduction de dimensionnalité ou réduction de dimension est le processus de réduction du nombre de variables aléatoires prises en compte. Elle peut être divisée en sélection et extraction de caractéristiques.

Quelle est la différence entre la sélection de fonctionnalités et l'extraction de fonctionnalités?

Quel est un exemple de réduction de dimensionnalité dans une tâche de traitement du langage naturel?

Réponses:


52

Tout simplement:

  • sélection des fonctionnalités: vous sélectionnez un sous-ensemble du jeu de fonctionnalités d'origine; tandis que
  • extraction de fonctionnalités: vous créez un nouvel ensemble de fonctionnalités à partir de l'ensemble de fonctionnalités d'origine.

Exemples d'extraction de caractéristiques: extraction de contours dans des images, extraction de digrammes d'un texte, extraction de phonèmes à partir d'un enregistrement de texte parlé, etc.

L'extraction d'entités implique une transformation des entités, qui souvent n'est pas réversible car certaines informations sont perdues au cours du processus de réduction de la dimensionnalité.


2
Ces deux catégories entrent dans la catégorie de l'ingénierie des fonctionnalités car elles impliquent la création ou la sélection manuelle des fonctionnalités. La réduction de la dimensionnalité implique généralement un changement de base ou une autre représentation mathématique des données
ragingSloth le

1
@ ragingSloth, je pense que le premier est certainement la sélection des fonctionnalités - et non l'ingénierie des fonctionnalités. Bien que les exemples de traitement d’image et de texte semblent effectivement être de l’ingénierie des fonctionnalités
Alexey Grigorev

Comme je l’ai trouvé, pour certaines extractions de caractéristiques, vous pouvez toujours reconstituer approximativement les dimensions originales. Mais pour la sélection des fonctionnalités, il n'y a pas de reconstruction, car vous avez supprimé les dimensions inutiles.
Bob

18

La réduction de la dimensionnalité consiste généralement à choisir une base ou une représentation mathématique dans laquelle vous pouvez décrire la variance de vos données, mais pas la totalité, afin de conserver les informations pertinentes tout en réduisant la quantité d'informations nécessaire pour la représenter. Il existe une variété de techniques pour ce faire , y compris mais sans s'y limiter PCA, ICAet Matrix Feature Factorization. Celles-ci utiliseront les données existantes et les réduiront aux éléments les plus discriminants. Elles vous permettront toutes de représenter la plupart des informations de votre jeu de données avec moins d’entités plus discriminantes.

La sélection des fonctionnalités est une sélection manuelle des fonctionnalités qui sont très discriminantes. Cela a beaucoup plus à voir avec l'ingénierie des caractéristiques qu'avec l'analyse, et demande beaucoup plus de travail de la part du scientifique des données. Cela nécessite de comprendre quels aspects de votre jeu de données sont importants dans vos prédictions, et ceux qui ne le sont pas. L'extraction de fonctionnalités implique généralement la génération de nouvelles fonctionnalités, composites de fonctionnalités existantes. Ces deux techniques entrent dans la catégorie de l’ingénierie des caractéristiques. En règle générale, l'ingénierie des caractéristiques est importante si vous souhaitez obtenir les meilleurs résultats, car elle implique la création d'informations qui n'existent peut-être pas dans votre jeu de données et l'augmentation de votre rapport signal sur bruit.


2
Je suis plutôt d’accord avec précision: la sélection des caractéristiques n’a pas besoin d’être faite à la main, elle peut être automatique. Voir par exemple la méthode Lasso ( en.wikipedia.org/wiki/Least_squares#Lasso_method ).
jrouquie le

Je suis d'accord avec votre Dimensionality Reductionclause mais diffère un peu sur l' Feature Engineeringutilisation - ce que de ce que j'ai vu est seulement Feature Extraction : Feature Selectionest considéré séparément. C'est juste une différence de terminologie.
javadba

7

Comme dans @damienfrancois, la sélection des fonctionnalités consiste à sélectionner un sous-ensemble de fonctionnalités. Ainsi, dans la PNL, il s'agirait de sélectionner un ensemble de mots spécifiques (la caractéristique typique de la PNL est que chaque mot représente une caractéristique avec une valeur égale à la fréquence du mot ou à un autre poids basé sur TF / IDF ou similaire).

La réduction de la dimensionnalité est l'introduction d'un nouvel espace de fonctions dans lequel les fonctions d'origine sont représentées. Le nouvel espace est de dimension inférieure à l'espace d'origine. Dans le cas d'un texte, l'exemple serait l' astuce de hachage dans laquelle un morceau de texte est réduit à un vecteur de quelques bits (par exemple 16 ou 32) ou d'octets. Ce qui est étonnant, c’est que la géométrie de l’espace soit préservée (avec suffisamment de bits), de sorte que les distances relatives entre les documents restent les mêmes que dans l’espace initial. Vous pouvez ainsi déployer des techniques d’apprentissage automatique sans devoir traiter des documents non liés (et énormes). de) dimensions trouvées dans le texte.


5

La sélection des caractéristiques consiste à choisir certaines des caractéristiques sur la base d'un score statistique, mais l'extraction des caractéristiques utilise des techniques pour extraire des informations de seconde couche à partir des données, par exemple des fréquences intéressantes d'un signal utilisant la transformation de Fourier.

La réduction de la dimensionnalité consiste à transformer des données en un espace de petite dimension dans lequel les données préservent leur structure euclidienne mais ne souffrent pas de malédiction de la dimensionnalité. Supposons, par exemple, que vous extrayez des entités de mots d'un jeu de données dans lequel chaque document peut être modélisé comme un point dans un espace à n dimensions et n est trop grand (exemple jouet). Dans ce cas, de nombreux algorithmes ne fonctionnent pas en fonction de la distorsion de distance d'un espace de grande dimension. Vous devez maintenant réduire la dimensionnalité en sélectionnant les fonctionnalités les plus informatives ou en les transformant en une variété basse dimension à l'aide de méthodes de réduction de dimensionnalité, telles que PCA, LLE, etc.[x1,...,xn]


Parmi les réponses disponibles, celui-ci correspond le mieux à ce que j'ai vu dans plusieurs équipes de Data Science et de la plate-forme ML
javadba

3

Pour compléter la réponse de Damien, un exemple de réduction de dimensionnalité dans la PNL est un modèle de sujet dans lequel vous représentez le document par un vecteur indiquant les pondérations des sujets qui le composent.



2

A1. Qu'est-ce que la réduction de dimensionnalité: si vous pensez aux données d'une matrice, où les lignes sont des instances et les colonnes sont des attributs (ou des entités), la réduction de dimensionnalité mappe cette matrice de données sur une nouvelle matrice comportant moins de colonnes. Pour la visualisation, si vous pensez que chaque matrice-colonne (attribut) est une dimension dans un espace de fonctions, la réduction de dimensionnalité consiste à projeter des occurrences de l’espace dimensionnel supérieur (plus de colonnes) dans un sous-espace à dimensions inférieures (moins de colonnes). La réduction de la dimensionnalité est une projection de sous-espace L’objectif type de cette transformation est (1) de conserver les informations dans la matrice de données, tout en réduisant la complexité informatique; (2) améliorer la séparabilité des différentes classes de données.

A2. Réduction de la dimensionnalité en tant que sélection ou extraction de caractéristiques: je vais utiliser le jeu de données omniprésent Iris , qui constitue sans doute le «monde de salut» de la science des données. En bref, le jeu de données Iris a 3 classes et 4 attributs (colonnes). Je vais illustrer la sélection et l’extraction de fonctionnalités pour réduire de 4 à 2 la dimensionnalité du jeu de données Iris.

Je calcule la co-variance par paires de cet ensemble de données à l'aide d'une bibliothèque en Python appelée Seaborn. Le code est: sns.pairplot (iris, hue = "espèce", marqueurs = ["o", "s", "D"]) Le chiffre que j’obtiens est que Paire d'Iris je peux sélectionner la paire d’attributs (2 dimensions) qui fournissent me la plus grande séparation entre les 3 classes (espèces) dans le jeu de données Iris. Ce serait un cas de sélection de fonctionnalités.

La prochaine étape est l'extraction de caractéristiques. Ici, je projette l'espace de caractéristiques à 4 dimensions d'Iris dans un nouveau sous-espace à 2 dimensions, qui n'est pas aligné sur l'axe d'origine. Ce sont de nouveaux attributs. Ils sont généralement basés sur la distribution dans l'espace de grande dimension d'origine. La méthode la plus populaire est l'analyse en composantes principales, qui calcule les vecteurs propres dans l'espace d'origine. PCA utilisant SVD Évidemment, nous ne sommes pas limités à utiliser uniquement une projection linéaire et globale vers un sous-espace basé sur les vecteurs propres. Nous pouvons également utiliser des méthodes de projection non linéaires. Voici un exemple d’ACP non linéaire utilisant des réseaux de neurones. ACP non linéaire utilisant NN Les attributs (dimensions) du dernier exemple sont extraits.à partir des 4 attributs originaux utilisant des réseaux de neurones. Vous pouvez expérimenter diverses variantes de PCA pour un jeu de données iris à l'aide de ce code de méthodes pca .

Résumé: Bien que les méthodes d’extraction de caractéristiques puissent sembler supérieures en performance à la sélection de caractéristiques, le choix est déterminé par l’application. Les attributs de l'extraction de caractéristiques perdent généralement l'interprétation physique, ce qui peut être un problème en fonction de la tâche à accomplir. Par exemple, si vous concevez une tâche de collecte de données très coûteuse avec des capteurs coûteux et devez économiser sur les attributs (nombre de capteurs différents), vous souhaiterez collecter un petit échantillon pilote à l'aide de tous les capteurs disponibles, puis sélectionner ceux qui sont les plus informatifs pour la tâche de collecte de données volumineuses.


1

Extrait de l'apprentissage machine pratique avec scikit-learn et Tensorflow

  1. Nettoyage des données: correction ou suppression des valeurs aberrantes (facultatif). Renseignez les valeurs manquantes (par exemple, avec zéro, moyenne, médiane, etc.) ou supprimez leurs lignes (ou colonnes).
  2. Sélection des fonctionnalités (facultatif): Supprimez les attributs qui ne fournissent aucune information utile pour la tâche.
  3. Ingénierie des fonctionnalités, le cas échéant: Discrétisez les fonctionnalités continues. Décomposer les caractéristiques (par exemple, catégorique, date / heure, etc.). Ajoutez des transformations prometteuses d’entités (par exemple, log (x), sqrt (x), x ^ 2, etc.). Regroupez les fonctionnalités dans de nouvelles fonctionnalités prometteuses.
  4. Mise à l'échelle des fonctionnalités: normaliser ou normaliser les fonctionnalités.

0

Plusieurs bonnes réponses ici, en particulier, la réponse de @Damienfrancois résume très succinctement l'idée générale.

Cependant, je ne vois aucun exemple d'ingénierie de caractéristiques pour des données relationnelles ou chronologiques. Dans ce cas, les scientifiques de données extraient généralement des modèles statistiques à travers les relations et dans le temps. Par exemple, pour prédire l'évolution future des clients dans une base de données de commerce électronique, vous pouvez extraire des quantités telles que le montant moyen des achats antérieurs ou la fréquence des achats antérieurs.

J'ai écrit un article sur ce sujet qui va beaucoup plus en détail avec plusieurs exemples ici: https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/


0

Permettez-moi de commencer par l'ordre inverse de l'extraction des entités et de la raison pour laquelle il est nécessaire de sélectionner des entités et de réduire les dimensions.

Commençons par l'utilisation de l'extraction de caractéristiques, principalement à des fins de classification. La classification est le processus permettant de décider à quelle catégorie appartient un objet particulier. Il comporte deux phases i) la phase d'apprentissage, où, étant donné les données ou les objets, leurs propriétés sont apprises à l'aide d'un processus (extraction de caractéristiques); ii) la phase de test, où l'objet inconnu est classé en utilisant les caractéristiques apprises lors de la phase précédente (de formation).

L'extraction de caractéristiques, comme son nom l'indique, étant donné que l'objectif des données est de trouver le modèle sous-jacent. Ce modèle sous-jacent qui est terme en tant que caractéristique correspondant à ces données respectives. Il existe différentes méthodologies existantes pour l'extraction de caractéristiques, telles que Support Vector Machine (SVM).

Maintenant, l’extraction de caractéristiques devrait générer des caractéristiques qui devraient être

  • robuste
  • discriminant
  • ensemble optimal de fonctionnalités

Sélection des fonctionnalités: un ensemble de données spécifique peut être représenté par une seule fonctionnalité ou un ensemble de fonctionnalités. Dans le processus de classification, un système est formé pour au moins deux cours. Le système de formation générera donc soit une fonctionnalité unique, soit un ensemble de fonctionnalités. Ces caractéristiques doivent posséder les propriétés indiquées ci-dessus.

Le problème survient lorsqu'il existe un ensemble de fonctionnalités pour chaque classe et qu'il existe une corrélation entre certaines des fonctionnalités. Cela implique que parmi les entités en corrélation, une ou quelques-unes suffisent à la représentation, et c’est là que la sélection des caractéristiques entre en scène. En outre, ces fonctionnalités doivent être stockées, mais l'augmentation de la mémoire requise pour l'ensemble des fonctionnalités augmente également.

Vient ensuite la réduction de la dimensionnalité qui n’est autre que la partie du processus de sélection des caractéristiques. C'est le processus de choix de l'ensemble optimal de fonctionnalités qui décrit le mieux les données. Il existe de nombreuses techniques identiques, telles que l'analyse en composantes principales, l'analyse en composantes indépendantes, la factorisation matricielle, etc.


-3

Par exemple ... si vous avez une terre agricole, sélectionner une zone particulière de cette terre serait une sélection de caractéristiques. dans chaque plante afin de trouver les anomalies ... car ceci serait considéré comme une extraction de traits. Dans cet exemple, la terre agricole originale correspond à la réduction de la dimensionnalité.


Non, cela n'a rien à voir avec les données spatiales en particulier. Cela s'applique aussi aux données temporelles, spatio-temporelles et autres.
Emre
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.