Tratamiento de Datos Duplicados

Escrito por

en

El Tratamiento de Datos Duplicados es una de las tareas fundamentales dentro de la fase de Data Preparation (Preparación de los Datos). Su objetivo consiste en identificar, analizar y gestionar los registros duplicados presentes en un conjunto de datos para garantizar que la información utilizada durante el entrenamiento de un modelo sea consistente, representativa y libre de redundancias innecesarias.

Los registros duplicados pueden introducir sesgos, alterar las distribuciones estadísticas, incrementar el coste computacional y afectar negativamente al rendimiento de numerosos algoritmos de Machine Learning. Sin embargo, no todos los duplicados deben eliminarse automáticamente. En muchos proyectos, la duplicidad puede representar un hecho real del negocio y conservarla resulta imprescindible.

Por ello, el tratamiento de datos duplicados no consiste únicamente en eliminar filas repetidas, sino en comprender por qué existen, determinar si son válidas y decidir la estrategia más adecuada para gestionarlas.

¿Qué es el tratamiento de datos duplicados?

El tratamiento de datos duplicados es el proceso mediante el cual se identifican y gestionan registros que representan la misma información o la misma entidad dentro de un conjunto de datos.

Dependiendo del contexto, las acciones pueden incluir:

  • Detectar registros duplicados.
  • Analizar su origen.
  • Eliminar duplicados exactos.
  • Consolidar registros similares.
  • Mantener duplicados cuando representen eventos distintos.
  • Documentar las decisiones tomadas.

El objetivo es obtener un conjunto de datos coherente sin eliminar información relevante.

Objetivos del tratamiento de datos duplicados

Esta actividad persigue varios objetivos.

Entre los principales destacan:

  • Mejorar la calidad del conjunto de datos.
  • Eliminar información redundante.
  • Reducir sesgos durante el entrenamiento.
  • Disminuir el tamaño del conjunto de datos.
  • Evitar cálculos repetidos.
  • Mejorar la eficiencia computacional.
  • Garantizar la integridad de la información.

Preguntas que debe responder

Antes de eliminar registros duplicados conviene responder varias preguntas.

Sobre la existencia de duplicados

  • ¿Existen registros duplicados?
  • ¿Qué porcentaje del conjunto representan?
  • ¿Son duplicados exactos o parciales?

Sobre el negocio

  • ¿Representan realmente la misma entidad?
  • ¿Cada registro corresponde a una transacción distinta?
  • ¿Los duplicados son un error del sistema?

Sobre el impacto

  • ¿Pueden afectar al entrenamiento?
  • ¿Introducen sesgos?
  • ¿Distorsionan las métricas?
  • ¿Es necesario eliminarlos o consolidarlos?

Responder estas preguntas evita eliminar información válida.

Resultado esperado

Al finalizar el tratamiento de datos duplicados debería disponerse de:

  • Un conjunto de datos libre de duplicados innecesarios.
  • Un informe con el número de registros duplicados detectados.
  • Una estrategia documentada de tratamiento.
  • Un conjunto de datos consistente.
  • Un menor volumen de información redundante.
  • Una mayor calidad para el modelado.

El resultado esperado no es necesariamente eliminar todos los duplicados, sino conservar únicamente aquellos que aporten información válida.

Flujo de trabajo

Una forma habitual de abordar esta tarea consiste en seguir el siguiente flujo.

  1. Analizar el conjunto de datos.
  2. Detectar registros duplicados.
  3. Clasificar el tipo de duplicado.
  4. Comprender el origen de la duplicidad.
  5. Evaluar su impacto sobre el negocio.
  6. Decidir la estrategia de tratamiento.
  7. Aplicar la transformación correspondiente.
  8. Validar el resultado obtenido.
  9. Documentar el proceso.

Este flujo debe adaptarse siempre al contexto del proyecto.

¿Cómo funciona?

El tratamiento comienza comparando registros del conjunto de datos.

Dependiendo del criterio utilizado pueden detectarse:

  • Filas completamente idénticas.
  • Registros con la misma clave primaria.
  • Registros con atributos similares.
  • Duplicados aproximados.

Una vez identificados, se decide si:

  • Se eliminan.
  • Se fusionan.
  • Se conservan.
  • Se corrigen.

La decisión depende tanto de criterios técnicos como del conocimiento del dominio.

Tipos de datos duplicados

Duplicados exactos

Todos los campos contienen exactamente la misma información. Este tipo suele eliminarse. Ejemplo:

IDNombreCiudad
101AnaMadrid
101AnaMadrid

Duplicados parciales

Solo algunos atributos coinciden. Pueden requerir consolidación o revisión manual. Ejemplo:

IDNombreCiudad
101Ana LópezMadrid
101Ana L.Madrid

Duplicados de negocio

Representan diferentes eventos asociados a la misma entidad. Aunque el cliente aparece repetido, ambos registros son correctos y no deben eliminarse. Ejemplo:

ClienteFechaCompra
101Enero120 €
101Febrero95 €

Duplicados generados por integración

