Por Jose R. Zapata
Ultima actualización: 23/May/2025
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:
Aspecto | Pandera | Great Expectations | Deepchecks |
---|---|---|---|
Enfoque Principal | Definició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ón | Flexible 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ón | Menos é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 Central | DataFrameSchema , 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/Reporte | Errores 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 Datos | Valida 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
Data validation
Validacion de datos
Data integrity
Validacion de datos
Train/Test validation
Validacion de datos