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 = A⋅B∥A∥∥B∥ 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.
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.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.
fuente
La similitud de Jaccard se usa para dos tipos de casos binarios:
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.
fuente
cosine
es una medida diferente pero no inválida.Como se señaló anteriormente, la respuesta marcada es incorrecta.
Algunas comparaciones
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.
fuente