Deduplicación de Datos

Escrito por

en

La Deduplicación de Datos (Data Deduplication) es una técnica de preparación de datos cuyo objetivo consiste en identificar y eliminar registros duplicados o redundantes dentro de un conjunto de datos. Su finalidad es garantizar que cada entidad, registro o evento esté representado una única vez cuando así lo requiera el problema de negocio.

Aunque frecuentemente se utiliza como sinónimo de Tratamiento de Datos Duplicados, ambos conceptos no son exactamente iguales. La deduplicación constituye una estrategia específica dentro del tratamiento de datos duplicados y se centra exclusivamente en la identificación y eliminación de registros repetidos.

En proyectos de Ciencia de Datos y Machine Learning, una deduplicación adecuada mejora la calidad del conjunto de datos, reduce el sesgo, disminuye el coste computacional y evita que determinados registros tengan un peso desproporcionado durante el entrenamiento de los modelos.

¿Qué es la deduplicación de datos?

La deduplicación de datos es el proceso mediante el cual se detectan y eliminan registros que representan la misma información dentro de un conjunto de datos.

Dependiendo del contexto, la deduplicación puede realizarse sobre:

  • Filas completas.
  • Claves primarias.
  • Identificadores únicos.
  • Combinaciones de columnas.
  • Registros muy similares mediante técnicas de comparación difusa (Fuzzy Matching).

El objetivo es conservar una única representación válida de cada entidad.

Objetivos de la deduplicación de datos

La deduplicación persigue diversos objetivos. Entre los principales destacan:

  • Eliminar información redundante.
  • Mejorar la calidad del conjunto de datos.
  • Reducir el tamaño del dataset.
  • Evitar sesgos durante el entrenamiento.
  • Mejorar la eficiencia computacional.
  • Facilitar el análisis de los datos.
  • Obtener una representación única de cada entidad.

Preguntas que debe responder

Antes de aplicar un proceso de deduplicación conviene responder varias preguntas.

Sobre los duplicados

  • ¿Existen registros duplicados?
  • ¿Qué porcentaje representan?
  • ¿Son duplicados exactos o aproximados?
  • ¿Se repiten filas completas o solo determinadas columnas?

Sobre el negocio

  • ¿Los registros representan la misma entidad?
  • ¿Corresponden a eventos diferentes?
  • ¿La duplicidad es un error o una característica del negocio?

Sobre la estrategia

  • ¿Qué criterio se utilizará para conservar un registro?
  • ¿Debe mantenerse el primero, el último o el más completo?
  • ¿Será necesario fusionar información?
  • ¿Se requiere una revisión manual?

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

Resultado esperado

Al finalizar la deduplicación debería disponerse de:

  • Un conjunto de datos sin registros redundantes.
  • Una única representación para cada entidad cuando corresponda.
  • Menor volumen de datos.
  • Mayor consistencia de la información.
  • Un proceso documentado y reproducible.
  • Un conjunto de datos preparado para las siguientes tareas de Data Preparation.

El resultado esperado es un conjunto de datos más limpio y representativo.

Flujo de trabajo

Una estrategia habitual de deduplicación sigue el siguiente flujo.

  1. Analizar el conjunto de datos.
  2. Detectar registros duplicados.
  3. Clasificar los tipos de duplicados.
  4. Definir las reglas de deduplicación.
  5. Seleccionar el registro que debe conservarse.
  6. Eliminar o fusionar los registros redundantes.
  7. Validar la calidad del resultado.
  8. Documentar el proceso.

Este flujo puede repetirse cuando se incorporan nuevas fuentes de datos.

¿Cómo funciona?

La deduplicación compara registros utilizando uno o varios criterios.

Los más habituales son:

  • Igualdad exacta entre filas.
  • Igualdad en una clave única.
  • Igualdad en un conjunto de atributos.
  • Similitud entre textos.
  • Distancias entre registros.

Una vez identificados los duplicados, se aplica una regla para decidir cuál conservar.

Las reglas más habituales son:

  • Conservar el primer registro.
  • Conservar el último registro.
  • Conservar el registro más reciente.
  • Conservar el registro más completo.
  • Fusionar la información.

Tipos de duplicados

Duplicados exactos.

Todos los valores son idénticos. Normalmente basta con eliminar uno de ellos. Ejemplo:

ClienteCiudadEdad
AnaMadrid34
AnaMadrid34

Duplicados basados en una clave

Comparten un identificador único. Se conserva un único registro. Ejemplo:

IDNombre
1001Ana López
1001Ana López

Duplicados parciales

Solo coinciden algunos atributos. Estos casos suelen requerir algoritmos de similitud. Ejemplo:

NombreCiudad
Ana LópezMadrid
Ana L.Madrid

Duplicados aproximados

Los registros contienen pequeñas diferencias. La detección requiere técnicas de comparación difusa. Ejemplo:

Nombre
José García
Jose Garcia
J. García

Ejemplo conceptual

Supongamos una empresa que integra clientes procedentes de:

  • CRM.
  • Tienda online.
  • Aplicación móvil.

