J'ai un ensemble de données avec environ 2 000 variables binaires / 200 000 lignes et j'essaie de prédire une seule variable dépendante binaire. Mon objectif principal à ce stade n'est pas d'obtenir l'exactitude des prévisions, mais plutôt d'identifier lesquelles de ces variables sont des prédicteurs importants. J'aimerais ramener le nombre de variables dans mon modèle final à environ 100.
Existe-t-il un moyen relativement rapide d'obtenir les variables les plus importantes? randomForest semble prendre beaucoup de temps.
Je n'ai pas à utiliser les 200 000 observations, donc l'échantillonnage est une option sur la table.
Réponses:
Vous pouvez commencer avec un simple filtre univarié et utiliser la validation croisée pour décider des variables à conserver. La
sbf
fonction dans lecaret
package pour R est vraiment utile. Vous pouvez en savoir plus ici , à partir de la page 19.la source
Cela ressemble à un problème approprié pour le lasso et les amis qui effectuent un rétrécissement et une sélection variable. Les éléments de l'apprentissage statistique décrivent le lasso et le filet élastique pour la régression et, ce qui est plus pertinent pour ce problème, la régression logistique.
Les auteurs du livre ont mis à disposition une implémentation efficace du lasso et du filet élastique sous la forme d'un package R appelé glmnet . J'ai déjà utilisé ce package pour l'analyse de données binaires avec des matrices de données d'environ 250 000 lignes, bien qu'un peu moins de colonnes, mais exécutant en fait des régressions de toutes les colonnes par rapport à toutes les autres colonnes. Si la matrice de données est également clairsemée, la mise en œuvre peut également en profiter, et je pense que la méthode peut réellement fonctionner pour l'ensemble de données OPs. Voici quelques commentaires sur le lasso:
Pour Python, il existe une implémentation dans scikit-learn de méthodes telles que le lasso et le filet élastique.
la source
glmnet
dans R). Une autre option est Thresholding the Lasso, qui est également assez simple à implémenter. Voir la section 2.9 de springer.com/gp/book/9783642201912 .Vous pouvez faire un test d'association de régression logistique / khi carré pour chaque variable et ne conserver que celles qui ont une valeur p inférieure à une certaine valeur, par exemple .2.
la source