Perfilado de Datos (Data Profiling)

Escrito por

en

Guía completa para comprender y evaluar un conjunto de datos

Todo proyecto de Ciencia de Datos comienza con una pregunta fundamental: ¿qué calidad tienen los datos con los que voy a trabajar?

Antes de entrenar modelos de Machine Learning, construir visualizaciones o realizar análisis estadísticos, es imprescindible conocer la estructura, el contenido y el estado del conjunto de datos. Un modelo predictivo será tan bueno como la calidad de la información utilizada para entrenarlo, por lo que identificar problemas desde el inicio puede ahorrar muchas horas de trabajo y evitar decisiones incorrectas durante las etapas posteriores del proyecto.

El Data Profiling constituye la primera fase del proceso de preparación de datos. Su objetivo es realizar una evaluación objetiva del conjunto de datos para conocer su estructura, calidad y características principales antes de comenzar el Análisis Exploratorio de Datos (EDA), la ingeniería de características o el entrenamiento de modelos.

¿Qué es el Data Profiling?

El Data Profiling (perfilado de datos) es el proceso sistemático de inspeccionar, analizar y resumir las características estructurales y de calidad de un conjunto de datos.

Durante esta fase se recopilan estadísticas y métricas que permiten describir objetivamente el estado del dataset sin realizar todavía un análisis profundo de su contenido o de las relaciones entre variables.

El Data Profiling responde preguntas como:

  • ¿Cuántos registros y variables contiene el conjunto de datos?
  • ¿Qué tipo de dato tiene cada columna?
  • ¿Existen valores faltantes?
  • ¿Hay registros duplicados?
  • ¿Cuál es la cardinalidad de cada variable?
  • ¿Existen variables constantes o con muy poca variabilidad?
  • ¿Se observan problemas evidentes de calidad de los datos?
  • ¿Qué estadísticas descriptivas presentan las variables numéricas?

En otras palabras, el Data Profiling proporciona una radiografía del conjunto de datos, permitiendo conocer su estado antes de comenzar cualquier análisis.

Es importante destacar que el Data Profiling no busca descubrir patrones ni relaciones entre variables. Ese trabajo corresponde al Análisis Exploratorio de Datos (EDA), cuya finalidad es comprender el comportamiento del dataset y fundamentar las decisiones de preprocesamiento y modelado.

¿Por qué es importante el Data Profiling?

En la mayoría de proyectos los datos proceden de múltiples fuentes:

  • Bases de datos relacionales.
  • Sistemas ERP.
  • CRM.
  • APIs.
  • Archivos CSV o Excel.
  • Sensores IoT.
  • Aplicaciones web.
  • Plataformas de recopilación de datos.

Cada una de estas fuentes puede introducir problemas distintos:

  • Valores faltantes.
  • Registros duplicados.
  • Tipos de datos incorrectos.
  • Variables con escasa variabilidad.
  • Categorías inconsistentes.
  • Errores de codificación.
  • Variables innecesarias.

Si estos problemas no se detectan desde el principio, pueden propagarse durante todo el proyecto y afectar negativamente a las etapas posteriores.

El Data Profiling permite detectar estas incidencias antes de invertir tiempo en limpieza de datos, ingeniería de características o entrenamiento de modelos.

¿Cómo funciona el Data Profiling?

El perfilado de datos consiste en calcular automáticamente un conjunto de métricas descriptivas sobre el dataset.

Entre las comprobaciones más habituales se encuentran:

  • Dimensiones del conjunto de datos.
  • Tipos de datos de cada variable.
  • Estadísticas descriptivas.
  • Número de valores únicos.
  • Cardinalidad.
  • Valores faltantes.
  • Registros duplicados.
  • Variables constantes.
  • Consumo de memoria.
  • Distribución básica de las categorías.

Toda esta información se recopila en un informe que resume el estado inicial del conjunto de datos y sirve como punto de partida para el resto del proyecto.

El objetivo no es decidir todavía cómo tratar los problemas detectados, sino identificarlos y documentarlos.

Objetivos del Data Profiling

