En el preprocesamiento de datos, uno de los desafíos más comunes es el manejo de datos faltantes. Los datos faltantes pueden surgir por diversas razones, como errores en la recolección de datos, problemas de almacenamiento o simplemente porque la información no está disponible. Es crucial manejar estos datos de manera adecuada para evitar sesgos y garantizar la calidad del modelo de Machine Learning.

Conceptos Clave

  1. Tipos de datos faltantes:

    • MCAR (Missing Completely at Random): La ausencia de datos no está relacionada con ninguna variable observada o no observada.
    • MAR (Missing at Random): La ausencia de datos está relacionada con alguna variable observada, pero no con la variable faltante en sí.
    • MNAR (Missing Not at Random): La ausencia de datos está relacionada con la variable faltante en sí.
  2. Impacto de los datos faltantes:

    • Reducción del tamaño del conjunto de datos.
    • Introducción de sesgos.
    • Dificultad en el análisis y modelado.

Estrategias para Manejar Datos Faltantes

  1. Eliminación de Datos Faltantes

a. Eliminación de Filas

  • Descripción: Eliminar filas que contengan datos faltantes.
  • Ventajas: Simple y fácil de implementar.
  • Desventajas: Puede llevar a la pérdida de mucha información si hay muchas filas con datos faltantes.
import pandas as pd

# Cargar datos
data = pd.read_csv('data.csv')

# Eliminar filas con datos faltantes
data_cleaned = data.dropna()

b. Eliminación de Columnas

  • Descripción: Eliminar columnas que contengan datos faltantes.
  • Ventajas: Útil si solo unas pocas columnas tienen muchos datos faltantes.
  • Desventajas: Puede llevar a la pérdida de características importantes.
# Eliminar columnas con datos faltantes
data_cleaned = data.dropna(axis=1)

  1. Imputación de Datos Faltantes

a. Imputación con Media/Mediana/Moda

  • Descripción: Reemplazar los valores faltantes con la media, mediana o moda de la columna.
  • Ventajas: Simple y rápido.
  • Desventajas: Puede introducir sesgos si los datos no están distribuidos normalmente.
from sklearn.impute import SimpleImputer

# Imputación con la media
imputer = SimpleImputer(strategy='mean')
data_imputed = imputer.fit_transform(data)

b. Imputación con Valores Derivados

  • Descripción: Utilizar técnicas más avanzadas como K-Nearest Neighbors (KNN) o regresión para predecir los valores faltantes.
  • Ventajas: Puede ser más preciso.
  • Desventajas: Más complejo y computacionalmente costoso.
from sklearn.impute import KNNImputer

# Imputación con KNN
imputer = KNNImputer(n_neighbors=5)
data_imputed = imputer.fit_transform(data)

  1. Uso de Modelos que Manejan Datos Faltantes

Algunos algoritmos de Machine Learning, como los árboles de decisión, pueden manejar datos faltantes de manera inherente.

from sklearn.tree import DecisionTreeClassifier

# Entrenar un modelo que maneja datos faltantes
model = DecisionTreeClassifier()
model.fit(X_train, y_train)

Ejercicio Práctico

Ejercicio 1: Imputación de Datos Faltantes

Instrucciones:

  1. Cargar un conjunto de datos con valores faltantes.
  2. Imputar los valores faltantes utilizando la media de cada columna.
  3. Comparar los resultados con la imputación utilizando KNN.

Código:

import pandas as pd
from sklearn.impute import SimpleImputer, KNNImputer

# Cargar datos
data = pd.read_csv('data_with_missing_values.csv')

# Imputación con la media
mean_imputer = SimpleImputer(strategy='mean')
data_mean_imputed = mean_imputer.fit_transform(data)

# Imputación con KNN
knn_imputer = KNNImputer(n_neighbors=5)
data_knn_imputed = knn_imputer.fit_transform(data)

# Comparar resultados
print("Datos imputados con la media:")
print(pd.DataFrame(data_mean_imputed).head())

print("\nDatos imputados con KNN:")
print(pd.DataFrame(data_knn_imputed).head())

Solución:

  1. Cargar datos: Utilizamos pd.read_csv para cargar el conjunto de datos.
  2. Imputación con la media: Utilizamos SimpleImputer con la estrategia 'mean'.
  3. Imputación con KNN: Utilizamos KNNImputer con 5 vecinos.
  4. Comparación de resultados: Imprimimos las primeras filas de los datos imputados para comparar.

Conclusión

El manejo adecuado de datos faltantes es crucial para el preprocesamiento de datos en Machine Learning. Las estrategias pueden variar desde la eliminación de datos hasta la imputación utilizando técnicas avanzadas. La elección de la estrategia adecuada depende del contexto y la naturaleza de los datos. Asegúrate de evaluar el impacto de los datos faltantes y la técnica de imputación seleccionada en el rendimiento del modelo.

En el próximo módulo, exploraremos los algoritmos de Machine Learning supervisado, comenzando con la regresión lineal.

Curso de Machine Learning

Módulo 1: Introducción al Machine Learning

Módulo 2: Fundamentos de Estadística y Probabilidad

Módulo 3: Preprocesamiento de Datos

Módulo 4: Algoritmos de Machine Learning Supervisado

Módulo 5: Algoritmos de Machine Learning No Supervisado

Módulo 6: Evaluación y Validación de Modelos

Módulo 7: Técnicas Avanzadas y Optimización

Módulo 8: Implementación y Despliegue de Modelos

Módulo 9: Proyectos Prácticos

Módulo 10: Recursos Adicionales

© Copyright 2024. Todos los derechos reservados