Cómo calcular la similitud de Jaccard en Python

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

Actualizado el 7 de mayo de 2021, por Luis Benites.

El índice de similitud de Jaccard mide la similitud entre dos conjuntos de datos. Puede variar de 0 a 1. Cuanto mayor sea el número, más similares serán los dos conjuntos de datos.

El índice de similitud de Jaccard se calcula como:

Similitud Jaccard = (número de observaciones en ambos conjuntos) / (número en cualquiera de los conjuntos)

O, escrito en forma de notación:

J (A, B) = | A∩B | / | A∪B |

Este tutorial explica cómo calcular la similitud de Jaccard para dos conjuntos de datos en Python.

Ejemplo: similitud de Jaccard en Python

Supongamos que tenemos los siguientes dos conjuntos de datos:

importar numpy como np

a = [0, 1, 2, 5, 6, 8, 9]
b = [0, 2, 3, 4, 5, 7, 9]

Podemos definir la siguiente función para calcular la similitud Jaccard entre los dos conjuntos:

#define Jaccard Similarity function 
def jaccard (list1, list2):
    intersección = len (lista (conjunto (lista1) .intersección (lista2)))
    union = (len (lista1) + len (lista2)) - intersección
    return float (intersección) / union

#Encuentre la similitud Jaccard entre los dos conjuntos 
jaccard (a, b)

0.4

La similitud de Jaccard entre las dos listas es 0,4 .

Tenga en cuenta que la función devolverá 0 si los dos conjuntos no comparten ningún valor:

c = [0, 1, 2, 3, 4, 5]
d = [6, 7, 8, 9, 10]

jaccard (c, d)

0.0

Y la función devolverá 1 si los dos conjuntos son idénticos:

e = [0, 1, 2, 3, 4, 5]
f = [0, 1, 2, 3, 4, 5]

jaccard (e, f)

1.0

La función también funciona para conjuntos que contienen cadenas:

g = ['gato', 'perro', 'hipopótamo', 'mono']
h = ['mono', 'rinoceronte', 'avestruz', 'salmón']

jaccard (g, h)

0.142857

También puede utilizar esta función para encontrar la distancia Jaccard entre dos conjuntos, que es la diferencia entre dos conjuntos y se calcula como 1 – Similitud Jaccard.

a = [0, 1, 2, 5, 6, 8, 9]
b = [0, 2, 3, 4, 5, 7, 9]

distancia #find Jaccard entre series una y b
1 - tarjeta jaccard (a, b)

0,6

Relacionado: Cómo calcular la similitud de Jaccard en R

Consulte esta página de Wikipedia para obtener más detalles sobre el índice de similitud de Jaccard.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

Una gráfica logarítmica es una gráfica que usa escalas logarítmicas tanto en el eje x como en el eje y.…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!