La similitude de Jaccard est donnée par
sij=pp+q+r
où,
p = # d'attributs positifs pour les deux objets
q = # d'attributs 1 pour i et 0 pour j
r = # d'attributs 0 pour i et 1 pour j
A⋅B∥A∥∥B∥
Autrement dit, en similitude cosinus, le nombre d'attributs communs est divisé par le nombre total d'attributs possibles. Alors que dans la similitude Jaccard, le nombre d'attributs communs est divisé par le nombre d'attributs qui existent dans au moins l'un des deux objets.
Et il existe de nombreuses autres mesures de similitude, chacune avec ses propres excentricités. Lorsque vous décidez lequel utiliser, essayez de penser à quelques cas représentatifs et déterminez quel indice donnerait les résultats les plus utilisables pour atteindre votre objectif.
L'indice de cosinus pourrait être utilisé pour identifier le plagiat, mais ne sera pas un bon indice pour identifier les sites miroirs sur Internet. Alors que l'indice Jaccard, sera un bon indice pour identifier les sites miroirs, mais pas si bon pour attraper le plagiat des pâtes de copie (dans un document plus grand).
Lors de l'application de ces indices, vous devez bien réfléchir à votre problème et trouver comment définir la similitude. Une fois que vous avez une définition en tête, vous pouvez acheter un index.
Edit:
Plus tôt, j'avais un exemple inclus dans cette réponse, qui était finalement incorrect. Merci aux nombreux utilisateurs qui l'ont souligné, j'ai supprimé l'exemple erroné.
cosine_similarity(10*[1]+90*[0], 10*[1]+90*[0])
. Bien sûr, la similitude du cosinus serait également de 1 ici, car les deux mesures ignorent les éléments qui sont nuls dans les deux vecteurs.Je ne peux pas commenter car je n'ai aucun statut, mais la réponse cochée est fausse, ainsi que de ne pas répondre à la question. ∥A∥ signifie la norme L2 de A, c'est-à-dire la longueur du vecteur dans l'espace euclidien, pas la dimensionnalité du vecteur A. En d'autres termes, vous ne comptez pas les 0 bits, vous additionnez les 1 bits et prenez le racine carrée. Ainsi, l'exemple de 10 attributs d'un vecteur de 100 longueurs est également faux. Désolé, je n'ai pas de vraie réponse quant au moment où vous devez utiliser quelle métrique, mais je ne peux pas laisser la réponse incorrecte sans contestation.
la source
La similitude Jaccard est utilisée pour deux types de cas binaires:
La similitude cosinus est généralement utilisée dans le contexte de l'exploration de texte pour comparer des documents ou des e-mails. Si la similitude en cosinus entre deux vecteurs de termes de document est plus élevée, alors les deux documents ont plus de nombre de mots en commun
Une autre différence est 1 - le coefficient de Jaccard peut être utilisé comme mesure de dissimilarité ou de distance, tandis que la similitude en cosinus n'a pas de telles constructions. Une chose similaire est la distance Tonimoto, qui est utilisée en taxonomie.
la source
cosine
c'est une mesure différente mais non invalide.Comme indiqué ci-dessus, la réponse cochée est incorrecte.
Où et sont binaires vecteurs, ils peuvent être interprétés comme des ensembles d'indices avec la valeur 1. Soit donc de considérer des ensembles et .a b A BA B
La similitude Jaccard est alors donnée parJ(A,B)=|A∩B||A∪B|=|A∩B||A∩B|+|A−B|+|B−A|
La similitude en cosinus est alors donnée parC(A,B)=|A∩B||A||B|−−−−−√=|A∩B|(|A∩B|+|A−B|)(|A∩B|+|B−A|)−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√
Quelques comparaisons:
Je n'ai pas encore une intuition claire sur l'endroit où l'un devrait être préféré à l'autre, sauf que, comme Vikram Venkat l'a noté, 1 - Jaccard correspond à une vraie métrique, contrairement au cosinus; et le cosinus s'étend naturellement aux vecteurs à valeur réelle.
la source