El Data Profiling persigue varios objetivos fundamentales:

  • Comprender la estructura del conjunto de datos.
  • Evaluar la calidad de los datos disponibles.
  • Detectar problemas evidentes antes del análisis.
  • Identificar variables problemáticas.
  • Documentar las características del dataset.
  • Facilitar la planificación del proceso de limpieza.
  • Reducir errores durante las etapas posteriores del proyecto.

En esta fase todavía no se decide cómo imputar valores faltantes, eliminar variables o construir nuevas características. Esas decisiones se tomarán posteriormente durante el EDA y la fase de ingeniería de características.

Tipos de Data Profiling

Dependiendo del objetivo del análisis, el perfilado puede centrarse en distintos aspectos del conjunto de datos.

  • Perfilado estructural: Analiza la organización general del dataset. Su objetivo es comprender cómo está construido el conjunto de datos. Incluye aspectos como:
    • Número de registros.
    • Número de variables.
    • Tipos de datos.
    • Consumo de memoria.
    • Longitud de campos.
    • Clasificación de variables.
  • Perfilado de contenido: Examina la información almacenada en cada variable. Este análisis permite detectar posibles anomalías en el contenido de las variables sin estudiar todavía su relación con otras variables. Normalmente incluye:
    • Valores mínimos y máximos.
    • Media, mediana y desviación estándar.
    • Valores únicos.
    • Cardinalidad.
    • Distribución de frecuencias.
    • Variables constantes.
  • Perfilado de calidad: Evalúa el estado general del conjunto de datos. Este perfilado proporciona una visión objetiva de la calidad de los datos disponibles y ayuda a planificar el proceso de limpieza. Entre las métricas más habituales se encuentran:
    • Completitud.
    • Unicidad.
    • Consistencia.
    • Validez.
    • Valores faltantes.
    • Registros duplicados.

Secuencia de tareas del Data Profiling

Aunque cada proyecto puede presentar necesidades específicas, el Data Profiling suele seguir una secuencia de trabajo bastante estable.

Una metodología reproducible podría ser la siguiente:

  1. Cargar el conjunto de datos.
  2. Comprobar las dimensiones del dataset.
  3. Inspeccionar la estructura general mediante info().
  4. Clasificar las variables según su naturaleza (numéricas, categóricas, ordinales, binarias, identificadores, etc.).
  5. Obtener estadísticas descriptivas de las variables numéricas.
  6. Analizar la cardinalidad y los valores únicos de las variables categóricas.
  7. Detectar registros duplicados.
  8. Calcular el número y porcentaje de valores faltantes.
  9. Identificar variables constantes o con muy poca variabilidad.
  10. Documentar todos los hallazgos obtenidos.

Esta secuencia permite construir un informe objetivo del estado inicial del conjunto de datos y constituye la base para las siguientes fases del proyecto.

Resultado esperado del Data Profiling

Al finalizar el Data Profiling debe disponerse de un conocimiento completo de la estructura y calidad del conjunto de datos. Concretamente, el analista debería ser capaz de responder a preguntas como:

  • ¿Cuál es el tamaño del dataset?
  • ¿Qué tipo de variables contiene?
  • ¿Qué variables presentan valores faltantes?
  • ¿Qué porcentaje de valores faltantes existe en cada variable?
  • ¿Existen registros duplicados?
  • ¿Hay variables constantes o con escasa variabilidad?
  • ¿Cuál es la cardinalidad de las variables categóricas?
  • ¿Se observan problemas de calidad que deban resolverse posteriormente?

Es importante destacar que el resultado del Data Profiling no es un conjunto de datos limpio, sino un informe técnico que describe el estado inicial del dataset.

Este informe constituye el punto de partida para la siguiente fase del proyecto: el Análisis Exploratorio de Datos (EDA). Mientras que el Data Profiling responde a la pregunta “¿Qué datos tengo?”, el EDA tratará de responder “¿Qué información contienen estos datos y cómo debo prepararlos para el modelado?”.

Beneficios del Data Profiling

Realizar un Data Profiling al inicio de un proyecto aporta numerosas ventajas, tanto desde el punto de vista técnico como organizativo.

