Tengo un conjunto de datos x, y que estoy usando para construir un bosque aleatorio. Los datos x son un vector de valores que incluye algunos NA. Así que solía rfImpute
manejar los datos faltantes y crear un bosque aleatorio. Ahora tengo una nueva observación invisible x (con un NA) y quiero predecir y. ¿Cómo imputo el valor faltante para poder usar el bosque aleatorio que ya he crecido? La rfImpute
función parece requerir x e y. Solo tengo x para fines de predicción.
Mi pregunta es similar (pero diferente) a esta pregunta . Y, por ejemplo, puedo usar el mismo conjunto de datos de iris. Si interpreté correctamente el código en la respuesta a la pregunta a la que me refiero, el código iris.na[148, , drop=FALSE]
en la declaración iris.na2 = rbind(iris.imputed, iris.na[148, , drop=FALSE])
representa los nuevos datos que incluyen el Species
(el valor Y). En mi problema, no sabría: Species
quiero utilizar el bosque aleatorio para predecir eso. Tendría las 4 variables independientes, pero algunas podrían ser NA
para una fila dada. Para continuar con la analogía, imagine que tengo 3 de las 4 variables (falta una). Quiero imputar ese valor. Entonces quiero predecir las especies que no conozco.
En respuesta al comentario de Gung de que debería agregar una ilustración, déjenme ponerla en términos del conjunto de datos del iris. Imagine que tengo los siguientes datos sobre una flor. Sé que es Sepal.Length
, Sepal.Width
, Petal.Length
, pero no el Petal.Width
. Me gustaría imputar el Petal.Width
y luego usar esos 4 valores dentro de un modelo de RF para predecir el Species
.
fuente
Respuestas:
Creo que necesita un método de supervisión no supervisado. Es uno que no utiliza los valores objetivo para la imputación. Si solo tiene pocos vectores de características de predicción, puede ser difícil descubrir una estructura de datos. En cambio, podría mezclar sus predicciones con vectores de funciones de entrenamiento ya imputados y utilizar esta estructura para imputar una vez más. Tenga en cuenta que este procedimiento puede violar supuestos de independencia, por lo tanto, envuelva todo el procedimiento en una validación cruzada externa para verificar si hay un sobreajuste grave.
Acabo de enterarme de missForest por un comentario a esta pregunta . missForest parece hacer el truco. Simulé tu problema con los datos del iris. (sin validación cruzada externa)
fuente