La Guía Esencial de Análisis Exploratorio de Datos para un Científico de Datos.

The Essential Guide to Exploratory Data Analysis for a Data Scientist.

Las mejores prácticas, técnicas y herramientas para comprender completamente tus datos.

Introducción

El Análisis Exploratorio de Datos (EDA por sus siglas en inglés) es la tarea más importante que se debe llevar a cabo al comienzo de cada proyecto de ciencia de datos.

En esencia, esto implica examinar y caracterizar minuciosamente los datos con el fin de encontrar sus características subyacentes, posibles anomalías, patrones ocultos y relaciones.

Esta comprensión de sus datos es lo que finalmente le guiará a través de los siguientes pasos de su tubería de aprendizaje automático, desde la preprocesamiento de datos hasta la construcción de modelos y el análisis de resultados.

El proceso de EDA fundamentalmente comprende tres tareas principales:

  • Paso 1: Visión general del conjunto de datos y estadísticas descriptivas
  • Paso 2: Evaluación y visualización de características
  • Paso 3: Evaluación de la calidad de los datos

Como habrás adivinado, cada una de estas tareas puede implicar una cantidad bastante amplia de análisis, lo que fácilmente te tendrá cortando, imprimiendo y graficando tus marcos de datos de pandas como un loco.

A menos que elijas la herramienta adecuada para el trabajo.

En este artículo, nos sumergiremos en cada paso de un proceso efectivo de EDA y discutiremos por qué deberías convertir “ydata-profiling” en tu tienda única para dominarlo.

Para demostrar las mejores prácticas e investigar ideas, utilizaremos el conjunto de datos de ingresos del censo de adultos, disponible de forma gratuita en Kaggle o en el Repositorio UCI (Licencia: CC0: Dominio público).

Paso 1: Visión general del conjunto de datos y estadísticas descriptivas

Cuando tenemos por primera vez un conjunto de datos desconocido, hay un pensamiento automático que surge de inmediato: ¿con qué estoy trabajando?

Necesitamos tener una comprensión profunda de nuestros datos para manejarlos eficientemente en futuras tareas de aprendizaje automático.

Como regla general, tradicionalmente comenzamos caracterizando los datos en relación con el número de observaciones, número y tipos de características, tasa general de valores faltantes y porcentaje de observaciones duplicadas.

Con algo de manipulación de pandas y la hoja de trucos adecuada, eventualmente podríamos imprimir la información anterior con algunos fragmentos cortos de código:

Visión general del conjunto de datos: Conjunto de datos del censo de adultos. Número de observaciones, características, tipos de características, filas duplicadas y valores faltantes. Fragmento por el autor.

En general, el formato de salida no es ideal… Si estás familiarizado con pandas, también conocerás el modo operandi estándar de comenzar un proceso de EDA: df.describe():

Esto, sin embargo, solo considera características numéricas. Podríamos usar df.describe(include='object') para imprimir información adicional sobre características categóricas (conteo, único, modo, frecuencia), pero una simple verificación de categorías existentes involucraría algo un poco más verboso:

Visión general del conjunto de datos: Conjunto de datos del censo de adultos. Imprimir las categorías existentes y las frecuencias respectivas para cada característica categórica en los datos. Fragmento por el autor.

Sin embargo, podemos hacer esto – ¡y adivina qué, todas las tareas de EDA subsecuentes! – en una sola línea de código, usando “ydata-profiling”:

Informe de perfil del conjunto de datos del censo de adultos, utilizando “ydata-profiling”. Fragmento por el autor.

El código anterior genera un informe de perfil completo de los datos, que podemos usar para avanzar en nuestro proceso de EDA, ¡sin necesidad de escribir más código!

Repasaremos las diversas secciones del informe en las siguientes secciones. En lo que respecta a las características generales de los datos, toda la información que buscábamos está incluida en la sección “Visión general”:

Podemos ver que nuestro conjunto de datos consta de 15 características y 32561 observaciones, con 23 registros duplicados y una tasa general de desaparición del 0,9%.

