Eu tenho um conjunto de dados com cerca de 2.000 variáveis binárias / 200.000 linhas e estou tentando prever uma única variável dependente binária. Meu principal objetivo, neste estágio, não é obter precisão de previsão, mas identificar quais dessas variáveis são preditores importantes. Gostaria de reduzir o número de variáveis no meu modelo final para cerca de 100.
Existe uma maneira relativamente rápida de obter as variáveis mais importantes? randomForest parece demorar muito tempo.
Não preciso usar todas as 200.000 observações, portanto a amostragem é uma opção em cima da mesa.
Respostas:
Você pode começar com um filtro Univariate simples e usar a validação cruzada para decidir quais variáveis manter. A
sbf
função nocaret
pacote para R é realmente útil. Você pode ler mais sobre isso aqui , começando na página 19.fonte
Isso soa como um problema adequado para laços e amigos que fazem encolhimento e seleção de variáveis. Os Elementos de Aprendizagem Estatística descrevem laço e rede elástica para regressão e, o que é mais relevante para esse problema, regressão logística.
Os autores do livro disponibilizaram uma implementação eficiente do laço e da rede elástica como um pacote R chamado glmnet . Eu já usei esse pacote para análise de dados binários com matrizes de aproximadamente 250.000 linhas, embora um pouco menos de colunas, mas realmente executando regressões de todas as colunas em relação a todas as outras colunas. Se a matriz de dados também for escassa, a implementação também poderá tirar vantagem disso, e acredito que o método possa realmente funcionar para o conjunto completo de dados dos OPs. Aqui estão alguns comentários sobre o laço:
Para Python, há uma implementação no scikit-learn de métodos como laço e rede elástica.
fonte
glmnet
R). Outra opção é Thresholding the Lasso, que também é bastante simples de implementar. Consulte a seção 2.9 de springer.com/gp/book/9783642201912 .Você pode fazer um teste de associação de regressão logística / qui-quadrado para cada variável e reter apenas aqueles que têm um valor p menor que algum valor, digamos .2.
fonte