Entre sus principales beneficios destacan:

  • Comprender rápidamente la estructura del conjunto de datos.
  • Detectar problemas de calidad antes de iniciar el análisis.
  • Identificar variables que requieren limpieza o transformación.
  • Reducir errores durante las etapas de preparación de datos.
  • Facilitar la documentación del proyecto.
  • Establecer una base sólida para el Análisis Exploratorio de Datos (EDA).
  • Mejorar la reproducibilidad del flujo de trabajo.

En proyectos complejos, dedicar tiempo al perfilado suele traducirse en una reducción significativa del tiempo invertido posteriormente en depuración y limpieza de datos.

¿Cuándo utilizar el Data Profiling?

El Data Profiling debe realizarse siempre que se trabaje con un nuevo conjunto de datos o cuando éste haya sufrido modificaciones importantes.

Los casos más habituales son:

  • Al iniciar un proyecto de Ciencia de Datos.
  • Antes del Análisis Exploratorio de Datos (EDA).
  • Antes de comenzar la limpieza de datos.
  • Durante procesos ETL (Extract, Transform and Load).
  • Al integrar nuevas fuentes de información.
  • Antes del entrenamiento de modelos de Machine Learning.
  • Durante auditorías de calidad de datos.

En la práctica, el Data Profiling constituye el primer paso de cualquier flujo de trabajo de preparación de datos.

Ventajas

Entre las principales ventajas del Data Profiling destacan:

  • Proporciona una visión global del conjunto de datos.
  • Detecta problemas de calidad de forma temprana.
  • Reduce el riesgo de errores durante el análisis.
  • Facilita la planificación de la limpieza de datos.
  • Mejora la documentación del proyecto.
  • Puede automatizarse mediante herramientas especializadas.
  • Favorece la reproducibilidad del análisis.

Desventajas

Aunque resulta una etapa imprescindible, también presenta algunas limitaciones prácticas:

  • Puede generar una gran cantidad de información en datasets muy extensos.
  • Requiere tiempo cuando el número de variables es elevado.
  • Algunas anomalías necesitan una revisión manual.
  • No determina automáticamente la mejor estrategia de tratamiento de los datos.
  • Determinadas comprobaciones requieren conocimiento del dominio del problema.

Limitaciones

Es importante comprender qué puede y qué no puede hacer el Data Profiling.

El perfilado de datos:

  • Identifica problemas, pero no los corrige.
  • Describe la estructura del dataset, pero no descubre relaciones complejas entre variables.
  • No determina automáticamente qué variables deben eliminarse.
  • No decide cómo imputar los valores faltantes.
  • No sustituye al Análisis Exploratorio de Datos (EDA).

Por este motivo, el Data Profiling debe considerarse una fase de diagnóstico cuyo objetivo es describir objetivamente el estado del conjunto de datos antes de iniciar su análisis.

Comparación entre Data Profiling y EDA

Aunque ambos procesos se realizan al comienzo de un proyecto de Ciencia de Datos, persiguen objetivos diferentes.

El Data Profiling responde a la pregunta:

¿Qué datos tengo?

Mientras que el Análisis Exploratorio de Datos (EDA) intenta responder:

¿Qué información contienen estos datos y qué decisiones debo tomar para preparar el modelo?

AspectoData ProfilingEDA
ObjetivoDescribir la estructura y calidad del datasetComprender el comportamiento de los datos
Pregunta principal¿Qué datos tengo?¿Qué información contienen?
EnfoqueDescriptivoAnalítico
Relaciones entre variablesNo
Relación con la variable objetivoNo
CorrelacionesNo
Tratamiento de valores faltantesIdentificaciónAnálisis y decisión de imputación
OutliersDetección inicialEstudio e interpretación
VisualizacionesBásicasExtensivas
ResultadoInforme técnico del datasetConclusiones para el preprocesamiento y modelado

En otras palabras, el Data Profiling identifica los posibles problemas, mientras que el EDA estudia su impacto y permite decidir cómo resolverlos.

Métricas habituales en el Data Profiling

Durante el perfilado suelen calcularse diversas métricas que permiten evaluar rápidamente la estructura y la calidad del conjunto de datos.