Además, el conjunto de datos ha sido identificado correctamente como un conjunto de datos tabulares, y bastante heterogéneo, presentando tanto características numéricas como categóricas. Para los datos de series de tiempo, que tienen una dependencia temporal y presentan diferentes tipos de patrones, ydata-profiling incorporaría otras estadísticas y análisis en el informe.

Podemos inspeccionar aún más los datos brutos y los registros duplicados existentes para tener una comprensión general de las características, antes de entrar en análisis más complejos:

A partir de la breve vista previa de muestra del conjunto de datos, podemos ver de inmediato que aunque el conjunto de datos tiene un bajo porcentaje de datos faltantes en general, algunas características podrían verse afectadas por ello más que otras. También podemos identificar un número considerable de categorías para algunas características, y características con valores 0 (o al menos con una cantidad significativa de 0).

En cuanto a las filas duplicadas, no sería extraño encontrar observaciones “repetidas” dado que la mayoría de las características representan categorías donde varias personas podrían “encajar” simultáneamente.

Sin embargo, quizás un “olor a datos” podría ser que estas observaciones comparten los mismos valores de edad (lo cual es plausible) y el mismo fnlwgt exacto, lo que, considerando los valores presentados, parece más difícil de creer. Por lo tanto, se requeriría un análisis adicional, pero lo más probable es que debamos eliminar estos duplicados más adelante.

En general, la descripción general de los datos puede ser un análisis simple, pero uno extremadamente impactante, ya que nos ayudará a definir las próximas tareas en nuestra tubería.

Paso 2: Evaluación y visualización de características

Después de echar un vistazo a los descriptores generales de los datos, necesitamos acercarnos a las características de nuestro conjunto de datos, para obtener algunas ideas sobre sus propiedades individuales – Análisis univariado – así como sus interacciones y relaciones – Análisis multivariado.

Ambas tareas dependen en gran medida de investigar estadísticas y visualizaciones adecuadas, que necesitan adaptarse al tipo de característica en cuestión (por ejemplo, numérico, categórico), y el comportamiento que estamos buscando diseccionar (por ejemplo, interacciones, correlaciones).

Echemos un vistazo a las mejores prácticas para cada tarea.

Análisis univariado

Analizar las características individuales de cada variable es crucial ya que nos ayudará a decidir su relevancia para el análisis y el tipo de preparación de datos que pueden requerir para lograr resultados óptimos.

Por ejemplo, podemos encontrar valores que están extremadamente fuera de rango y pueden referirse a inconsistencias o valores atípicos. Podemos necesitar estandarizar los datos numéricos o realizar una codificación one-hot de las características categóricas, dependiendo del número de categorías existentes. O podemos tener que realizar una preparación de datos adicional para manejar características numéricas que están desplazadas o sesgadas, si el algoritmo de aprendizaje automático que pretendemos usar espera una distribución particular (normalmente Gaussiana).

Las mejores prácticas, por lo tanto, exigen la investigación exhaustiva de propiedades individuales como estadísticas descriptivas y distribución de datos.

Estas resaltarán la necesidad de tareas posteriores de eliminación de valores atípicos, estandarización, codificación de etiquetas, imputación de datos, aumento de datos y otros tipos de preprocesamiento.

Investiguemos con más detalle race y capital.gain. ¿Qué podemos identificar inmediatamente?

La evaluación decapital.gain es sencilla:

Dada la distribución de datos, podríamos cuestionar si la característica agrega algún valor a nuestro análisis, ya que el 91,7% de los valores son “0”.

Analizarrace es algo más complejo:

Hay una clara subrepresentación de razas distintas a Blanco. Esto plantea dos problemas principales:

  • Uno es la tendencia general de los algoritmos de aprendizaje automático a pasar por alto conceptos menos representados, conocido como el problema de disyunciones pequeñas, que conduce a un rendimiento de aprendizaje reducido;
  • El otro es algo derivado de este problema: como estamos tratando con una característica sensible, esta “tendencia a pasar por alto” puede tener consecuencias que se relacionan directamente con problemas de sesgo e imparcialidad. Algo que definitivamente no queremos que se infiltre en nuestros modelos.