Aparecen al combinar múltiples fuentes de datos. Un mismo cliente puede aparecer varias veces con información ligeramente diferente. Ejemplo:

  • CRM.
  • ERP.
  • Aplicación móvil.

Estrategias de tratamiento

Dependiendo del problema, pueden aplicarse diferentes estrategias.

EstrategiaCuándo utilizarla
Eliminar duplicados exactosErrores de importación
Fusionar registrosInformación complementaria
Mantener registrosEventos diferentes
Revisar manualmenteCasos ambiguos
Utilizar reglas de negocioSistemas complejos

No existe una estrategia universal.

Tratamiento de datos duplicados vs Deduplicación

Aunque ambos conceptos suelen utilizarse como sinónimos, existe una diferencia conceptual.

Tratamiento de Datos DuplicadosDeduplicación
Analiza y gestiona duplicadosElimina duplicados
Incluye varias estrategiasSe centra principalmente en la eliminación
Considera el contexto del negocioPrioriza reducir redundancia
Puede conservar registros repetidosNormalmente elimina registros repetidos

La deduplicación constituye una de las posibles estrategias dentro del tratamiento de datos duplicados.

Beneficios

Gestionar correctamente los datos duplicados ofrece numerosas ventajas.

  • Mejora la calidad del conjunto de datos.
  • Reduce sesgos.
  • Disminuye el tamaño del dataset.
  • Reduce tiempos de entrenamiento.
  • Facilita el análisis exploratorio.
  • Mejora la fiabilidad de las métricas.
  • Incrementa la confianza en los modelos.

¿Cuándo utilizar el tratamiento de datos duplicados?

Esta tarea resulta recomendable cuando:

  • Se integran múltiples fuentes de información.
  • Existen procesos manuales de captura.
  • Se importan datos desde diferentes sistemas.
  • Se detectan inconsistencias.
  • Se trabaja con grandes volúmenes de datos.
  • Se observan registros repetidos durante el análisis exploratorio.

En la práctica, forma parte de casi cualquier proyecto de Ciencia de Datos.

Ventajas y desventajas

VentajasDesventajas
Mejora la calidad del datasetPuede eliminar información válida si se aplica incorrectamente
Reduce redundanciaRequiere conocer el dominio del negocio
Reduce el coste computacionalAlgunos duplicados son difíciles de identificar
Facilita el modeladoLa consolidación puede ser compleja
Disminuye sesgosPuede requerir revisión manual

Limitaciones

Aunque resulta fundamental, presenta algunas limitaciones.

  • No siempre es sencillo distinguir un duplicado real de un evento legítimo.
  • Los duplicados parciales requieren criterios específicos.
  • La integración de múltiples sistemas puede generar ambigüedades.
  • La eliminación automática puede provocar pérdida de información.
  • Algunas técnicas requieren conocimiento experto del dominio.

Por ello, las decisiones deben apoyarse tanto en criterios técnicos como en reglas de negocio.

Relación con la fase de Data Preparation

El tratamiento de datos duplicados constituye una de las primeras tareas dentro de Data Preparation.

Un flujo habitual sería:

  1. Corregir tipos de datos.
  2. Detectar registros duplicados.
  3. Tratar duplicados.
  4. Gestionar valores nulos.
  5. Detectar valores atípicos.
  6. Transformar variables.
  7. Ingeniería de Características.
  8. Escalado y codificación.
  9. División del conjunto de datos.

Eliminar duplicados antes del resto de transformaciones evita realizar operaciones innecesarias sobre registros redundantes.

Implementación en Python

Pandas proporciona herramientas sencillas para detectar y gestionar registros duplicados.

Detectar registros duplicados

duplicados = df.duplicated()
print(duplicados)

Contar el número de duplicados

total_duplicados = df.duplicated().sum()
print(total_duplicados)

Mostrar únicamente los registros duplicados

duplicados = df[df.duplicated()]
print(duplicados)

Detectar duplicados según determinadas columnas

duplicados = df[df.duplicated(
    subset=["cliente_id"]
)]

Eliminar duplicados exactos

df = df.drop_duplicates()

Conservar el último registro

df = df.drop_duplicates(
    subset="cliente_id",
    keep="last"
)

Eliminar todos los registros repetidos

df = df.drop_duplicates(
    subset="cliente_id",
    keep=False
)

Comprobar el resultado

print(df.shape)

En proyectos complejos también pueden emplearse bibliotecas como recordlinkage, RapidFuzz o Dedupe para detectar duplicados aproximados mediante técnicas de comparación difusa (fuzzy matching).

Buenas prácticas

Para tratar correctamente los datos duplicados se recomienda:

  • Analizar siempre el origen de la duplicidad antes de eliminar registros.
  • Diferenciar entre duplicados técnicos y duplicados de negocio.
  • Definir criterios claros para identificar registros repetidos.
  • Revisar manualmente los casos ambiguos cuando sea necesario.
  • Documentar todas las decisiones tomadas durante el proceso.
  • Validar el impacto de la eliminación sobre las métricas y el modelo.
  • Conservar una copia del conjunto de datos original antes de aplicar modificaciones.
  • Automatizar el proceso mediante pipelines reproducibles cuando forme parte de un flujo de producción.