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:
- Lasso atinge a seleção de variáveis usando uma função de penalidade que não é suave (the -norm), que geralmente resulta em estimativas de parâmetros com alguns parâmetros exatamente iguais a 0. Quantos parâmetros diferentes de zero são estimados e quanto os parâmetros diferentes de zero são reduzidos, é determinado por um parâmetro de ajuste. A eficiência da implementação no glmnet depende muito do fato de que, para uma grande penalidade, apenas alguns parâmetros são diferentes de 0.ℓ1 1
- A seleção do parâmetro de ajuste geralmente é feita por validação cruzada, mas mesmo sem a etapa de validação cruzada, o método pode fornecer uma boa sequência de variáveis selecionadas indexadas pelo parâmetro de penalidade.
- O lado negativo, para a seleção de variáveis, é que o laço pode ser instável na seleção de variáveis, em particular, se elas estiverem um pouco correlacionadas. A penalidade líquida elástica mais geral foi inventada para melhorar essa instabilidade, mas não resolve o problema completamente. Laço adaptável é outra idéia para melhorar a seleção de variáveis para o laço.
- A seleção de estabilidade é um método geral sugerido por Meinshausen e Bühlmann para obter maior estabilidade das variáveis selecionadas com métodos como o laço. Requer vários ajustes em subamostras do conjunto de dados e, como tal, é muito mais exigente em termos de computação.
- Uma maneira razoável de pensar no laço é como um método para gerar um conjunto unidimensional de modelos "bons", que variam de um modelo de variável única a um modelo mais complicado (não necessariamente incluindo todas as variáveis) parametrizado pelo parâmetro de penalidade. Por outro lado, os filtros univariados produzem uma seleção ou pedido apenas de bons modelos de variável única.
Para Python, há uma implementação no scikit-learn de métodos como laço e rede elástica.