Teniendo esto en cuenta, tal vez deberíamos considerar realizar una ampliación de datos condicionada a las categorías subrepresentadas, así como considerar métricas conscientes de la imparcialidad para la evaluación del modelo, para verificar cualquier discrepancia en el rendimiento que se relacione con los valores de race.

Detallaremos más sobre otras características de los datos que deben abordarse cuando discutamos las mejores prácticas de calidad de datos (Paso 3). Este ejemplo muestra cuántas ideas podemos obtener simplemente evaluando las propiedades de cada característica individual.

Finalmente, observe cómo, como se mencionó anteriormente, diferentes tipos de características requieren diferentes estrategias de estadísticas y visualización:

  • Las características numéricas a menudo comprenden información sobre la media, la desviación estándar, la asimetría, la curtosis y otras estadísticas de cuantiles, y se representan mejor mediante gráficos de histograma;
  • Las características categóricas suelen describirse mediante la moda, la mediana y las tablas de frecuencia, y se representan mediante gráficos de barras para el análisis de categorías.

Tal análisis detallado sería engorroso de llevar a cabo con una manipulación general de pandas, pero afortunadamente, ydata-profiling tiene toda esta funcionalidad integrada en el ProfileReport para nuestra conveniencia: ¡no se agregaron líneas de código adicionales al fragmento!

Análisis Multivariante

Para el Análisis Multivariante, las mejores prácticas se centran principalmente en dos estrategias: analizar las interacciones entre las características y analizar sus correlaciones.

Análisis de Interacciones

Las interacciones nos permiten explorar visualmente cómo se comporta cada par de características, es decir, cómo se relacionan los valores de una característica con los valores de la otra.

Por ejemplo, pueden exhibir relaciones positivas o negativas, dependiendo de si el aumento de los valores de una está asociado con un aumento o una disminución de los valores de la otra, respectivamente.

ydata-profiling: Informe de perfil – Interacciones. Imagen por el autor.

Tomando la interacción entre edad y horas.por.semana como ejemplo, podemos ver que la gran mayoría de la fuerza laboral trabaja un estándar de 40 horas. Sin embargo, hay algunos “abejorros trabajadores” que trabajan más allá de eso (hasta 60 o incluso 65 horas) entre las edades de 30 y 45. Las personas en sus 20 son menos propensas a trabajar demasiado y pueden tener un horario de trabajo más ligero en algunas semanas.

Análisis de Correlaciones

Al igual que las interacciones, las correlaciones nos permiten analizar la relación entre las características. Las correlaciones, sin embargo, “le dan un valor”, para que sea más fácil para nosotros determinar la “fuerza” de esa relación.

Esta “fortaleza” se mide mediante coeficientes de correlación y puede ser analizada ya sea numéricamente (por ejemplo, inspeccionando una matriz de correlación) o con un heatmap, que utiliza el color y el sombreado para resaltar visualmente patrones interesantes:

ydata-profiling: Informe de Perfilado – Heatmap y Matriz de Correlación. Video por el autor.

En cuanto a nuestro conjunto de datos, observe cómo se destaca la correlación entre educación y educación.num. De hecho, poseen la misma información, y educación.num es solo una agrupación de los valores de educación.

Otro patrón que llama la atención es la correlación entre sexo y relación aunque nuevamente no es muy informativo: al observar los valores de ambas características, nos damos cuenta de que estas características probablemente están relacionadas porque hombre y mujer corresponderán a esposo y esposa, respectivamente.

Este tipo de redundancias se pueden verificar para ver si podemos eliminar algunas de estas características del análisis (estado civil también está relacionado con relación y sexo; país de origen y raza, entre otros).

ydata-profiling: Informe de Perfilado – Correlaciones. Imagen por el autor.

Sin embargo, hay otras correlaciones que destacan y podrían ser interesantes para el propósito de nuestro análisis.

