Cómo comparar 2 conjuntos de datos con perfiles de Pandas
La visualización es la piedra angular de EDA. Cuando nos enfrentamos a un conjunto de datos nuevo y desconocido, la inspección visual nos permite tener una idea de la información disponible, dibujar algunos patrones con respecto a los datos y diagnosticar varios problemas que podríamos necesitar abordar. En ese sentido, Pandas Profiling ha sido la navaja suiza indispensable en el cinturón de herramientas de cada científico de datos. En mis artículos anteriores, mencioné cómo la creación de perfiles de pandas puede ser útil al realizar EDA de series temporales , pero ¿qué pasaría si pudiéramos comparar dos conjuntos de datos?
¿Cuántos de nosotros hemos comenzado el desarrollo de un proyecto de ciencia de datos y luchamos por comprender cuánto estamos obteniendo de nuestras transformaciones e ingeniería de datos?
Y eso es exactamente lo que cubriré en la publicación de blog de hoy: cómo aprovechar la línea única de código EDA más famosa para impulsar el proceso de desarrollo de la ciencia de datos y las mejoras en la calidad de los datos. Le daré un recorrido sobre cómo aprovechar la funcionalidad de informe de comparación de Pandas-Profiling para impulsar su proceso de EDA e ilustrar su potencial para producir transformaciones más rápidas e inteligentes en nuestros datos.
El conjunto de datos utilizado en este artículo se puede encontrar en Kaggle, el conjunto de datos HCC de Miriam Santos (Licencia: CC0: dominio público ). Para este caso de uso particular, introduje artificialmente algunos problemas de calidad de datos adicionales para mostrar cómo la visualización puede ayudarnos a detectarlos y guiarnos hacia su mitigación eficiente. Todo el código y los ejemplos están disponibles en GitHub y, en caso de que necesite un pequeño repaso, asegúrese de consultar este blog para desempolvar sus habilidades para crear perfiles de pandas. Entonces, ¡continuemos con nuestro caso de uso!
Pandas Profiling: EDA al alcance de tu mano
Comenzaremos perfilando el conjunto de datos de HCC e investigando los problemas de calidad de datos sugeridos en el informe:
pip install pandas-profiling==3.5.0
Alerts shown in Pandas Profiling Report (scheenshot by author)
- Duplicados : 4 filas duplicadas en datos;
- Constante : Valor constante “999” en 'O2';
- Alta correlación : varias características marcadas como altamente correlacionadas;
- Falta : valores faltantes en 'ferritina'.
Eliminación de Filas Duplicadas : Dependiendo de la naturaleza del dominio, puede haber registros que tengan los mismos valores sin que sea un error. Sin embargo, teniendo en cuenta que algunas de las características de este conjunto de datos son bastante específicas y se refieren a las mediciones biológicas de un individuo (p. ej., "Hemoglobina", "MCV", "Albúmina"), es poco probable que varios pacientes informen los mismos valores exactos para todas las características. . Empecemos eliminando estos duplicados de los datos:
Eliminación de características irrelevantes : los valores constantes en O2 también reflejan una verdadera inconsistencia en los datos y no parecen contener información valiosa para el desarrollo del modelo. En escenarios de casos de uso reales, sería un buen estándar iterar con un dominio o expertos en negocios, pero para el propósito de este ejemplo de caso de uso, seguiremos adelante y los eliminaremos del análisis:
Imputación de datos faltantes : el conjunto de datos de HCC también parece extremadamente susceptible a la falta de datos. Una forma sencilla de abordar este problema (evitando eliminar registros incompletos o características completas) es recurrir a la imputación de datos. Usaremos la imputación media para completar las observaciones ausentes, ya que es la técnica de imputación estadística más común y simple y, a menudo, sirve como método de referencia:
Comparación en paralelo: iteraciones más rápidas e inteligentes de sus datos
¡Ahora viene la parte divertida! Después de implementar el primer lote de transformaciones en nuestro conjunto de datos, estamos listos para evaluar su impacto en la calidad general de nuestros datos. Aquí es donde la funcionalidad de informe de comparación de perfiles de pandas resulta útil. El siguiente código muestra cómo empezar:
Así es como se muestran ambos informes en la comparación:

¿Qué podemos entender de inmediato de nuestra descripción general del conjunto de datos? El conjunto de datos transformado contiene una característica categórica menos (se eliminó "O2"), 165 observaciones (frente a las 171 originales que contenían duplicados) y ningún valor faltante (en contraste con las 79 observaciones faltantes en el conjunto de datos original).
Pero, ¿cómo han impactado estas transformaciones en la calidad de nuestros datos? ¿Y qué tan buenas fueron esas decisiones?
Profundicemos en eso. En lo que respecta a los registros duplicados, no hubo un impacto particular en lo que respecta a las distribuciones de variables y patrones de conjuntos de datos después de la caída. La imputación de valores faltantes que se hizo es otra historia.
Como era de esperar, no faltan observaciones después de que se realizó la imputación de datos. Observe cómo tanto el recuento de nulidades como la matriz muestran las diferencias entre ambas versiones de los datos: en los datos transformados, "ferritina" ahora tiene 165 valores completos y no se pueden encontrar espacios en blanco en la matriz de nulidades.

Sin embargo, podemos inferir algo más del informe de comparación. Si tuviéramos que inspeccionar el histograma de "ferritina", veríamos cómo la imputación de valores con la media ha distorsionado la distribución de datos original, lo cual no es deseable.
Esto también se observa a través de la visualización de interacciones y correlaciones, donde surgen patrones de interacción tontos y valores de correlación más altos en la relación entre la "ferritina" y las características restantes.
Esto viene a demostrar que el informe de comparación no solo es útil para resaltar las diferencias introducidas después de las transformaciones de datos, sino que proporciona varias señales visuales que nos llevan a información importante sobre esas transformaciones: en este caso, se debe considerar una estrategia de imputación de datos más especializada. .
Pensamientos finales
A lo largo de este pequeño caso de uso, hemos cubierto la utilidad de comparar dos conjuntos de datos dentro del mismo informe de creación de perfiles para resaltar las transformaciones de datos realizadas durante EDA y evaluar su impacto en la calidad de los datos.
Sin embargo, las aplicaciones de esta funcionalidad son infinitas, ya que la necesidad de (re)iterar la evaluación de características y la inspección visual es vital para las soluciones centradas en datos . Desde comparar distribuciones de trenes , validación y conjuntos de prueba o control de calidad de datos hasta casos de uso más avanzados, como el proceso de generación de datos sintéticos .
Fabiana Clemente , CDO en YData
Aceleración de la IA con datos mejorados.