Nunca he encontrado ningún buen texto o ejemplos sobre cómo manejar datos 'inexistentes' para entradas a cualquier tipo de clasificador. He leído mucho sobre datos faltantes, pero qué se puede hacer sobre los datos que no pueden existir o no existen en relación con las entradas multivariadas. Entiendo que esta es una pregunta muy compleja y variará dependiendo de los métodos de entrenamiento utilizados ...
Por ejemplo, si trata de predecir el tiempo de vuelta para varios corredores con buenos datos precisos. Entre muchas entradas, las posibles variables entre muchas son:
- Variable de entrada: primer corredor (S / N)
- Variable de entrada: tiempo de vuelta anterior (0 - 500 segundos)
- Variable de entrada - Edad
- Variable de entrada - Altura. . . muchas más variables de entrada, etc.
& Predictor de salida - Tiempo de espera previsto (0 - 500 segundos)
Una 'variable faltante' para '2. Laptime anterior' podría calcularse de varias maneras pero '1. Corredor por primera vez 'siempre sería igual a N. Pero para 'DATOS NO EXISTENTES' para un corredor por primera vez (donde '1. Corredor por primera vez' = Y), ¿qué valor / tratamiento debo dar para '2? Laptime anterior '?
Por ejemplo, asignando '2. Laptime anterior '-99 o 0 puede sesgar la distribución dramáticamente y hacer que parezca que un nuevo corredor ha funcionado bien.
Mis métodos de entrenamiento actuales han estado usando regresión logística, SVM, NN y árboles de decisión
fuente
Respuestas:
En lugar de asignar un valor especial para el tiempo de vuelta anterior inexistente del primer corredor, simplemente use el término de interacción para el tiempo de vuelta anterior con el inverso del maniquí del primer corredor:
aquí
Entonces el modelo para los corredores por primera vez será:
y para los que no corren por primera vez:
fuente
Para una regresión logística ajustada por la máxima verosimilitud, siempre que tenga tanto (1) como (2) en el modelo, no importa qué valor "predeterminado" asigne a los nuevos corredores para (2), la estimación para (1) se ajustará en consecuencia.
Por ejemplo, deje que sea la variable indicadora de "es un nuevo corredor" y sea la variable "tiempo de vuelta anterior en segundos". Entonces el predictor lineal es:X1 X2
Si el valor predeterminado para es cero, entonces el predictor lineal para un nuevo corredor es:X2
mientras que para un corredor existente, será:
Ahora suponga que cambia el valor predeterminado para de 0 a -99. Entonces el predictor lineal para un nuevo corredor es ahora:X2
pero para un corredor existente, seguirá siendo el mismo. Por lo tanto, todo lo que ha hecho es el modelo, de modo que , y dado que la probabilidad máxima es invariante para la parametrización, las estimaciones se ajustarán en consecuencia.β′1−99β2=β1
Por supuesto, si no está utilizando la máxima probabilidad (es decir, está utilizando algún tipo de penalización o antes en los parámetros), obtendrá valores diferentes a menos que ajuste la penalización / previo en consecuencia. Y si el modelo no es lineal (por ejemplo, SVM, NN y árboles de decisión), este argumento no funciona en absoluto.
fuente