/ Metodología ML / Limpieza de Datos en ML
Limpieza de Datos en Machine Learning Guía Completa de Data Wrangling y Preprocesamiento en Python
La limpieza de datos no es un paso previo al modelado: es el factor que más influye en si un modelo funciona o falla en escenarios reales. El problema raramente es técnico. Es de decisión.
¿En qué momento decides que ya limpiaste "lo suficiente" un dataset? La limpieza de datos en machine learning no es solo un paso previo al modelado. En la práctica, es el factor que más influye en si un modelo funciona o falla en escenarios reales.
El problema no suele ser técnico, sino de decisión: qué limpiar, cuándo hacerlo y hasta dónde llegar. La literatura coincide: trabajos como MLClean: A Data Cleaning System for Machine Learning muestran que la calidad de los datos impacta directamente en la precisión, robustez y fairness de los modelos. Otros estudios confirman que el preprocesamiento no es una fase única, sino un sistema completo de decisiones.
Este artículo es un pillar page: un mapa completo del problema que te permite entender qué decisiones existen, cómo se conectan y cuándo profundizar en cada una.
Tabla de contenido:
- Qué es la limpieza de datos y por qué es crítica
- Tipos de problemas que aparecen al limpiar datos
- Cómo decidir entre imputar o eliminar valores nulos
- Cómo detectar y tratar outliers en un pipeline
- Cuándo aplicar normalización o estandarización
- Cómo manejar datasets desbalanceados
- Cómo evitar data leakage durante el preprocesamiento
- Cómo construir pipelines reproducibles de data wrangling
- Cómo validar que la limpieza mejora el modelo
- Cómo evitar sesgos introducidos por la limpieza
- Problemas avanzados en datos reales más allá del cleaning básico
- Experiencia real: cómo se toman decisiones en proyectos
- Preguntas frecuentes
🟢 ¿Qué es la limpieza de datos en machine learning y por qué es crítica en modelos reales?
La limpieza de datos en machine learning en Python es el proceso de transformar datos crudos en datos utilizables para modelos. Pero en proyectos reales, esto se traduce en algo más concreto: decidir qué información conservar, qué transformar y qué descartar.
¿Qué incluye el data wrangling en ML?
En términos de data wrangling ML, el proceso abarca cuatro grandes tareas:
- Detección de errores: identificar inconsistencias, entradas corruptas y anomalías en los datos crudos antes de cualquier transformación.
- Manejo de valores nulos: decidir si imputar, eliminar o conservar los registros con datos faltantes según el contexto del problema.
- Tratamiento de outliers: evaluar si los valores extremos son ruido o señal, y actuar en consecuencia.
- Validación de consistencia: asegurar que los datos siguen las reglas del dominio (rangos válidos, tipos correctos, relaciones entre variables).
Según Machine Learning Data Preprocessing Review MDPI, este proceso es crítico por dos razones fundamentales:
- Los modelos no distinguen entre señal y ruido: aprenden de lo que les das, sin importar si es correcto o no.
- Cualquier error en los datos se amplifica en el modelo: un pequeño sesgo en los datos de entrenamiento puede convertirse en un sesgo sistemático en las predicciones.
¿Qué problemas resuelve realmente el data cleaning en machine learning?
En la práctica, los problemas más comunes son:
- Valores nulos (missing values): datos que no se registraron, se perdieron o simplemente no existen para ciertos registros.
- Outliers (valores extremos): observaciones que se desvían significativamente del resto, ya sea por error o por ser casos raros válidos.
- Datos inconsistentes: entradas que contradicen otras variables o reglas del dominio.
- Duplicados: registros repetidos que pueden inflar artificialmente ciertos patrones.
El punto importante es este: el problema no es detectarlos, es decidir qué hacer con ellos.
¿Cuál es la diferencia entre data cleaning, data wrangling y preprocessing?
En proyectos reales, los tres términos se usan de forma diferente aunque relacionada:
- Data cleaning: limpiar errores específicos del dataset (nulos, duplicados, inconsistencias).
- Preprocessing: preparar los datos para que el modelo los pueda consumir (escalado, codificación, transformaciones).
- Data wrangling: proceso completo que incluye ambos, desde los datos crudos hasta los datos listos para el modelo.
Termina ya tu proyecto
Ya tomaste cursos… pero no sabes cómo aplicarlo
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro · Acceso inmediato
🟢 ¿Qué tipos de problemas aparecen al limpiar datos en machine learning?
¿Cómo identificar valores nulos en un dataset y por qué ocurren?
Los valores nulos en machine learning no son solo datos faltantes. Pueden indicar tres cosas muy distintas, y tratarlos sin entender cuál es el caso puede introducir sesgos graves:
- Errores de captura: el dato existía pero no se registró correctamente (un formulario que falló, un sensor que no respondió).
- Procesos incompletos: la información aún no se generó en el momento del registro (por ejemplo, el resultado de un examen que todavía no se realizó).
- Comportamiento real del sistema: la ausencia del dato es en sí misma una señal (un cliente que no compró nada tiene un valor nulo en "monto de compra", pero ese nulo tiene significado).
Aquí es donde entra el criterio: no todos los valores nulos deben tratarse igual.
¿Qué son los outliers en machine learning y cómo afectan al modelo?
Los outliers en machine learning se dividen en dos categorías con implicaciones completamente diferentes:
- Ruido (errores): valores que no deberían existir, generados por errores de medición, captura incorrecta o fallos del sistema. Eliminarlos mejora el modelo.
- Señal (eventos raros importantes): valores extremos que son reales y representan casos que el modelo debe aprender a detectar (fraudes, fallos críticos, anomalías de sistema). Eliminarlos destruye el modelo.
Eliminar outliers sin contexto puede eliminar patrones valiosos. Esto está ampliamente documentado en la literatura de preprocessing (Frontiers, ScienceDirect).
¿Cómo detectar datos duplicados o inconsistentes en un dataset?
Este es uno de los problemas más subestimados. En experiencia real, tiene consecuencias que no siempre son obvias:
- Duplicados: pueden inflar artificialmente ciertos patrones, haciendo que el modelo aprenda a "repetir" respuestas para registros que ya vio, lo que genera una sobreestimación del desempeño en validación.
- Inconsistencias: pueden simular distribuciones falsas. Por ejemplo, si la misma entidad aparece con distintos valores para la misma variable en diferentes momentos sin que eso tenga sentido lógico, el modelo aprende una distribución que no existe en la realidad.
🟡 ¿Cómo decidir entre imputar o eliminar valores nulos en machine learning?
Aquí empieza el nivel donde realmente aportas valor. La decisión es un trade-off entre perder información o introducir sesgo. No existe una regla universal; el contexto define cuál es la mejor opción.
¿Cuándo eliminar filas con valores nulos?
- Cuando tienes suficiente volumen de datos y perder esos registros no afecta la representatividad del dataset.
- Cuando el porcentaje de nulos es bajo (típicamente menos del 5%) y los registros con nulos no tienen un patrón sistemático.
- Cuando los nulos corresponden a errores de captura claros y no tienen valor informativo.
¿Cuándo imputar valores nulos?
- Cuando tienes pocos datos y eliminar registros reduciría significativamente el dataset.
- Cuando los nulos tienen un patrón (por ejemplo, siempre faltan en el mismo tipo de usuario), ya que eliminar esos registros introduciría sesgo.
- Cuando la variable es importante para el modelo y perder esa información afecta la calidad de las predicciones.
Lo que la técnica no te dice
Lo clave no es la técnica de imputación (media, mediana, modelo predictivo), sino esto: debes interpretar los resultados considerando la suposición que hiciste. Si imputaste con la media, asumiste que los valores faltantes son similares al promedio. Si eso no es cierto en tu dominio, el modelo aprenderá una distribución incorrecta.
Este tipo de decisiones es exactamente lo que la literatura resalta como crítico (MLClean): no basta con ejecutar la técnica; hay que justificarla y entender sus implicaciones.
🟡 ¿Cómo detectar y tratar outliers en un pipeline de machine learning?
Métodos de detección más comunes
En teoría, los métodos estadísticos para detectar outliers son bien conocidos:
- IQR (Interquartile Range): marca como outlier cualquier valor que esté más de 1.5 veces el rango intercuartílico por encima del tercer cuartil o por debajo del primero. Funciona bien para distribuciones aproximadamente simétricas.
- Z-score: identifica valores que están a más de 2 o 3 desviaciones estándar de la media. Asume distribución normal, lo que limita su aplicabilidad en datos reales.
Por qué el contexto define la decisión
En la práctica, el contexto define si un outlier es error o señal. Los métodos estadísticos solo te dicen que algo es inusual; no te dicen si debes eliminarlo. Un error común en proyectos:
- Eliminar outliers automáticamente sin revisar su naturaleza en el dominio.
- Perder patrones raros pero importantes (fraudes, fallas críticas, casos extremos de interés).
- No documentar qué outliers se eliminaron y por qué, lo que hace el pipeline imposible de auditar.
La pregunta correcta no es "¿es este valor un outlier?" sino "¿este valor debería estar en mis datos de entrenamiento?"
🟡 ¿Cuándo aplicar normalización o estandarización en machine learning?
¿Qué modelos necesitan feature scaling?
El feature scaling en machine learning depende del modelo que uses, no es una decisión universal:
- Modelos lineales (regresión logística, SVM, redes neuronales): son sensibles a la escala. Sin escalado, las variables con rangos más grandes dominan el aprendizaje.
- Árboles de decisión y Random Forest: menos sensibles a la escala porque hacen splits binarios; el escalado no cambia el orden relativo de los valores.
- K-Nearest Neighbors y algoritmos basados en distancia: muy sensibles al escalado; sin normalizarlos, las variables de mayor magnitud dominan las distancias calculadas.
La regla práctica más importante
Nunca escalar antes de tratar outliers. Si tienes un outlier extremo y aplicas normalización min-max, ese valor extremo comprime todos los demás valores en un rango muy pequeño. El resultado es una transformación que distorsiona más de lo que ayuda.
El orden correcto en un pipeline es:
- Primero: manejar valores nulos.
- Segundo: detectar y tratar outliers según el contexto.
- Tercero: aplicar escalado o normalización según el modelo.
- Cuarto (crítico): aplicar todas las transformaciones solo con los datos de entrenamiento y luego transformar el conjunto de prueba con los parámetros aprendidos.
🟡 ¿Cómo manejar datasets desbalanceados en machine learning?
El class imbalance es uno de los problemas más comunes y más subestimados en proyectos de clasificación.
El error más común: usar accuracy como métrica
Con un dataset donde el 95% de los ejemplos son de clase A y el 5% de clase B, un modelo que siempre predice A tiene un 95% de accuracy. Pero falla el 100% de las veces en detectar la clase B, que a menudo es la más importante (fraudes, enfermedades, fallas).
Estrategias para datasets desbalanceados
- Oversampling de la clase minoritaria: generar nuevos ejemplos de la clase poco representada (SMOTE es la técnica más usada). Útil cuando tienes pocos datos de esa clase.
- Undersampling de la clase mayoritaria: reducir ejemplos de la clase dominante para equilibrar el dataset. Útil cuando tienes muchos datos y puedes permitirte perder algunos.
- Ajuste de pesos en el modelo: muchos algoritmos (Random Forest, XGBoost, regresión logística) permiten asignar mayor peso a la clase minoritaria durante el entrenamiento sin modificar los datos.
- Cambiar la métrica de evaluación: usar F1-score, AUC-ROC o precisión/recall en lugar de accuracy. La métrica correcta depende del costo real de cada tipo de error en tu dominio.
🔴 ¿Cómo evitar data leakage durante el preprocesamiento de datos?
Este es uno de los errores más graves en machine learning, y el más difícil de detectar porque el modelo parece funcionar perfectamente durante el entrenamiento y la validación.
Qué es data leakage y por qué destruye un modelo
Data leakage ocurre cuando información del conjunto de prueba "se filtra" al modelo durante el entrenamiento. El modelo aprende a usar información que no existiría en producción, lo que genera métricas de evaluación artificialmente buenas que no se reproducen en el mundo real.
Los casos de leakage más frecuentes en preprocesamiento
- Escalar con estadísticas del dataset completo: si calculas la media y la desviación estándar de todo el dataset (incluyendo test) para normalizar, el modelo ha visto información de los datos de prueba. Siempre calcula los parámetros de escala solo con los datos de entrenamiento.
- Imputar antes del split: si rellenas valores nulos usando la media del dataset completo antes de dividir entre train y test, introduces información del test en el train.
- Variables con información del futuro: incluir variables que solo existen porque ya sabes el resultado (por ejemplo, incluir el diagnóstico final en los datos de entrada cuando el objetivo es predecir el diagnóstico).
- Duplicados que cruzan el split: si un mismo registro aparece en train y en test, el modelo ya "vio" esos datos y las métricas no son fiables.
La literatura (MLClean) lo identifica como una fuente crítica de error porque es silencioso: el pipeline corre sin errores, las métricas se ven bien, y el problema solo se detecta cuando el modelo falla en producción.
La solución estructural: usar pipelines
La forma más robusta de evitar leakage es construir pipelines donde todas las transformaciones se ajustan exclusivamente con los datos de entrenamiento y luego se aplican al conjunto de prueba sin reajuste. Frameworks como scikit-learn Pipeline están diseñados específicamente para esto.
🔴 ¿Cómo construir pipelines reproducibles de data wrangling en machine learning?
En producción, la limpieza de datos no es manual: es un sistema. Un pipeline de preprocesamiento mal construido es tan grave como un modelo mal entrenado, porque si no puedes reproducir exactamente la misma transformación en datos nuevos, el modelo falla.
Qué implica un pipeline reproducible
- Pipelines automatizados: cada transformación (imputación, escalado, codificación) está encapsulada en un objeto que se puede serializar, guardar y cargar. Scikit-learn Pipeline es el estándar en Python.
- Parámetros aprendidos solo con train: las estadísticas usadas para transformar (media, desviación, rangos) se calculan una vez con los datos de entrenamiento y se aplican consistentemente a cualquier dato nuevo.
- Validación continua: el pipeline incluye checks que detectan cuando los datos de entrada se desvían de la distribución esperada (data drift), antes de que el modelo haga una predicción con datos que ya no representan lo que aprendió.
- Documentación de cada decisión: qué se imputó, con qué estrategia, qué outliers se eliminaron y por qué. Sin esta documentación, el pipeline no es auditable.
La diferencia entre un pipeline de investigación y uno de producción
En un notebook de investigación, limpiar datos manualmente es suficiente. En producción, ese mismo proceso tiene que ejecutarse de forma idéntica cada vez que llegan datos nuevos, sin intervención humana y con manejo de errores. La distancia entre los dos es mayor de lo que parece, y es una de las razones por las que muchos modelos que funcionan en investigación fallan cuando se despliegan.
🔴 ¿Cómo validar que la limpieza de datos mejora el modelo?
Aquí hay un punto clave desde la experiencia: no limpias datos por limpiar, limpias para mejorar el modelo. Cada decisión de limpieza debe poder evaluarse en términos de su impacto en la performance.
Cómo medir el impacto de cada decisión de limpieza
- Establece un baseline antes de limpiar: entrena un modelo con los datos crudos (o con la mínima limpieza posible) y registra sus métricas. Ese es tu punto de comparación.
- Aplica una decisión de limpieza a la vez: si cambias múltiples cosas al mismo tiempo, no puedes saber qué mejoró el modelo y qué lo empeoró.
- Evalúa en el conjunto de validación, no en train: una limpieza que mejora las métricas en entrenamiento pero no en validación probablemente está introduciendo sesgo.
- Revisa si los resultados son estables: usa cross-validation. Si el modelo mejora consistentemente en todos los folds, la decisión de limpieza es robusta.
¿Cuándo el dataset está "suficientemente limpio"?
Una heurística práctica: el dataset está suficientemente limpio cuando el modelo produce resultados interpretables y estables. No cuando los datos son perfectos, sino cuando no puedes mejorar el modelo limpiando más.
Esto coincide con la literatura: el objetivo del preprocessing es mejorar performance, no la perfección del dataset. Seguir limpiando cuando el modelo ya no mejora es un desperdicio de recursos y puede introducir nuevos sesgos.
🔴 ¿Cómo evitar sesgos introducidos por la limpieza de datos?
Eliminar o transformar datos puede introducir sesgos que no existían en los datos originales. Este es uno de los efectos más invisibles del preprocesamiento.
Fuentes de sesgo en la limpieza de datos
- Eliminar outliers que representan minorías: si los valores extremos corresponden a grupos poblacionales poco frecuentes (pacientes con enfermedades raras, transacciones de clientes atípicos), eliminarlos hace que el modelo aprenda a ignorar esos grupos.
- Imputar con la media cuando la distribución no es uniforme: si los nulos no son aleatorios sino que están concentrados en un subgrupo específico, imputar con la media del total introduce una distorsión sistemática para ese subgrupo.
- Eliminar registros con nulos que tienen un patrón: si los datos faltantes no son aleatorios (MNAR: Missing Not At Random), eliminarlos cambia la distribución del dataset de forma no representativa.
- Aplicar transformaciones diferentes a subgrupos: si los datos de diferentes grupos demográficos se procesan con distintos parámetros, el modelo puede aprender diferencias artificiales entre grupos.
Esto conecta con trabajos como MLClean, donde se estudia fairness: la limpieza de datos no es un proceso neutral. Cada decisión tiene consecuencias para qué grupos están bien representados y cuáles no en el modelo final.
🔴 ¿Qué problemas avanzados existen en datos reales más allá del cleaning básico?
En producción aparecen problemas que no existen en datasets académicos ni en competencias de Kaggle. Son los problemas que diferencian a quienes trabajan con ML en entornos reales.
Data drift: cuando el mundo cambia y el modelo no
Data drift ocurre cuando la distribución de los datos de entrada cambia con el tiempo, pero el modelo sigue operando con los supuestos aprendidos durante el entrenamiento. Ejemplo real: entrenar con datos de verano y predecir en invierno genera sesgos claros porque los patrones de comportamiento o consumo son diferentes.
- Feature drift: la distribución de las variables de entrada cambia (los usuarios ahora tienen comportamientos distintos a los de hace un año).
- Label drift: la relación entre las variables de entrada y la variable objetivo cambia (lo que antes predecía fraude ya no lo predice).
- Concept drift: el concepto que el modelo aprendió ya no es válido en el contexto actual.
Datos no representativos
Uno de los problemas más frecuentes en proyectos reales es entrenar con datos que no representan fielmente el problema que se quiere resolver. Puede ocurrir por:
- Sesgo de selección en la recopilación de datos (solo se registraron ciertos tipos de casos).
- Cambios en el proceso de negocio que hacen que los datos históricos no reflejen la operación actual.
- Diferencias entre el entorno donde se recolectaron los datos y el entorno donde se desplegará el modelo.
Experiencia real: cómo se toman decisiones en proyectos
Aquí es donde realmente se construye criterio de ML. Las decisiones de limpieza no las toma un algoritmo: las toma una persona con contexto.
¿Cómo decides qué problemas de datos resolver primero?
En proyectos reales, el proceso tiene tres pasos que no pueden saltarse:
- Identificar problemas: exploración inicial del dataset (distribuciones, missing values, duplicados, tipos de datos, inconsistencias). Esta etapa es descriptiva, no prescriptiva.
- Evaluar impacto: para cada problema encontrado, estimar qué tan grande es su efecto potencial en el modelo. Un 0.1% de duplicados tiene un impacto diferente a un 30% de valores nulos en la variable objetivo.
- Priorizar: atacar primero los problemas de mayor impacto, no los más fáciles de resolver. No todo se limpia; limpiar todo puede ser peor que limpiar solo lo que importa.
¿Cuándo dejar de limpiar datos?
Esto rompe con la intuición: no es cuando los datos están "perfectos", sino cuando el modelo funciona bien. Limpiar más allá de ese punto puede introducir sesgos, eliminar señal útil o simplemente no añadir valor medible.
Un indicador práctico: si las últimas tres decisiones de limpieza que tomaste no mejoraron las métricas de validación, probablemente ya terminaste.
¿Cómo detectar problemas que no aparecen en el análisis exploratorio?
La respuesta corta: hablando con el dueño del dato. El contexto no está en el dataset; está en el negocio o sistema que lo genera. Un campo que parece numérico puede tener un valor sentinel (como -1 o 9999) que significa "dato no disponible" y que ningún análisis estadístico va a detectar automáticamente. Un rango de fechas que parece correcto puede incluir un periodo donde el sistema de captura tenía un bug conocido.
¿Qué diferencia hay entre datasets académicos y reales?
Contra lo que muchos piensan, ambos pueden estar igual de sucios. La diferencia clave es esta:
- En datasets reales puedes preguntar: tienes acceso a la persona o equipo que generó los datos y puedes entender el contexto de cada anomalía.
- En datasets académicos no hay a quién preguntar: tienes que inferir el contexto a partir de la documentación disponible, que a veces es incompleta.
Esa diferencia cambia completamente la forma en que se limpia un dataset real: no estás adivinando qué significa un valor raro; lo puedes saber.
Preguntas frecuentes sobre limpieza de datos en machine learning
¿Qué es la limpieza de datos en machine learning?
Es el proceso de transformar datos crudos en datos utilizables para modelos. Incluye manejo de valores nulos, tratamiento de outliers, detección de duplicados e inconsistencias, y validación de que los datos representan fielmente el problema que se quiere resolver.
¿Cuándo imputar o eliminar valores nulos en machine learning?
Depende del volumen de datos y del contexto. Si tienes muchos datos puedes eliminar registros; si tienes pocos, necesitas imputar. Lo más importante es interpretar los resultados considerando la suposición que hiciste al tratar los nulos.
¿Qué es data leakage y por qué es tan grave?
Data leakage ocurre cuando el modelo accede a información del conjunto de prueba durante el entrenamiento. El ejemplo más común es escalar los datos antes del split train/test. El resultado es un modelo que parece funcionar bien en evaluación pero falla en producción.
¿Cuándo aplicar normalización o estandarización?
Depende del modelo. Los modelos lineales y basados en distancia son sensibles a la escala; los árboles de decisión no. La regla más importante: nunca escalar antes de tratar los outliers, ya que estos distorsionan los parámetros de escala.
¿Cómo saber cuándo el dataset está suficientemente limpio?
Cuando el modelo produce resultados interpretables y estables. No cuando los datos son perfectos, sino cuando limpiar más no mejora las métricas de validación. El objetivo del preprocesamiento es mejorar la performance del modelo, no la perfección del dataset.
¿Cómo construir pipelines reproducibles de data wrangling?
Usando herramientas como scikit-learn Pipeline donde cada transformación se ajusta solo con los datos de entrenamiento y se aplica de forma idéntica a cualquier dato nuevo. El pipeline debe incluir validación continua para detectar data drift cuando los datos de entrada cambian con el tiempo.
Conclusión: la limpieza de datos es un problema de decisiones, no de técnicas
Si algo deja claro tanto la experiencia como la literatura: no existe una forma única de limpiar datos. Las técnicas (IQR, imputación por media, SMOTE) son herramientas. Las decisiones son tuyas.
Todo se reduce a tres factores que siempre están presentes:
- Contexto: de dónde vienen los datos, cómo se generaron y qué significa cada anomalía en el dominio del problema.
- Objetivo: qué quieres predecir, qué errores son más costosos y qué métricas reflejan el éxito real en tu caso de uso.
- Trade-offs: cada decisión de limpieza tiene un costo. Eliminar datos reduce volumen. Imputar introduce supuestos. Mantener outliers añade ruido. No hay decisión sin consecuencia.
Eso es exactamente lo que diferencia aplicar técnicas de hacer machine learning real.
Si tienes un proyecto en marcha y la limpieza de datos se está convirtiendo en un bloqueo, muchas veces el problema está en el diseño del pipeline, no en los datos en sí. Puedes escribirme directamente y revisamos juntos dónde está el punto crítico.
Termina ya tu proyecto
Ya tomaste cursos… pero no sabes cómo aplicarlo
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro · Acceso inmediato