Por ejemplo, la correlación entre sexo y ocupación, o sexo y horas.por.semana.

Finalmente, las correlaciones entre ingresos y las características restantes son verdaderamente informativas, especialmente si estamos tratando de mapear un problema de clasificación. Saber cuáles son las características más correlacionadas con nuestra clase objetivo nos ayuda a identificar las características más discriminativas y encontrar posibles fugas de datos que puedan afectar nuestro modelo.

A partir del heatmap, parece que estado civil o relación se encuentran entre los predictores más importantes, mientras que fnlwgt, por ejemplo, no parece tener un gran impacto en el resultado.

Al igual que los descriptores y visualizaciones de datos, las interacciones y correlaciones también deben atender a los tipos de características que se tienen.

En otras palabras, diferentes combinaciones se medirán con diferentes coeficientes de correlación. Por defecto, ydata-profiling ejecuta correlaciones en auto, lo que significa que:

  • Correlaciones Numéricas versus Numéricas se miden utilizando el coeficiente de correlación de rango de Spearman;
  • Correlaciones Categóricas versus Categóricas se miden utilizando el V de Cramer;
  • Correlaciones Numéricas versus Categóricas también usan el V de Cramer, donde la característica numérica se discretiza primero;

Y si desea verificar otros coeficientes de correlación (por ejemplo, los de Pearson, Kendall, Phi), puede configurar fácilmente los parámetros del informe.

Paso 3: Evaluación de la Calidad de los Datos

A medida que nos dirigimos hacia un paradigma de desarrollo de IA centrado en los datos, estar al tanto de los posibles factores complicadores que surgen en nuestros datos es esencial.

Con “factores complicadores”, nos referimos a errores que pueden ocurrir durante la recolección o procesamiento de datos, o características intrínsecas de los datos que son simplemente un reflejo de la naturaleza de los mismos.

Estos incluyen datos faltantes, datos desequilibrados, valores constantes, duplicados, características altamente correlacionadas o redundantes, datos ruidosos, entre otros.

Problemas de Calidad de Datos: Errores y Características Intrínsecas de los Datos. Imagen por el autor.

Encontrar estos problemas de calidad de datos al principio de un proyecto (y monitorearlos continuamente durante el desarrollo) es crítico.

Si no se identifican y abordan antes de la etapa de construcción del modelo, pueden poner en peligro todo el pipeline de ML y los análisis y conclusiones subsiguientes que puedan derivarse de él.

Sin un proceso automatizado, la capacidad de identificar y abordar estos problemas quedaría completamente en la experiencia y la experiencia personal de la persona que realiza el análisis EDA, lo cual obviamente no es ideal. Además, qué peso tener sobre los hombros de uno, especialmente considerando conjuntos de datos de alta dimensión. ¡Alerta de pesadilla entrante!

Esta es una de las características más apreciadas de ydata-profiling, la generación automática de alertas de calidad de datos:

ydata-profiling: Informe de Perfilado – Alertas de Calidad de Datos. Imagen por el autor.

El perfil de salida muestra al menos 5 tipos diferentes de problemas de calidad de datos, a saber, duplicados, alta correlación, desbalance, faltantes y ceros.

De hecho, ya habíamos identificado algunos de estos antes, cuando pasamos por el paso 2: raza es una característica altamente desequilibrada y ganancia de capital está predominantemente poblada por 0’s. También hemos visto la estrecha correlación entre educación y educación.num, y relación y sexo.

Analizando Patrones de Datos Faltantes

Entre el alcance integral de alertas consideradas, ydata-profiling es especialmente útil en analizar patrones de datos faltantes.

Dado que los datos faltantes son un problema muy común en los dominios del mundo real y pueden comprometer la aplicación de algunos clasificadores en su totalidad o sesgar severamente sus predicciones, otra buena práctica es analizar cuidadosamente el porcentaje de datos faltantes y el comportamiento que pueden mostrar nuestras características:

ydata-profiling: Informe de Perfilado – Análisis de Valores Faltantes. Screencast por el autor.

