Valores perdidos | Trate los valores perdidos en variables categóricas

Contenidos

Introducción

«Los datos son el combustible de los algoritmos de aprendizaje automático».

Antes de buscar información a partir de los datos, primero tenemos que realizar tareas de preprocesamiento que luego solo nos permiten usar esos datos para una mayor observación y entrenar nuestro modelo de aprendizaje automático.

Se requiere la corrección del valor faltante para reducir el sesgo y producir modelos adecuados potentes. La mayoría de los algoritmos no pueden manejar los datos faltantes, por lo que debe actuar de alguna manera para simplemente no dejar que su código se bloquee. Entonces, comencemos con los métodos para resolver el problema.

Métodos para lidiar con valores perdidos

Ejemplo 1, Tengamos una conjunto de datos ficticios en el que hay tres características independientes (predictores) y una característica dependiente (respuesta).

Característica-1 Característica-2 Característica-3 Producción
Masculino 23 24
– – – – 24 25 No
Mujer 25 26
Masculino 26 27

Aquí, tenemos un valor faltante en la fila 2 para Feature-1.

Los métodos populares que utiliza la comunidad de aprendizaje automático para manejar el valor faltante de las variables categóricas en el conjunto de datos son los siguientes:

1. Elimine las observaciones: Si hay una gran cantidad de observaciones en el conjunto de datos, donde todas las clases que se van a predecir están suficientemente representadas en los datos de entrenamiento, intente eliminar las observaciones de valor que faltan, lo que no generaría cambios significativos en su feed de su modelo.

Por ejemplo, 1, Implementar este método en un conjunto de datos dado, podemos eliminar toda la fila que contiene los valores faltantes (eliminar la fila-2).

2. Reemplace los valores perdidos con el valor más frecuente: Siempre puede imputarlos basándose en Modo en el caso de variables categóricas, asegúrese de no tener distribuciones de clases muy sesgadas.

NOTA: Pero en algunos casos, esta estrategia puede hacer que los datos estén desequilibrados en las clases wrt si hay una gran cantidad de valores faltantes presentes en nuestro conjunto de datos.

– Generalmente, reemplazar los valores perdidos con la media / mediana / moda es una forma burda de tratar los valores perdidos. Dependiendo del contexto, como si la variación es baja o si la variable tiene un apalancamiento bajo sobre la respuesta, una aproximación tan aproximada es aceptable y podría dar resultados satisfactorios. En este caso, dado que está diciendo que es una variable categórica, es posible que este paso no sea aplicable.

Por ejemplo, 1, Para implementar este método, reemplazamos el valor faltante por el valor más frecuente para esa columna en particular, aquí reemplazamos el valor faltante por Masculino ya que el recuento de Masculino es mayor que Femenino (Masculino = 2 y Femenino = 1).

3. Desarrolle un modelo para predecir los valores perdidos: Una forma inteligente de hacer esto podría ser entrenar un clasificador sobre sus columnas con valores perdidos como una variable dependiente contra otras características de su conjunto de datos y tratar de imputar basándose en el clasificador recién entrenado.

Aquí está el algoritmo que puede seguir:

– Divida los datos en dos partes. Una parte tendrá los valores actuales de la columna, incluida la columna de salida original, la otra parte tendrá las filas con los valores faltantes.

– Dividir la 1ª parte (valores actuales) en un conjunto de validación cruzada para la selección del modelo.

– Entrene sus modelos y pruebe sus métricas con los datos validados cruzados. También puede realizar una búsqueda en cuadrícula o una búsqueda aleatoria para obtener los mejores resultados.

– Finalmente, con el modelo, predice los valores desconocidos que faltan en nuestro problema.

NOTA: Dado que está tratando de imputar valores perdidos, las cosas serán más agradables de esta manera, ya que no están sesgadas y obtiene las mejores predicciones del mejor modelo.

