¿Cómo lidiar con factores con niveles raros en la validación cruzada?


9

Supongamos que en un análisis de regresión en R, tengo una variable independiente del tipo de factor con 3 niveles en mi conjunto de datos del tren. Pero en el conjunto de datos de prueba, esa misma variable de factor tiene 5 niveles. Por lo tanto, no puedo predecir los valores de respuesta para el conjunto de datos de prueba. ¿Qué se debe hacer en este caso?


1
No se trata principalmente de cómo usar R. y si solo se tratara de cómo usar R, estaría fuera de tema aquí. Sin embargo, aquí hay una buena pregunta estadística.
gung - Restablece a Monica

1
¿Pueden agregar algunos datos de muestra? Será más fácil abordar de esta manera.
Andrew Owens

Respuestas:


8

Como primer pensamiento, esto significa que al menos su conjunto de entrenamiento no es representativo de los datos de la aplicación. Si el conjunto de prueba es representativo es una pregunta en la que, en mi humilde opinión, debería pensar con mucho cuidado. En este contexto, también es importante averiguar si estas clases faltantes son un problema de que el conjunto de entrenamiento en particular sea demasiado pequeño, o si esta es una característica general del problema / tarea / aplicación. Es decir, si nuevas clases que nunca se han encontrado antes aparecerán todo el tiempo.

En principio, veo dos posibilidades de lidiar con esta situación:

  • Digamos que el conjunto de entrenamiento no es representativo y solicite más datos, en particular los datos de las clases faltantes. Esto tiene sentido en caso de que llegue a la conclusión de que el problema radica en el conjunto de entrenamiento particular, no en las características generales de la aplicación.

  • En cualquier caso, sabiendo que los datos de entrenamiento faltan a las clases, consideraría usar un clasificador de una clase. Es decir, un clasificador que trata cada clase independientemente de cualquier otra clase posible. Idealmente, un clasificador de una clase debería devolver "clase desconocida" para los casos de prueba de clases que no han estado disponibles para capacitación. Para los clasificadores de una clase, probar este "rechazo" de casos que pertenecen a clases verdaderamente desconocidas realmente tiene sentido.


editar el comentario de wrt @ gung: supongo que la división de tren / prueba se solucionó por alguna buena razón .


¿Tendría sentido dividir sus datos con cada nivel y luego combinarlos en los pliegues? Por ejemplo, X1 tiene 2 niveles con 90 y 10 datos; podría dividir los 10 en 10 singletons y los 90 en 10 conjuntos de 9, luego combinaría un conjunto de cada uno para formar cada uno de sus 10 pliegues para CV. Esto es lo que se me ocurrió cuando leí la Q, pero no parece que me lo sugieras. ¿Es esta una solución válida? (Podría preguntar como una nueva Q, si lo prefiere.)
Gung - Restablecer Mónica

@gung: Creo que lógicamente es una pregunta separada, sí. También veo una gran diferencia principal entre el conjunto de entrenamiento que no cubre todas las clases y asegurar que todas las clases de un conjunto de datos pequeños se muestren en divisiones de entrenamiento y prueba (= estratificación).
Cbeleites descontento con SX
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.