Esto suena como un problema adecuado para el lazo y los amigos que hacen contracción y selección variable. Los Elementos del aprendizaje estadístico describen el lazo y la red elástica para la regresión y, lo que es más relevante para este problema, la regresión logística.
Los autores del libro han hecho una implementación eficiente de lazo y red elástica disponible como un paquete R llamado glmnet . Anteriormente he usado este paquete para el análisis de datos binarios con matrices de datos de aproximadamente 250,000 filas, aunque algunas columnas menos, pero en realidad ejecutando regresiones de todas las columnas contra todas las demás columnas. Si la matriz de datos también es escasa, la implementación también puede aprovechar eso, y creo que el método realmente puede funcionar para el conjunto de datos completo de los OP. Aquí hay algunos comentarios sobre el lazo:
- Lasso logra la selección de variables mediante el uso de una función de penalización que no es uniforme (el -norm), que generalmente da como resultado estimaciones de parámetros con algunos parámetros que son exactamente iguales a 0. Cuántos parámetros distintos de cero se estiman y cuánto los parámetros distintos de cero se reducen, se determina mediante un parámetro de ajuste. La eficiencia de la implementación en glmnet depende en gran medida del hecho de que para una gran penalización solo unos pocos parámetros son diferentes de 0.ℓ1
- La selección del parámetro de ajuste a menudo se realiza mediante validación cruzada, pero incluso sin el paso de validación cruzada, el método puede proporcionar una buena secuencia de variables seleccionadas indexadas por el parámetro de penalización.
- La desventaja, para la selección de variables, es que el lazo puede ser inestable en la selección de variables, en particular, si están algo correlacionadas. La penalización neta elástica más general se inventó para mejorar esta inestabilidad, pero no resuelve el problema por completo. El lazo adaptable es otra idea para mejorar la selección de variables para el lazo.
- La selección de estabilidad es un método general sugerido por Meinshausen y Bühlmann para lograr una mayor estabilidad de las variables seleccionadas con métodos como el lazo. Requiere varios ajustes a las submuestras del conjunto de datos y, como tal, es mucho más exigente computacionalmente.
- Una forma razonable de pensar en el lazo es como un método para generar un conjunto unidimensional de modelos "buenos" que van desde un modelo de una sola variable a un modelo más complicado (que no incluye necesariamente todas las variables) parametrizado por el parámetro de penalización. Por el contrario, los filtros univariados producen una selección u orden de modelos buenos de una sola variable solamente.
Para Python hay una implementación en scikit-learn de métodos como lazo y red elástica.