La Similitud de Jaccard (Jaccard Similarity) es una de las medidas de similitud más utilizadas para comparar conjuntos de datos. Su principal objetivo es cuantificar el grado de coincidencia entre dos conjuntos mediante la relación entre los elementos que comparten y el total de elementos distintos que contienen.
A diferencia de otras métricas como la Similitud del Coseno o la Correlación de Pearson, la Similitud de Jaccard no tiene en cuenta la magnitud de los valores ni las puntuaciones asignadas por los usuarios. Únicamente considera si un elemento pertenece o no a un conjunto, lo que la convierte en una herramienta especialmente útil para trabajar con datos binarios, preferencias implícitas y sistemas de recomendación donde interesa conocer la presencia o ausencia de interacciones.
Gracias a su sencillez y facilidad de interpretación, tiene aplicaciones en sistemas de recomendación, minería de datos, recuperación de información, procesamiento del lenguaje natural, bioinformática y visión por computador.
¿Qué es la Similitud de Jaccard?
La Similitud de Jaccard es una medida matemática que cuantifica el grado de semejanza entre dos conjuntos comparando los elementos que tienen en común respecto al total de elementos distintos presentes en ambos.
Matemáticamente se define como:
$$
J(A,B)=
\frac{|A\cap B|}
{|A\cup B|}
$$
donde:
- \(A \cap B\) representa la intersección de ambos conjuntos.
- \(A \cup B\) representa la unión de ambos conjuntos.
El resultado siempre se encuentra entre 0 y 1.

