Validacion de datos

Por Jose R. Zapata

Ultima actualización: 23/May/2025

Invítame a un Café

La validación de datos y la validación de la integridad de los datos son procesos fundamentales en los proyectos de machine learning, que sirven para garantizar que los datos sean precisos, coherentes y fiables antes de ser utilizados.

Es esencial verificar la calidad de los datos en cualquier punto donde se manejen, como al recibir un nuevo lote (batch) o antes de preparar los datos para el entrenamiento o la prueba de modelos. Validar la integridad de los datos ayuda a identificar y solucionar problemas comunes como valores faltantes inconsistentes, duplicados, columnas con valores únicos que deberían variar, o inconsistencias en la representación de valores categóricos. Al asegurar la alta calidad de los datos, se mejora significativamente la fiabilidad y el rendimiento de los modelos de machine learning, evitando sesgos o resultados erróneos causados por datos “sucios” (dirty data).

Este tipo de validacines permite identificar problemas como el data drift, que se refiere a cambios en la distribución de los datos a lo largo del tiempo, afectando la precisión de los modelos y tambien el data leakage, que ocurre cuando información del conjunto de prueba se filtra al conjunto de entrenamiento, lo que puede llevar a una sobreestimación del rendimiento del modelo.

A continuación, se presenta una tabla comparativa entre Pandera, Great Expectations y la suite de integridad de datos de Deepchecks:

Aquí tienes la tabla comparativa en formato Markdown, basada en la información de las fuentes y nuestra conversación:

AspectoPanderaGreat ExpectationsDeepchecks
Enfoque PrincipalDefinición de esquemas declarativos y Checks para dataframes.Marco robusto centrado en la validación y documentación para sistemas de producción. Actúa como unit tests para datos.Ejecución de comprobaciones predefinidas para identificar problemas de calidad comunes. Se enfoca en la integridad de datos.
Alcance de la ValidaciónFlexible y definible mediante esquemas y Checks personalizados. Define reglas explícitas sobre estructura, tipos y valores.Amplio, permite definir una gran variedad de “Expectations” (aserciones verificables) y agruparlas en “Expectation Suites”.Específico: se enfoca en problemas comunes de integridad como nulos, duplicados, tipos mixtos, inconsistencias de cadenas, etc.
Flexibilidad/Personaliz.Alta, permite definir reglas explícitas. Permite Checks personalizadas.Muy alta, permite definir y gestionar una amplia gama de validaciones. Se pueden crear Custom Expectations.Limitada a los checks predefinidos de la suite data_integrity. Se pueden modificar o limpiar condiciones de los checks.
Complejidad/Curva Aprend.Más simple y con una curva de aprendizaje menos pronunciada. API familiar (tipo Pandas).Más complejo, introduce su propia terminología y conceptos. Curva de aprendizaje más pronunciada.Relativamente baja para ejecutar la suite predefinida.
Orientación a ProducciónMenos énfasis en la integración a gran escala, aunque es posible.Fuertemente orientado a sistemas de producción, diseñado para integrarse con pipelines y orquestadores (Airflow, Prefect, dbt, etc.). Checkpoints son el medio principal en producción.Se puede ejecutar en cualquier lote de datos, pero el enfoque es la validación de un único conjunto de datos/batch.
Mecanismo CentralDataFrameSchema, Column, Check. También DataFrameModel.“Expectations”, agrupadas en “Expectation Suites”, ejecutadas por “Checkpoints”. Usa Data Context y Data Sources.Suite data_integrity compuesta por checks individuales (e.g., Mixed Nulls, Data Duplicates, String Mismatch).
Salida/ReporteErrores detallados. Permite reportes agregados con lazy=True. Genera Error Reports (SCHEMA/DATA).Genera Validation Results y documentación en formato HTML (“Data Docs”). Reportes detallados de éxito/fallo por Expectation.Reporte con un resumen de condiciones (pass/fail/warning/error) y detalles por cada check ejecutado (tablas, gráficos).
Validación de DatosValida dataframes contra esquemas definidos. Soporta múltiples librerías de dataframe.Valida lotes de datos (“Batches”) contra “Expectation Suites”. Utiliza Batch Requests para especificar lotes.Valida un único conjunto de datos. Se puede ejecutar en cualquier lote de datos.

Contenido

Jose R. Zapata