Técnicas para manejar datos incompletos / faltantes

12

Mi pregunta está dirigida a técnicas para tratar datos incompletos durante el clasificador / entrenamiento modelo / ajuste.

Por ejemplo, en un conjunto de datos con unos cientos de filas, cada fila tiene cinco dimensiones y una etiqueta de clase como último elemento, la mayoría de los puntos de datos se verán así:

[0,74, 0,39, 0,14, 0,33, 0,34, 0]

Algunos podrían verse más o menos así:

[0.21, 0.68,?, 0.82, 0.58, 1]

Entonces, son esos tipos de puntos de datos los que son el foco de esta pregunta.

Mi razón inicial para hacer esta pregunta fue un problema directamente frente a mí; sin embargo, antes de publicar mi Pregunta, pensé que podría ser más útil si la reformulara para que las respuestas fueran útiles para una porción más grande de la Comunidad.

Como simple heurística, dividamos estas técnicas de manejo de datos en función de cuándo se emplean durante el flujo de procesamiento, antes de ingresar al clasificador o durante (es decir, la técnica está dentro del clasificador).

El mejor ejemplo que se me ocurre para este último es la ingeniosa técnica de 'ramificación triple' utilizada en los árboles de decisión.

Sin duda, la primera categoría es mucho más grande. Las técnicas que conozco pertenecen a uno de los siguientes grupos.

Mientras revisaba recientemente mis notas personales sobre el "manejo de datos faltantes", noté que tenía una lista bastante impresionante de técnicas. Solo mantengo estas notas para tranquilidad general y en caso de que un colega junior me pregunte cómo tratar con los datos faltantes. En la práctica, en realidad no uso ninguno de ellos, excepto el último.

  1. Imputación : una rúbrica amplia para un conjunto de técnicas cuyo denominador común (creo) es que los datos faltantes son suministrados directamente por el mismo conjunto de datos: sustitución en lugar de estimación / predicción.

  2. Reconstrucción : calcule los puntos de datos faltantes utilizando una red autoasociativa (solo una red neuronal en la que los tamaños de las capas de entrada y salida son iguales; en otras palabras, la salida tiene la misma dimensión que la entrada); La idea aquí es entrenar esta red en datos completos, luego alimentarla con patrones incompletos y leer los valores faltantes de los nodos de salida.

  3. Bootstrapping : (no es necesario un resumen, no debería pensar, dado que se usa en otros lugares en el análisis estadístico).

  4. Negación : elimine silenciosamente los puntos de datos con elementos faltantes / corruptos de su conjunto de entrenamiento y pretenda que nunca existieron.

doug
fuente
2
También hay un enfoque de "modelo reducido" donde se entrena un clasificador para cada patrón de valores faltantes encontrados durante las pruebas. IE, para hacer una predicción para x donde falta el atributo ith, elimine el atributo ithth de todas las instancias de datos de entrenamiento y entrene sobre eso. jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
Yaroslav Bulatov
Creo que su definición de Imputación es incorrecta en el contexto moderno. La imputación ahora implica modelar los datos faltantes en función de otras variables del conjunto de datos. El método de Imputación preferido actualmente es Imputación Múltiple, que genera múltiples alternativas para cada valor faltante (basado en el modelo), procesa cada conjunto de datos completado alternativo y luego combina las respuestas que reflejan la variabilidad entre los resultados. (En los "viejos tiempos", la gente hacía cosas como sustituir el valor de un registro similar, o la media, etc., pero no ahora)
Wayne
@Wayne, ¿sería tan amable de señalarme algún artículo que describa estas moderntécnicas? Gracias
Enzo
El paquete R micetiene un buen documento introductorio sobre JSS: jstatsoft.org/article/view/v045i03 . (Debería encontrar útil la introducción, incluso si no usa R.) Y el paquete R Ameliatiene una bonita viñeta que se incluye con el paquete. Estos dos paquetes difieren en sus detalles, pero ambos usan imputación múltiple.
Wayne

Respuestas:

3

Di esta respuesta a otra pregunta , pero también podría aplicarse aquí.

"Hay un área de investigación razonablemente nueva llamada Matrix Completion , que probablemente haga lo que quieras. Emmanuel Candes da una muy buena introducción en esta conferencia ".

Esencialmente, si su conjunto de datos tiene un rango bajo (o un rango aproximadamente bajo), es decir, tiene 100 filas, pero la matriz real tiene un rango pequeño, digamos 10 (o solo 10 valores singulares grandes), entonces puede usar Matrix Completion para completar los datos faltantes datos.

Robby McKilliam
fuente
2

Podría ser un poco heterodoxo aquí, pero qué diablos. Tenga en cuenta: esta línea de pensamiento proviene de mi propia filosofía para la clasificación, que es que la uso cuando mi propósito es directamente la predicción pura, no la explicación, la coherencia conceptual, etc. Por lo tanto, lo que digo aquí contradice cómo yo Enfocaría la construcción de un modelo de regresión.

Los diferentes enfoques de clasificación varían en su capacidad para manejar los datos que faltan, y dependiendo de algunos otros factores ^, podría intentar # 5: usar un clasificador que no ahogue esos NA. Parte de la decisión de tomar esa ruta también podría incluir pensar en la probabilidad de que ocurra una proporción similar de NA en los datos futuros a los que aplicará el modelo. Si las NA para ciertas variables van a ser par para el curso, entonces podría tener sentido simplemente rodar con ellas (es decir, no construir un modelo predictivo que suponga más datos informativos de los que realmente tendrá, o usted ' Te estarás bromeando sobre cuán predictivo será realmente). De hecho, si no estoy convencido de que faltan NA al azar, me inclinaría a recodificar una nueva variable (o un nuevo nivel si '

Si tuviera una buena razón para usar un clasificador que no tomara muy bien los datos faltantes, entonces mi enfoque sería # 1 (imputación múltiple), buscando un modelo de clasificación que se comportara de manera similar en los conjuntos de datos imputados.

^ Incluyendo: cuánta falta tiene en sus predictores, si hay patrones sistemáticos (si los hay, valdría la pena mirar más de cerca y pensar en las implicaciones para su análisis), y con cuántos datos tiene que trabajar en general .

Shelby
fuente
1

Si tiene un presentimiento razonable sobre el proceso de generación de datos que es responsable de los datos en cuestión, entonces podría usar ideas bayesianas para estimar los datos faltantes. Bajo el enfoque bayesiano, simplemente asumiría que los datos faltantes también son variables aleatorias y construiría el posterior para los datos faltantes condicional a los datos observados. Los medios posteriores se utilizarían como sustituto de los datos faltantes.

El uso de modelos bayesianos puede calificar como imputación en un sentido amplio del término, pero pensé en mencionarlo ya que no figuraba en su lista.


fuente