Je me demande s'il existe des algorithmes (peut-être des algorithmes génétiques) dans R pour la construction des fonctionnalités (dérivant des prédicteurs candidats à partir des prédicteurs existants)? Je pense à une routine pour tester des puissances d'ordre supérieur, des interactions, des rapports et des combinaisons linéaires et des fonctions non linéaires de variables existantes (sin, cos, atan, etc.).
Cela pourrait être une routine de filtrage ou d'encapsulation (c'est-à-dire ne pas utiliser d'algorithme d'apprentissage ou en utiliser un pour définir l'adéquation de la fonctionnalité).
Mon objectif est de «découvrir» des ratios potentiellement significatifs et similaires de prédicteurs existants.
Merci!
Réponses:
Il me semble que cela vous rendrait très vulnérable à des problèmes tels que la corrélation fallacieuse et même le sur-ajustement. J'oublie le nom du principe qui stipule que plus vous essayez de modèles, plus vous risquez de tomber sur un mauvais - si vous essayez autant de modèles que pour exécuter réellement un algorithme génétique, vous pouvez imaginer comment ce principe est violé.
la source
Vous pouvez vous y prendre comme ceci: à partir d'un data.frame, vous ajoutez un ensemble `` raisonnable '' de prédicteurs transformés ou même des interactions à vos données (model.matrix et similaires devraient pouvoir le retirer).
Une fois que vous y êtes, n'importe quelle méthode de sélection de variables pourrait faire l'affaire.
glmnet
vient à l'esprit, mais il existe de nombreuses options. Un inconvénient de cette façon de travailler est qu'il sera difficile de s'assurer que l'effet principal est dans le modèle lors d'une interaction. Peut-être que certaines formes de sélection de variables prennent en charge cela, mais je n'en connais pas de plus évidentes en dehors des procédures par étapes (qui défieraient le but).la source
Vous pouvez commencer par quelque chose de simple comme trouver des composants principaux ou des composants indépendants . Vous pouvez également devenir un peu fou et générer toutes les interactions bidirectionnelles de vos variables. De toute évidence, lorsque vous générez et testez plus de fonctionnalités, vous avez besoin d'un algorithme de sélection de fonctionnalités plus robuste contre le sur-ajustement.
Certains algorithmes de modélisation, comme MARS , les forêts aléatoires et les SVM non linéaires trouvent automatiquement certaines interactions entre vos fonctionnalités d'origine.
la source