Aplicaciones y diferencias para la similitud de Jaccard y la similitud de coseno


27

La similitud de Jaccard y la similitud de coseno son dos medidas muy comunes al comparar similitudes de elementos. Sin embargo, no tengo muy claro en qué situación es preferible cuál debería ser la otra.

¿Alguien puede ayudar a aclarar las diferencias de estas dos mediciones (la diferencia en concepto o principio, no la definición o el cálculo) y sus aplicaciones preferibles?

Respuestas:


19

Jaccard La similitud viene dada por sij=pp+q+r

dónde,

p = # de atributos positivos para ambos objetos
q = # de atributos 1 para i y 0 para j
r = # de atributos 0 para i y 1 para j

Mientras que, la similitud del coseno = ABAB donde A y B son vectores de objetos.

En pocas palabras, en similitud de coseno, el número de atributos comunes se divide por el número total de atributos posibles. Mientras que en Jaccard Similarity, el número de atributos comunes se divide por el número de atributos que existen en al menos uno de los dos objetos.

Y hay muchas otras medidas de similitud, cada una con sus propias excentricidades. Cuando decida cuál usar, trate de pensar en algunos casos representativos y determine qué índice le daría los resultados más útiles para lograr su objetivo.

El índice Coseno podría usarse para identificar plagio, pero no será un buen índice para identificar sitios espejo en Internet. Mientras que el índice Jaccard, será un buen índice para identificar sitios espejo, pero no tan bueno para atrapar copia plagio de pasta (dentro de un documento más grande).

Al aplicar estos índices, debe pensar detenidamente en su problema y descubrir cómo definir la similitud. Una vez que tenga una definición en mente, puede ir a comprar un índice.

Editar: Anteriormente, tenía un ejemplo incluido en esta respuesta, que finalmente era incorrecto. Gracias a los varios usuarios que lo han señalado, he eliminado el ejemplo erróneo.


2
¿podría explicar por qué el índice de coseno es mejor para identificar plagio y no es bueno para identificar sitios espejo?
dharm0us

Siento que algunas partes de esta respuesta no son intuitivas. "Por ejemplo, si tiene dos objetos con 10 atributos, de un total de 100 atributos. Además, tienen los 10 atributos en común. En este caso, el índice Jaccard será 1 y el índice coseno será 0.001". Esto se traduciría en algo así cosine_similarity(10*[1]+90*[0], 10*[1]+90*[0]). Por supuesto, la similitud del coseno también sería 1 aquí, ya que ambas medidas ignoran aquellos elementos que son cero en ambos vectores.
fsociety

1
Esta respuesta es incorrecta sobre la similitud de coseno, considere la respuesta del usuario18596
Robin

"En pocas palabras, en similitud de coseno, el número de atributos comunes se divide por el número total de atributos posibles" -> esto es completamente incorrecto. La notación define productos y normas de puntos vectoriales.
Sean Owen

23

No puedo comentar porque no tengo ningún estado, pero la respuesta marcada es incorrecta y no responde la pregunta. ∥A∥ significa la norma L2 de A, es decir, la longitud del vector en el espacio euclidiano, no la dimensionalidad del vector A. En otras palabras, no cuenta los 0 bits, suma los 1 bits y toma el raíz cuadrada. Entonces, el ejemplo de 10 atributos de un vector de 100 longitudes también es incorrecto. Lo siento, no tengo una respuesta real sobre cuándo debería usar qué métrica, pero no puedo dejar que la respuesta incorrecta quede sin respuesta.


2
Tienes toda la razón. Es una pena que tantas personas voten por una respuesta incorrecta. La similitud de coseno, como se describe en el artículo de Wikipedia, no tiene en cuenta 0 bits. en.wikipedia.org/wiki/Cosine_similarity
neelshiv

11

La similitud de Jaccard se usa para dos tipos de casos binarios:

  1. Simétrico, donde 1 y 0 tienen igual importancia (género, estado civil, etc.)
  2. Asimétrico, donde 1 y 0 tienen diferentes niveles de importancia (resultados positivos para una enfermedad)

La similitud de coseno se usa generalmente en el contexto de la minería de texto para comparar documentos o correos electrónicos. Si la similitud de coseno entre dos vectores de término de documento es mayor, entonces ambos documentos tienen más cantidad de palabras en común

Otra diferencia es 1: el coeficiente Jaccard puede usarse como una medida de disimilitud o distancia, mientras que la similitud del coseno no tiene tales construcciones. Algo similar es la distancia de Tonimoto, que se usa en taxonomía.


¿Por qué solo Jaccard puede usarse como una medida de disimilitud? Tengo entendido que cosinees una medida diferente pero no inválida.
javadba

3

Como se señaló anteriormente, la respuesta marcada es incorrecta.

abAB .

J(A,B)=|AB||AB|=|AB||AB|+|AB|+|BA|

C(A,B)=|AB||A||B|=|AB|(|AB|+|AB|)(|AB|+|BA|)

Algunas comparaciones

  • Los numeradores aquí son iguales.
  • |A||B|en jaccard, pero geométricamente en coseno.
  • |A||B|

Todavía no tengo una intuición clara sobre dónde se debe preferir uno sobre el otro, excepto que, como observó Vikram Venkat, 1 - Jaccard corresponde a una verdadera métrica, a diferencia del coseno; y el coseno se extiende naturalmente a vectores de valor real.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.