Por ejemplo, 1, Para implementar la estrategia dada, en primer lugar consideraremos la columna Característica-2, Característica-3 y Salida para nuestro nuevo clasificador, lo que significa que estas 3 columnas se utilizan como características independientes para nuestro nuevo clasificador y la Característica-1 se considera un resultado y una nota objetivo que aquí consideramos solo las filas que no faltan, ya que los datos de nuestro tren y las observaciones que tienen un valor faltante se convertirán en nuestros datos de prueba. Tenemos que hacer la predicción utilizando nuestro modelo en los datos de prueba y, después de las predicciones, tenemos el conjunto de datos al que no le falta ningún valor.

4. Eliminando la variable: Si hay un conjunto excepcionalmente mayor de valores perdidos, intente excluir la variable en sí para un modelo adicional, pero debe asegurarse de que no sea muy significativa para predecir la variable objetivo, es decir, la correlación entre la variable descartada y la variable objetivo es muy baja o redundante.

Por ejemplo, 1, Para implementar esta estrategia para manejar los valores faltantes, tenemos que eliminar la columna completa que contiene los valores faltantes, por lo que para un conjunto de datos dado eliminamos la Característica-1 por completo y usamos solo las características de la izquierda para predecir nuestra variable objetivo.

5. Aplicar técnicas de aprendizaje automático sin supervisión: En este enfoque, utilizamos técnicas no supervisadas como K-medias, Agrupación jerárquica, etc. La idea es que puede omitir aquellas columnas que tienen valores perdidos y considerar todas las demás columnas excepto la columna de destino e intentar crear tantos clústeres como no de características independientes (después de eliminar las columnas de valores perdidos), finalmente encontrar la categoría en el que cae la fila que falta.

Por ejemplo, 1, Para implementar esta estrategia, dejamos caer la columna Característica-1 y luego usamos Característica-2 y Característica-3 como nuestras características para el nuevo clasificador y luego, finalmente, después de la formación del clúster, tratamos de observar en qué clúster se encuentra el registro faltante y nosotros están listos con nuestro conjunto de datos final para un análisis más detallado.

Implementación en Python

Importe las dependencias necesarias.

valores perdidos importar bibliotecas

Cargue y lea el conjunto de datos.

 Cargue y lea el conjunto de datos.

Encuentre el número de valores perdidos por columna.

los valores perdidos son nulos

Aplicar estrategia-1 (eliminar las observaciones que faltan).

Aplicar estrategia

Aplicar Estrategia-2 (Reemplazar los valores perdidos con el valor más frecuente).

Aplicar estrategia

Aplicar Estrategia-3 (Eliminar la variable que tiene valores perdidos).

Aplicar estrategia-3

Aplicar la estrategia 4 (Desarrollar un modelo para predecir los valores perdidos).

Para esta estrategia, primero codificamos nuestras columnas categóricas independientes usando “One Hot Encoder” y columnas categóricas dependientes usando “Label Encoder”.

– Leer y cargar el conjunto de datos codificado.


– Haga registros faltantes como nuestros datos de prueba.

– Haga registros que no falten como nuestros datos de entrenamiento.

– Variables independientes y dependientes separadas.

- Variables independientes y dependientes separadas.

– Encajar nuestro modelo de Regresión Logística.

- Ajustar los valores perdidos de nuestro modelo de regresión logística

– Predecir la clase de registros faltantes.

- Predecir la clase de registros faltantes.  valores faltantes

¡Esto completa nuestra parte de implementación!

Notas finales

¡Gracias por leer!

Este artículo le presenta diferentes formas de abordar el problema de tener valores perdidos para variables categóricas.

Si le gustó esto y desea saber más, visite mis otros artículos sobre ciencia de datos y aprendizaje automático haciendo clic en el enlace

No dude en ponerse en contacto conmigo en Linkedin, Correo electrónico.

¿Algo no mencionado o quieres compartir tus pensamientos? No dude en comentar a continuación y me pondré en contacto con usted.

Hasta entonces, quédese en casa, manténgase seguro para evitar la propagación de COVID-19, ¡y sigue aprendiendo!

Sobre el Autor

Chirag Goyal

Actualmente, estoy cursando mi Licenciatura en Tecnología (B.Tech) en Ciencias de la Computación e Ingeniería de el Instituto Indio de Tecnología de Jodhpur (IITJ). Estoy muy entusiasmado con el aprendizaje automático, el aprendizaje profundo y la inteligencia artificial.

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.