Sélection des fonctionnalités vs extraction des fonctionnalités. Lequel utiliser quand?

16

L'extraction et la sélection d'entités réduisent essentiellement la dimensionnalité des données, mais l'extraction d'entités rend également les données plus séparables, si j'ai raison.

Quelle technique serait préférée à l'autre et quand?

Je pensais, puisque la sélection des fonctionnalités ne modifie pas les données d'origine et ses propriétés, je suppose que vous utiliserez la sélection des fonctionnalités lorsqu'il est important que les fonctionnalités sur lesquelles vous vous entraînez restent inchangées. Mais je ne peux pas imaginer pourquoi vous voudriez quelque chose comme ça ..

Sid
la source

Réponses:

18

Ajoutant à la réponse donnée par Toros,

Ces (voir ci-dessous les puces) trois sont assez similaires mais avec de subtiles différences - :( concis et facile à retenir)

  • extraction et ingénierie des fonctionnalités : transformation des données brutes en fonctionnalités adaptées à la modélisation;

  • transformation des fonctionnalités : transformation des données pour améliorer la précision de l'algorithme;

  • sélection des fonctionnalités : suppression des fonctionnalités inutiles.

Juste pour ajouter un exemple de la même chose,

Extraction et ingénierie des fonctionnalités (nous pouvons en extraire quelque chose)

  • Textes (ngrams, word2vec, tf-idf etc.)
  • Images (CNN'S, textes, questions et réponses)
  • Données géospatiales (lat, long etc.)
  • Date et heure (jour, mois, semaine, année, en fonction du roulement)
  • Séries chronologiques, web, etc.
  • Techniques de réduction dimensionnelle (PCA, SVD, faces propres, etc.)
  • Peut-être que nous pouvons également utiliser le clustering (DBSCAN, etc.)
  • .....(Et plein d'autres)

Transformations de fonctionnalités (les transformer pour donner un sens)

  • Normalisation et modification de la distribution (mise à l'échelle)
  • Les interactions
  • Remplir les valeurs manquantes (remplissage médian, etc.)
  • .....(Et plein d'autres)

Sélection des fonctionnalités (construction de votre modèle sur ces fonctionnalités sélectionnées)

  • Approches statistiques
  • Sélection par modélisation
  • Recherche dans la grille
  • Validation croisée
  • .....(Et plein d'autres)

J'espère que cela t'aides...

Regardez les liens partagés par d'autres. Ils sont assez sympas ...

Aditya
la source
belle façon de répondre à +1 pour cela.
Toros91
Bravo à cette communauté .. J'en apprends beaucoup ...
Aditya
1
C'est vrai que je suis membre depuis octobre 2017. J'ai appris beaucoup de choses. J'espère que ce sera la même chose pour vous aussi. J'ai lu vos réponses, elles sont bonnes .BTW désolé pour la chose que vous avez traversée SO. Je ne pouvais pas voir le tout, mais comme Neil Slater l'a dit, vous avez gardé votre sang-froid jusqu'à la fin. Continuez! Nous avons encore un long chemin à parcourir. :)
Toros91
Quel est l'ordre dans lequel ceux-ci doivent être traités? En plus du nettoyage et du fractionnement des données. Lequel des 5 est la première étape?
technazi
Le fractionnement des données est effectué à la toute fin lorsque vous vous assurez que les données sont prêtes à être envoyées pour la modélisation ... Et à mon humble avis, il n'y a pas un tel ordre pour les choses mentionnées ci-dessus car elles se chevauchent assez souvent (extraction de fonctionnalités, ingénierie de fonctionnalités, Transformation des fonctionnalités.) Mais la sélection des fonctionnalités est sûrement effectuée après la division des données en train en tant que validation, à condition que vous utilisiez la métrique de votre modèle ou quelque chose d'équivalent sur un ensemble de données de validation (pour mesurer ses performances) pour la validation croisée ou quelque chose d'équivalent, vous pouvez commencer de manière itérative suppression des colonnes et voir imp colsorimp
Aditya
5

Comme l'a dit Aditya, il y a 3 termes liés aux fonctionnalités qui sont parfois confondus. Je vais essayer de donner une explication sommaire à chacun d'eux:

  • Extraction d'entités : génération d'entités à partir de données dont le format est difficile à analyser directement / qui ne sont pas directement comparables (par exemple, images, séries chronologiques, etc.) Dans l'exemple d'une série chronologique, exemple: durée des séries chronologiques, période, valeur moyenne, std, etc.
  • Transformation d'entités : Transformation d'entités existantes afin d'en créer de nouvelles basées sur les anciennes. Une analyse de composante principale (pca) qui utilise une transformation orthogonale afin de produire un ensemble de variables linéairement non corrélées sur la base de l'ensemble initial de variables est une technique très utilisée pour la réduction de la dimensionnalité.
  • Sélection d'entités : sélection des entités ayant la plus haute "importance" / influence sur la variable cible, à partir d'un ensemble d'entités existantes. Cela peut être fait avec différentes techniques: par exemple la régression linéaire, les arbres de décision, le calcul des poids "d'importance" (par exemple le score de Fisher, ReliefF)

Si la seule chose que vous souhaitez réaliser est la réduction de la dimensionnalité dans un jeu de données existant, vous pouvez utiliser des méthodes de transformation d'entités ou de sélection d'entités. Mais si vous avez besoin de connaître l'interprétation physique des fonctionnalités que vous identifiez comme "importantes" ou si vous essayez de limiter la quantité de données qui doivent être collectées pour votre analyse (vous avez besoin de tout l'ensemble initial de fonctionnalités pour la transformation des fonctionnalités), alors seule la sélection des fonctionnalités peut fonctionner.

Vous pouvez trouver plus de détails sur la sélection d'entités et la réduction de dimensionnalité dans les liens suivants:

missrg
la source
4

Je pense que ce sont 2 choses différentes,

Commençons par la sélection des fonctionnalités :

Cette technique est utilisée pour sélectionner les caractéristiques qui expliquent le plus la variable cible (a une corrélation avec la variable cible). Ce test est exécuté juste avant l'application du modèle sur les données.

Pour mieux l'expliquer, prenons un exemple: il y a 10 caractéristique et 1 variable cible, 9 caractéristiques expliquent 90% de la variable cible et 10 caractéristiques ensemble 91% de la variable cible. La variable 1 ne fait donc pas beaucoup de différence, vous avez donc tendance à supprimer cela avant la modélisation (elle est également subjective pour l'entreprise). Je peux également être appelé comme Predictor Importance.

Parlons maintenant de l' extraction de fonctionnalités ,

Qui est utilisé dans l'apprentissage non supervisé, extraction des contours dans les images, extraction des Biogrammes d'un texte, extraction des phonèmes de l'enregistrement du texte parlé. Lorsque vous ne savez rien sur les données comme aucun dictionnaire de données, trop de fonctionnalités, ce qui signifie que les données ne sont pas dans un format compréhensible. Ensuite, vous essayez d'appliquer cette technique pour obtenir certaines fonctionnalités qui expliquent la plupart des données. L'extraction d'entités implique une transformation des entités, qui souvent n'est pas réversible car certaines informations sont perdues dans le processus de réduction de dimensionnalité.

Vous pouvez appliquer l'extraction d'entités sur les données données pour extraire des entités, puis appliquer la sélection d'entités par rapport à la variable cible pour sélectionner le sous-ensemble qui peut aider à créer un bon modèle avec de bons résultats.

vous pouvez passer par ces Link-1 , Link-2 pour une meilleure compréhension.

nous pouvons les implémenter en R, Python, SPSS.

faites-moi savoir si vous avez besoin de plus de précisions.

Toros91
la source
3

Les deux sont très différents: la sélection d'entités réduit en effet les dimensions, mais l'extraction d'entités ajoute des dimensions qui sont calculées à partir d'autres entités.

Pour les données de panel ou de séries chronologiques, on a généralement la variable datetime, et on ne veut pas entraîner la variable dépendante à la date elle-même car elles ne se produiront pas à l'avenir. Vous devez donc éliminer l'élimination de datetime: feature.

D'un autre côté, le jour de la semaine / du week-end peut être très pertinent, nous devons donc calculer l'état de la semaine à partir de l'extraction de datetime: feature.

vinnief
la source
0

Une partie essentielle de la réussite d'un projet Machine Learning consiste à proposer un bon ensemble de fonctionnalités sur lesquelles vous entraîner. Ce processus, appelé ingénierie des fonctionnalités, implique:

• Sélection des fonctionnalités: sélection des fonctionnalités les plus utiles pour vous entraîner parmi les fonctionnalités existantes.
• Extraction d'entités: combiner des entités existantes pour en produire une plus utile (comme nous l'avons vu précédemment, les algorithmes de réduction de dimensionnalité peuvent aider).
• Création de nouvelles fonctionnalités en collectant de nouvelles données

Citation: "Un apprentissage automatique pratique avec SciKit-Learn, Keras et Tensorflow - Aurelien Geron"

Aditya
la source