¿Cómo realizar la regresión logística con una gran cantidad de funciones?

10

Tengo un conjunto de datos con 330 muestras y 27 características para cada muestra, con un problema de clase binaria para Regresión logística.

De acuerdo con la "regla si son diez", necesito al menos 10 eventos para que se incluya cada característica. Sin embargo, tengo un conjunto de datos desequilibrado, con 20% de clase positiva y 80% de clase negativa.

Eso me da solo 70 eventos, lo que permite incluir solo aproximadamente 7/8 características en el modelo logístico.

Me gustaría evaluar todas las características como predictores, no quiero seleccionar ninguna característica a mano.

Entonces, que sugieres? ¿Debo hacer todas las combinaciones posibles de 7 características? ¿Debo evaluar cada característica sola con un modelo de asociación y luego elegir solo las mejores para un modelo final?

También tengo curiosidad sobre el manejo de características categóricas y continuas, ¿puedo mezclarlas? Si tengo un [0-1] categórico y un [0-100] continuo, ¿debo normalizar?

Actualmente estoy trabajando con Python.

¡Muchas gracias por tu ayuda!

LucasRamos
fuente
"También tengo curiosidad sobre el manejo de características categóricas y continuas" Creo que eso haría una pregunta por separado. De hecho, ya se ha preguntado aquí .
E_net4 es visible el
2
Hay una diferencia entre no tener suficientes muestras y tener características irrelevantes. No me enfocaría demasiado en elegir exactamente 7 características debido a alguna regla simplista ...
oW_
1
Haga lo que haría de todos modos: use la validación cruzada para optimizar la regularización. Sugiero red elástica (L1 + L2).
Emre

Respuestas:

6

Para reducir su modelo a 7 variables, hay algunos enfoques que puede tomar:

  1. PCA (sin supervisión): esto crea "nuevas" combinaciones lineales de sus datos donde cada componente de procedimiento explica tanta variación en los datos como sea posible. Por lo tanto, los primeros 7 componentes (de un total de 27) deberían poder explicar un buen porcentaje de la variación en sus datos. Luego puede conectar estos siete componentes a su ecuación de regresión logística. La desventaja aquí es que debido a que los componentes son combinaciones de sus variables originales, pierde cierta interpretabilidad con su modelo de regresión. Sin embargo, debe producir una muy buena precisión. Esta misma técnica se aplica a otros métodos de reducción de dimensiones como
  2. Otro método común en la regresión es avanzar paso a paso, donde comienza con una variable y agrega otra en cada paso, que se mantiene o se elimina según algunos criterios (generalmente un puntaje BIC o AIC). La regresión paso a paso hacia atrás es lo mismo, pero comienza con todas las variables y elimina una vez cada vez en función de algunos criterios. Basado en una breve búsqueda, no parece que Python tenga una regresión gradual, pero hacen un algoritmo de eliminación de características similar descrito en esta publicación de Data Science .
  3. L1L1

Como comentó @ E_net4, su pregunta continua se aborda en otra publicación.

bnorm
fuente
5

Te estás tomando la "Regla de los 10" demasiado en serio. Es una regla general muy tosca. No está destinado a usarse como lo está usando.

Parece que estás pensando: "Tengo solo 70 instancias positivas, así que según la Regla de 10, solo se me permite usar 7 funciones; ¿cómo elijo qué 7 funciones usar?"

Eso no es lo que significa la Regla del 10. No es una regla que especifique cuántas funciones tiene permitido usar. La regla de 10 es descriptiva, no prescriptiva, y es una pauta aproximada: si el número de instancias es mucho menor que 10 veces el número de características, tiene un riesgo especialmente alto de sobreajuste, y podría obtener malos resultados.

Entonces, ¿qué debería hacer? De todos modos, debe hacer lo que haría: usar la regularización y usar la validación cruzada para seleccionar los hiperparámetros de regularización. Además, es importante tener un conjunto de pruebas de resistencia que no toque hasta que haya finalizado todo sobre el clasificador, para evitar estimaciones de precisión sesgadas y sobreajustadas.

Y si puede obtener más datos, eso realmente ayudaría.

Finalmente, dado que tiene clases desequilibradas, puede considerar leer sobre el desequilibrio de clase y los métodos para tratarlo.

DW
fuente