¿Cómo funciona?
La Similitud de Jaccard compara exclusivamente la pertenencia de los elementos a un conjunto.
El procedimiento general consiste en:
- Identificar los elementos del primer conjunto.
- Identificar los elementos del segundo conjunto.
- Calcular la intersección entre ambos.
- Calcular la unión de ambos conjuntos.
- Dividir el número de elementos comunes entre el número total de elementos distintos.
Cuanto mayor sea la proporción de elementos compartidos, mayor será la similitud.
Interpretación de los valores
La Similitud de Jaccard siempre toma valores comprendidos entre 0 y 1.
| Valor | Interpretación |
|---|---|
| 1 | Ambos conjuntos son idénticos |
| 0.75 | Alta similitud |
| 0.50 | Similitud moderada |
| 0.25 | Baja similitud |
| 0 | No comparten ningún elemento |
A diferencia de Pearson o Coseno, nunca produce valores negativos.
Ejemplo conceptual
Supongamos las películas que han visto dos usuarios de una plataforma:
A = ('Matrix', 'Interstelar', 'Origen', 'Dune')
B = ('Matrix', 'Dune', 'Avatar', 'Gladiator')La intersección contiene:
- Matrix
- Dune
La unión contiene las contiene todas, por tanto:
$$
J=
\frac{2}{6}
0.33
$$
Esto indica que ambos usuarios comparten aproximadamente un tercio de sus preferencias.
Ejemplo con datos binarios
Supongamos que cada columna representa si un usuario ha comprado un producto.
| Producto | Usuario A | Usuario B |
|---|---|---|
| Libro | 1 | 1 |
| Portátil | 1 | 0 |
| Ratón | 0 | 1 |
| Monitor | 1 | 1 |
| Auriculares | 0 | 0 |
Los productos compartidos son:
- Libro
- Monitor
La unión contiene:
- Libro
- Portátil
- Ratón
- Monitor
Resultado:
$$
J=
\frac{2}{4}
0.50
$$
¿Por qué es importante en los sistemas de recomendación?
Muchos sistemas de recomendación trabajan con feedback implícito, donde únicamente interesa saber si un usuario ha interactuado con un elemento.
Por ejemplo:
- Ha comprado un producto.
- Ha visto una película.
- Ha escuchado una canción.
- Ha pulsado sobre una noticia.
- Ha añadido un artículo a favoritos.
En estos casos no existen puntuaciones, únicamente presencia o ausencia de interacción. La Similitud de Jaccard resulta especialmente adecuada para este tipo de escenarios.
Beneficios
La Similitud de Jaccard ofrece numerosas ventajas.
- Muy sencilla de interpretar.
- Ideal para datos binarios.
- No depende de escalas de valoración.
- Fácil de implementar.
- Muy utilizada en filtrado colaborativo implícito.
- Robusta frente a diferencias de magnitud.
- Adecuada para conjuntos dispersos.
¿Cuándo utilizar la Similitud de Jaccard?
Es recomendable utilizarla cuando:
- Se trabaja con datos binarios.
- Se dispone únicamente de información de presencia o ausencia.
- Se analizan compras.
- Se estudian clics.
- Se comparan etiquetas.
- Se analizan intereses compartidos.
- Se desarrollan sistemas de recomendación basados en feedback implícito.
No suele ser la mejor opción cuando existen valoraciones numéricas.
Ventajas y desventajas
| Ventajas | Desventajas |
|---|---|
| Muy sencilla de interpretar | Ignora la intensidad o puntuación de las interacciones |
| Ideal para datos binarios | No funciona bien con datos continuos |
| Fácil implementación | No distingue entre usuarios muy activos y poco activos |
| Muy utilizada en sistemas implícitos | Puede infraestimar la similitud cuando existen pocos elementos comunes |
| Escalable | No considera relaciones entre elementos |
Limitaciones
Aunque es una métrica muy útil, presenta algunas limitaciones.
- Solo considera presencia o ausencia de elementos.
- Ignora completamente las valoraciones.
- No detecta relaciones lineales.
- No tiene en cuenta la frecuencia de interacción.
- Puede resultar poco representativa cuando los conjuntos son muy pequeños.
- No captura similitudes semánticas entre elementos.
En aplicaciones modernas suele combinarse con otras métricas o con modelos basados en embeddings.
Similitud de Jaccard vs otras medidas
| Medida | Qué compara | Considera valores | Tipo de datos recomendado |
|---|---|---|---|
| Similitud de Jaccard | Elementos compartidos | No | Datos binarios |
| Similitud del Coseno | Dirección de vectores | Sí | Texto, TF-IDF, Embeddings |
| Similitud de Pearson | Relación lineal | Sí | Valoraciones |
| Distancia Euclidiana | Distancia geométrica | Sí | Variables numéricas |
| Distancia Manhattan | Diferencias absolutas | Sí | Variables numéricas |
La Similitud de Jaccard destaca cuando el objetivo es comparar conjuntos y no valores numéricos.
Aplicaciones en Data Science y Machine Learning
La Similitud de Jaccard aparece en numerosos problemas de Ciencia de Datos. Entre sus aplicaciones más habituales destacan:
- Sistemas de recomendación.
- Filtrado colaborativo basado en feedback implícito.
- Recuperación de información.
- Procesamiento del Lenguaje Natural (NLP).
- Comparación de documentos.
- Detección de documentos duplicados.
- Sistemas de etiquetado.
- Bioinformática.
- Visión por computador.
- Minería de datos.
- Segmentación de usuarios.
Es especialmente útil cuando las variables representan pertenencia a un conjunto.
Implementación en Python
Calcular la Similitud de Jaccard entre conjuntos
usuarios_a = {
"Matrix",
"Origen",
"Dune",
"Interestelar"
}
usuarios_b = {
"Matrix",
"Dune",
"Avatar",
"Gladiator"
}
jaccard = (
len(usuarios_a & usuarios_b) /
len(usuarios_a | usuarios_b)
)
print(jaccard)
Resultado:
0.3333333333333333Utilizando Scikit-Learn
from sklearn.metrics import jaccard_score
usuario_a = [1,1,0,1,0]
usuario_b = [1,0,1,1,0]
score = jaccard_score(
usuario_a,
usuario_b
)
print(score)
Resultado:
0.5Calcular una matriz de similitud
from sklearn.metrics import pairwise_distances
import pandas as pd
datos = pd.DataFrame([
[1,1,0,1],
[1,0,1,1],
[0,1,1,0]
])
similitud = 1 - pairwise_distances(
datos,
metric="jaccard"
)
print(similitud)
La matriz obtenida contiene la similitud entre todos los pares de usuarios o elementos.
Complejidad computacional
El cálculo de la Similitud de Jaccard depende del número de características comparadas.
Para dos conjuntos con n elementos:
- El cálculo tiene una complejidad aproximada de O(n).
Cuando se calcula la similitud entre todos los usuarios de una matriz:
- La complejidad aproximada es O(m² · n),
donde:
- m representa el número de usuarios o elementos.
- n el número de características.
En conjuntos de datos muy grandes pueden utilizarse técnicas de indexación o aproximación para acelerar el proceso.
Buenas prácticas
Para utilizar correctamente la Similitud de Jaccard se recomienda:
- Utilizarla únicamente con datos binarios o conjuntos.
- Eliminar registros inconsistentes antes del cálculo.
- Validar la métrica frente a otras alternativas.
- Utilizar representaciones adecuadas para datos implícitos.
- Combinarla con otras técnicas cuando existan valoraciones numéricas.
- Optimizar el cálculo mediante estructuras eficientes cuando se trabaja con grandes volúmenes de datos.
- Documentar claramente el significado de las variables binarias utilizadas.
Conclusión
La Similitud de Jaccard es una medida sencilla, eficiente y ampliamente utilizada para comparar conjuntos de datos mediante la proporción de elementos compartidos. Su principal fortaleza reside en que no requiere puntuaciones ni valores continuos, lo que la convierte en una excelente opción para sistemas de recomendación basados en feedback implícito, donde únicamente interesa conocer si un usuario ha interactuado o no con un elemento.
Gracias a su facilidad de interpretación y a su bajo coste computacional, la Similitud de Jaccard continúa siendo una herramienta de referencia en sistemas de recomendación, minería de datos, recuperación de información y análisis de datos binarios. No obstante, al ignorar la intensidad de las interacciones y las relaciones entre los valores, conviene utilizarla únicamente cuando el problema pueda representarse de forma natural mediante conjuntos o variables binarias, o combinarla con otras medidas de similitud cuando se requiera una representación más completa de los datos.