Tengo un conjunto de datos con aproximadamente 2,000 variables binarias / 200,000 filas y estoy tratando de predecir una sola variable dependiente binaria. Mi objetivo principal en esta etapa no es obtener la precisión de la predicción, sino identificar cuáles de estas variables son predictores importantes. Me gustaría reducir el número de variables en mi modelo final a aproximadamente 100.
¿Existe una forma relativamente rápida de obtener las variables más importantes? randomForest parece estar tardando mucho tiempo.
No tengo que usar todas las 200,000 observaciones, por lo que el muestreo es una opción sobre la mesa.
Respuestas:
Puede comenzar con un filtro Univariante simple y usar validación cruzada para decidir qué variables mantener. La
sbf
función en elcaret
paquete para R es realmente útil. Puede leer más sobre esto aquí , comenzando en la página 19.fuente
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:
Para Python hay una implementación en scikit-learn de métodos como lazo y red elástica.
fuente
glmnet
en R). Otra opción es Umbralizar el lazo, que también es bastante simple de implementar. Consulta la sección 2.9 de springer.com/gp/book/9783642201912 .Podría hacer una prueba de asociación de regresión logística / chi-cuadrado para cada variable y solo retener aquellas que tengan un valor p menor que algún valor, digamos .2.
fuente