Un mismo cliente aparece tres veces.

La deduplicación identifica que todos los registros corresponden a la misma persona y conserva únicamente uno.

Ejemplo práctico

Consideremos el siguiente conjunto de datos.

ClienteProductoFecha
JuanPortátil10/01
JuanPortátil10/01
JuanRatón15/01

Los dos primeros registros son duplicados exactos. El tercero representa una compra diferente y debe mantenerse.

Estrategias de deduplicación

Dependiendo del problema pueden aplicarse diferentes estrategias.

EstrategiaCuándo utilizarla
Eliminar duplicados exactosRegistros completamente iguales
Deduplicación por claveExiste un identificador único
Deduplicación por varias columnasNo existe una clave única
Fusión de registrosInformación complementaria
Comparación difusaExisten errores tipográficos o variaciones de escritura

La estrategia adecuada depende del origen de los datos y de las reglas del negocio.

Deduplicación vs Tratamiento de Datos Duplicados

Aunque ambos conceptos están relacionados, presentan diferencias.

DeduplicaciónTratamiento de Datos Duplicados
Elimina registros duplicadosAnaliza y gestiona cualquier tipo de duplicidad
Es una técnica específicaEs un proceso más amplio
Busca reducir redundanciaPuede eliminar, fusionar o conservar registros
Tiene un enfoque técnicoCombina criterios técnicos y de negocio

La deduplicación constituye una de las principales herramientas dentro del tratamiento de datos duplicados.

¿Cuándo utilizar la deduplicación?

Es recomendable aplicar esta técnica cuando:

  • Se integran múltiples fuentes de datos.
  • Existen errores de importación.
  • Se detectan registros repetidos.
  • Se construyen Data Warehouses.
  • Se desarrollan sistemas CRM.
  • Se preparan datos para Machine Learning.

No debe aplicarse cuando los registros repetidos representan eventos distintos del negocio.

Ventajas y desventajas

VentajasDesventajas
Reduce redundanciaPuede eliminar información válida
Mejora la calidad del datasetRequiere conocer el dominio del negocio
Reduce el coste computacionalLos duplicados aproximados son difíciles de detectar
Favorece modelos más robustosPuede requerir algoritmos complejos
Facilita el análisis estadísticoAlgunos casos necesitan revisión manual

Limitaciones

La deduplicación presenta algunas limitaciones.

  • No siempre existe una clave única.
  • Los duplicados parciales son difíciles de identificar.
  • Los errores tipográficos pueden impedir detectar coincidencias.
  • Las reglas de deduplicación dependen del negocio.
  • La eliminación automática puede provocar pérdida de información.

Por ello, es recomendable validar siempre el resultado obtenido.

Técnicas de deduplicación

Existen diferentes técnicas para identificar registros duplicados.

TécnicaDescripción
Comparación exactaTodos los valores coinciden
Claves únicasComparación mediante identificadores
Comparación por varias columnasSe utilizan atributos relevantes
Fuzzy MatchingCompara registros similares
Record LinkageIdentifica entidades repetidas entre distintas fuentes

Las técnicas más avanzadas resultan especialmente útiles cuando los datos proceden de sistemas diferentes.

Relación con la fase de Data Preparation

La deduplicación suele realizarse en las primeras etapas de la preparación de los datos.

El flujo habitual es:

  1. Conversión de tipos de datos.
  2. Detección de registros duplicados.
  3. Deduplicación.
  4. Tratamiento de valores nulos.
  5. Tratamiento de valores atípicos.
  6. Transformación de variables.
  7. Ingeniería de Características.
  8. Escalado y codificación.
  9. División del conjunto de datos.

Realizar la deduplicación al principio evita aplicar transformaciones sobre registros que posteriormente serán eliminados.

Implementación en Python

Pandas proporciona funciones muy útiles para realizar procesos de deduplicación.

Detectar registros duplicados

duplicados = df.duplicated()
print(duplicados)

Contar registros duplicados

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

Mostrar únicamente los 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 únicamente el primer registro

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

Conservar únicamente 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
)

Deduplicación mediante comparación difusa

from rapidfuzz import fuzz

similitud = fuzz.ratio(
    "Jose Garcia",
    "José García"
)

print(similitud)

En proyectos de integración de datos también es frecuente utilizar bibliotecas como recordlinkage, RapidFuzz o Dedupe, que permiten detectar duplicados aproximados cuando existen diferencias tipográficas, abreviaturas o errores de escritura.

Buenas prácticas

Para aplicar correctamente la deduplicación se recomienda:

  • Analizar siempre el origen de los registros duplicados.
  • Definir reglas de negocio antes de eliminar información.
  • Diferenciar entre duplicados técnicos y eventos legítimos.
  • Utilizar claves únicas siempre que sea posible.
  • Validar manualmente los casos ambiguos.
  • Documentar los criterios utilizados para conservar o eliminar registros.
  • Conservar una copia del conjunto de datos original.
  • Automatizar el proceso mediante pipelines reproducibles cuando forme parte de un flujo de producción.