La sélection des fonctionnalités est-elle nécessaire?

11

Je voudrais exécuter un modèle d'apprentissage automatique comme la forêt aléatoire, le renforcement du gradient ou SVM sur mon jeu de données. Il y a plus de 200 variables prédictives dans mon jeu de données et mes classes cibles sont une variable binaire.

Dois-je exécuter la sélection des fonctions avant l'ajustement du modèle? Cela affecte-t-il considérablement les performances du modèle ou n'y a-t-il pas beaucoup de différence si j'adapte directement le modèle en utilisant toutes les variables prédictives?

LUSAQX
la source
Quelle est la taille de votre jeu de données? Si vous avez des milliers d'échantillons et 200 variables prédictives, les chances sont assez élevées qu'avec un modèle comme Random Forests, vous pourrez déjà atteindre des performances assez élevées. Une sélection de fonctionnalités supplémentaire améliorera encore vos performances.
Archie
@Archie Oui, la taille de mon jeu de données est similaire à celle que vous avez mentionnée. «Sélection supplémentaire des fonctionnalités», entendez-vous effectuer la sélection des fonctionnalités avant l'ajustement du modèle et cela peut-il favoriser les performances du modèle?
LUSAQX
Je veux dire que je voudrais d'abord essayer toutes les fonctionnalités, Random Forests serait un excellent classificateur pour commencer. Si vous souhaitez ensuite augmenter les performances, je regarderais par exemple l' importance des fonctionnalités pour sélectionner les fonctionnalités les plus importantes.
Archie
D'accord. C'est ce que j'ai fait jusqu'à présent. J'essaierai certaines méthodes de sélection des fonctionnalités avant l'ajustement du modèle pour voir s'il y a une amélioration d'ici là.
LUSAQX
Une réponse courte de ma pratique récente, la sélection des fonctionnalités est nécessaire pour la comparaison des modèles. Certains algorithmes fonctionneraient mieux sur un ensemble de fonctionnalités tandis que d'autres algorithmes sur un autre ensemble.
LUSAQX

Réponses:

11

La sélection des fonctionnalités peut être considérée comme une étape à éviter. Vous devez passer du temps de calcul afin de supprimer des fonctionnalités et réellement perdre des données et les méthodes que vous devez effectuer pour la sélection des fonctionnalités ne sont pas optimales car le problème est NP-Complete . Son utilisation ne ressemble pas à une offre que vous ne pouvez pas refuser.

Alors, quels sont les avantages de l'utiliser?

  1. De nombreuses fonctionnalités et un faible rapport échantillons / fonctionnalités introduiront du bruit dans votre jeu de données. Dans un tel cas, votre algorithme de classification est susceptible de s'adapter et vous donne un faux sentiment de bonne performance.
  2. La réduction du nombre de fonctionnalités réduira le temps d'exécution dans les étapes ultérieures. Cela vous permettra à son tour d'utiliser des algorithmes de complexité plus élevée, de rechercher plus d'hyper paramètres ou de faire plus d'évaluations.
  3. Un ensemble de fonctionnalités plus petit est plus compréhensible pour l'homme. Cela vous permettra de vous concentrer sur les principales sources de prévisibilité et de faire une ingénierie des fonctionnalités plus précise. Si vous devez expliquer votre modèle à un client, il vaut mieux présenter un modèle avec 5 fonctionnalités qu'un modèle avec 200 fonctionnalités.

Maintenant, pour votre cas spécifique: je vous recommande de commencer à calculer les corrélations entre les fonctionnalités et le concept. Le calcul des corrélations entre toutes les fonctionnalités est également informatif. Notez qu'il existe de nombreux types de corrélations utiles (par exemple, Pearson , informations mutuelles ) et de nombreux attributs qui peuvent les affecter (par exemple, rareté, déséquilibre conceptuel). Les examiner au lieu d'aller aveuglément avec un algorithme de sélection de fonctionnalités pourrait vous faire gagner beaucoup de temps à l'avenir.

Je ne pense pas que vous aurez beaucoup de problèmes de temps d'exécution avec votre jeu de données. Cependant, votre rapport échantillons / fonctionnalités n'est pas trop élevé, vous pouvez donc bénéficier de la sélection des fonctionnalités.

Choisissez un classificateur de faible complexité (par exemple, régression linéaire, petit arbre de décision) et utilisez-le comme référence. Essayez-le sur l'ensemble de données complet et sur certains ensembles de données avec un sous-ensemble des fonctionnalités. Une telle référence vous guidera dans l'utilisation de la sélection des fonctionnalités. Vous aurez besoin de ces conseils car il existe de nombreuses options (par exemple, le nombre de fonctionnalités à sélectionner, l'algorithme de sélection de fonctionnalités) et puisque l'objectif est généralement la prédication et non la sélection de fonctionnalités, de sorte que la rétroaction est au moins à un pas.

DaL
la source
Merci beaucoup. Mais pour un classifieur non linéaire comme la forêt aléatoire, a-t-il également besoin de variables prédictives indépendantes les unes des autres? Je suppose que non, mais pourrait se tromper. Comment la corrélation guide-t-elle la sélection des fonctionnalités?
LUSAQX
La forêt aléatoire est une collection d'arbres qui s'adaptent bien aux variables dépendantes. En effet, dans chaque nœud de l'arborescence, l'ensemble de données est conditionné par toutes les variables situées au-dessus. Le problème est que la croissance de l'arbre est heuristique, donc le choix de la variable ci-dessus n'a peut-être pas été optimal.
DaL
La corrélation ne compare que des paires de variables et ne peut donc pas vous donner une image complète. D'un autre côté, vous obtenez le résultat en O (n ^ 2) et non en O (2 ^ n) ... Le guide est généralement spécifique à l'ensemble de données, donc j'ai du mal à l'expliquer de cette façon. Quelques exemples est la suppression des variables qui sont redondantes (très corrélées à d'autres variables). L'examen de la force de la corrélation peut indiquer si vous pouvez utiliser un petit modèle ou si vous devrez utiliser de nombreux apprenants faibles. L'identification d'un sous-ensemble qui n'est pas trop corrélé les uns avec les autres pourrait indiquer que la co-formation sera utile.
DaL
0

Oui, la sélection des fonctionnalités est l'une des tâches les plus cruciales pour les problèmes d'apprentissage automatique, après avoir effectué la résolution et le nettoyage des données. vous pouvez trouver les fonctions implémentant le processus de sélection des fonctionnalités en utilisant l'importance des fonctionnalités XGBOOST ici.

https://github.com/abhisheksharma4194/Machine-learning

Abhishek Sharma
la source