Desde la sección de alertas de datos, ya sabíamos que clase de trabajo, ocupación y país de origen tenían observaciones ausentes. El mapa de calor nos dice además que hay una relación directa con el patrón faltante en ocupación y clase de trabajo: cuando hay un valor faltante en una característica, la otra también estará faltante.

Visión clave: ¡El perfilado de datos va más allá de EDA!

Hasta ahora, hemos estado discutiendo las tareas que conforman un proceso EDA exhaustivo y cómo la evaluación de problemas y características de calidad de datosun proceso al que podemos referirnos como perfilado de datos – es definitivamente una buena práctica.

Sin embargo, es importante aclarar que el perfilado de datos va más allá de EDA. Mientras que generalmente definimos EDA como el paso exploratorio e interactivo antes de desarrollar cualquier tipo de pipeline de datos, el perfilado de datos es un proceso iterativo que debe ocurrir en cada paso del preprocesamiento de datos y la construcción del modelo.

Conclusiones

Un EDA eficiente sienta las bases de un pipeline de aprendizaje automático exitoso.

Es como realizar un diagnóstico de sus datos, aprendiendo todo lo que necesita saber sobre lo que implica: sus propiedades, relaciones, problemas, para poder abordarlos de la mejor manera posible más adelante.

También es el comienzo de nuestra fase de inspiración: es a partir de EDA que surgen preguntas e hipótesis, y se planifican análisis para validar o rechazarlas en el camino.

A lo largo del artículo, hemos cubierto los 3 principales pasos fundamentales que lo guiarán a través de un EDA efectivo, y discutido el impacto de tener una herramienta de primera clase: ydata-profiling, para señalarnos en la dirección correcta y ahorrarnos una enorme cantidad de tiempo y carga mental.

Espero que esta guía te ayude a dominar el arte de “ser un detective de datos” y como siempre, los comentarios, preguntas y sugerencias son muy apreciados. ¡Hazme saber sobre qué otros temas te gustaría que escribiera, o mejor aún, ven y conóceme en la Comunidad de AI Centrada en Datos y colaboremos juntos!

Miriam Santos se enfoca en educar a las comunidades de Ciencia de Datos y Aprendizaje Automático sobre cómo pasar de datos crudos, sucios, “malos” o imperfectos a datos inteligentes, de alta calidad, permitiendo a los clasificadores de aprendizaje automático hacer inferencias precisas y confiables en varias industrias (Fintech, Salud y Farmacia, Telecomunicaciones y Retail).

Original. Repostead con permiso.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Tipos de Edge ML y casos de uso empresariales

La tecnología Edge Machine Learning permite que los dispositivos realicen tareas de inteligencia artificial localment...

Inteligencia Artificial

Together AI presenta Llama-2-7B-32K-Instruct un avance en el procesamiento del lenguaje con contexto extendido

Ha surgido un desafío multifacético en el amplio campo del procesamiento del lenguaje natural: la capacidad de compre...

Inteligencia Artificial

¿Podrían ser los Parches? Este enfoque de IA analiza el principal contribuyente al éxito de los Transformadores de Visión

Las redes neuronales convolucionales (CNN) han sido la columna vertebral de los sistemas para tareas de visión por co...

Ciencia de Datos

Plotly y Python Creando Mapas de Calor Interactivos para Datos Petrofísicos y Geológicos

La interpretación del subsuelo requiere comprender cómo varían los datos geológicos y petrofísicos en una región. Est...

Inteligencia Artificial

Investigadores de Microsoft presentan FP8 Mixed-Precision Training Framework Potenciando la eficiencia del entrenamiento de modelos de lenguaje grandes

Los modelos de lenguaje grandes han demostrado una destreza sin precedentes en la creación y comprensión del lenguaje...

Inteligencia Artificial

Los investigadores de Microsoft revelan 'EmotionPrompt' mejorando la inteligencia emocional de la IA en múltiples modelos de lenguaje

La inteligencia emocional es una piedra angular históricamente ubicada dentro del vasto mosaico de cualidades humanas...