Porcentaje de valores faltantes

Mide la proporción de datos ausentes en una variable.

[
\text{Nulos (%)}=\frac{\text{Valores nulos}}{\text{Valores totales}}\times100
]

Completitud

Indica el porcentaje de valores disponibles.

[
\text{Completitud}=\frac{\text{Valores no nulos}}{\text{Valores totales}}\times100
]

Porcentaje de registros duplicados

Permite evaluar la existencia de observaciones repetidas.

[
\text{Duplicados (%)}=\frac{\text{Registros duplicados}}{\text{Registros totales}}\times100
]

Cardinalidad

Representa el número de valores distintos presentes en una variable.

Una cardinalidad muy elevada puede indicar identificadores, códigos o variables que requieran un tratamiento específico durante el preprocesamiento.

Implementación en Python

Una secuencia típica de Data Profiling puede implementarse de la siguiente manera.

Cargar el conjunto de datos

df = pd.read_csv("datos.csv")

Obtener las dimensiones

print(df.shape)

Información general

df.info()

Tipos de datos

print(df.dtypes)

Estadísticas descriptivas

Variables numéricas:

df.describe()

Variables categóricas:

df.describe(include="object")

Valores únicos

df.nunique()

Cardinalidad de variables categóricas

for col in df.select_dtypes(include="object"):
    print(col, df[col].nunique())

Registros duplicados

duplicados = df.duplicated().sum()
print(f"Duplicados: {duplicados}")

Valores faltantes

Número de valores faltantes:

df.isnull().sum()

Porcentaje de valores faltantes:

(df.isnull().mean() * 100).sort_values(ascending=False)

Distribución básica de una variable

df["ciudad"].value_counts()

Perfilado automático con ydata-profiling

Cuando se desea obtener un informe completo de forma automática, una de las herramientas más utilizadas es ydata-profiling.

Instalación

pip install ydata-profiling

Generación del informe

from ydata_profiling import ProfileReport

profile = ProfileReport(
    df,
    title="Informe de Data Profiling"
)

profile.to_file("data_profiling.html")

El informe generado incluye automáticamente:

  • Información general del dataset.
  • Estadísticas descriptivas.
  • Distribuciones de variables.
  • Valores faltantes.
  • Cardinalidad.
  • Variables constantes.
  • Duplicados.
  • Consumo de memoria.
  • Alertas sobre posibles problemas de calidad.

Aunque la herramienta también calcula correlaciones y otras métricas avanzadas, estas suelen utilizarse como apoyo durante el EDA y no sustituyen el análisis exploratorio realizado por el científico de datos.

Buenas prácticas

Al realizar un Data Profiling es recomendable:

  • Mantener separados el Data Profiling y el EDA.
  • Documentar todos los hallazgos relevantes.
  • Verificar los tipos de datos antes de comenzar el análisis.
  • Analizar siempre la presencia de valores faltantes y duplicados.
  • Identificar variables constantes o con escasa variabilidad.
  • Revisar la cardinalidad de las variables categóricas.
  • Automatizar el proceso cuando sea posible.
  • Repetir el perfilado tras cambios importantes en el conjunto de datos.

Conclusión

El Data Profiling constituye la primera etapa de cualquier proyecto de Ciencia de Datos. Su finalidad es describir objetivamente la estructura y la calidad del conjunto de datos mediante un conjunto de métricas y estadísticas que permiten conocer su estado inicial.

A diferencia del Análisis Exploratorio de Datos (EDA), el Data Profiling no busca descubrir patrones ni tomar decisiones sobre el tratamiento de los datos. Su función es proporcionar un diagnóstico fiable que sirva como base para las siguientes fases del proyecto.

Realizar un Data Profiling sistemático permite detectar problemas desde el inicio, documentar adecuadamente el conjunto de datos y establecer un flujo de trabajo reproducible. Una vez finalizada esta etapa, el proyecto está preparado para abordar el EDA, donde se estudiarán las relaciones entre variables, se analizará la variable objetivo y se definirán las estrategias de preprocesamiento e ingeniería de características que darán paso al entrenamiento de los modelos de Machine Learning.