Anwendungen und Unterschiede für Jaccard-Ähnlichkeit und Cosinus-Ähnlichkeit


27

Jaccard-Ähnlichkeit und Cosinus-Ähnlichkeit sind zwei sehr häufige Messungen beim Vergleichen von Artikelähnlichkeiten. Ich bin mir jedoch nicht ganz sicher, in welcher Situation eine der anderen vorzuziehen ist.

Kann jemand helfen, die Unterschiede zwischen diesen beiden Messungen (der Unterschied im Konzept oder Prinzip, nicht in der Definition oder Berechnung) und ihren bevorzugten Anwendungen zu klären?

Antworten:


19

Jaccard Ähnlichkeit ist gegeben durch sij=pp+q+r

woher,

p = Anzahl der Attribute positiv für beide Objekte
q = Anzahl der Attribute 1 für i und 0 für j
r = Anzahl der Attribute 0 für i und 1 für j

ABAB

Einfach ausgedrückt, wird in Kosinusähnlichkeit die Anzahl der gemeinsamen Attribute durch die Gesamtanzahl der möglichen Attribute geteilt. Während in Jaccard Similarity die Anzahl der gemeinsamen Attribute durch die Anzahl der Attribute geteilt wird, die in mindestens einem der beiden Objekte vorhanden sind.

Und es gibt viele andere Ähnlichkeitsmaße mit jeweils eigenen Exzentrizitäten. Überlegen Sie sich bei der Entscheidung, welchen Sie verwenden möchten, einige repräsentative Fälle und ermitteln Sie, welcher Index die am besten verwendbaren Ergebnisse liefert, um Ihr Ziel zu erreichen.

Der Cosine-Index kann zur Identifizierung von Plagiaten verwendet werden, ist jedoch kein guter Index zur Identifizierung von Spiegelseiten im Internet. Während der Jaccard-Index ein guter Index zur Identifizierung von Spiegelseiten ist, ist er nicht so gut geeignet, um das Plagiat von Kopien von Teigwaren (innerhalb eines größeren Dokuments) zu erkennen.

Wenn Sie diese Indizes anwenden, müssen Sie sich eingehend mit Ihrem Problem befassen und herausfinden, wie Ähnlichkeiten definiert werden. Sobald Sie eine Definition festgelegt haben, können Sie einen Index kaufen.

Bearbeiten: Früher hatte ich ein Beispiel in dieser Antwort enthalten, die letztendlich falsch war. Dank der vielen Benutzer, die darauf hingewiesen haben, habe ich das fehlerhafte Beispiel entfernt.


2
Könnten Sie bitte erklären, warum der Cosine-Index besser zur Identifizierung von Plagiaten und nicht zur Identifizierung von Spiegelstandorten geeignet ist?
dharm0us

Ich habe das Gefühl, dass einige Teile dieser Antwort nicht intuitiv sind. "Wenn Sie beispielsweise zwei Objekte mit jeweils 10 Attributen von 100 möglichen Attributen haben. Außerdem haben sie alle 10 Attribute gemeinsam. In diesem Fall ist der Jaccard-Index 1 und der Cosinus-Index 0,001." Dies würde zu etwas wie übersetzen cosine_similarity(10*[1]+90*[0], 10*[1]+90*[0]). Natürlich wäre die Cosinus-Ähnlichkeit auch hier 1, da beide die Elemente ignorieren, die in beiden Vektoren Null sind.
Fsociety

1
Diese Antwort ist falsch in Bezug auf die Kosinusähnlichkeit. Bitte beachten Sie die Antwort von user18596
Robin

"Einfach ausgedrückt wird die Anzahl der gemeinsamen Attribute in Kosinusähnlichkeit durch die Gesamtzahl der möglichen Attribute dividiert" -> dies ist völlig falsch. Die Notation definiert Vektorpunktprodukte und -normen.
Sean Owen

22

Ich kann keine Kommentare abgeben, da ich keinen Status habe, die überprüfte Antwort jedoch falsch ist und die Frage nicht beantwortet wird. ∥A∥ bedeutet die L2-Norm von A, dh die Länge des Vektors im euklidischen Raum, nicht die Dimension des Vektors A. Mit anderen Worten, Sie zählen die 0 Bits nicht, Sie addieren die 1 Bits und nehmen die Quadratwurzel. Das Beispiel von 10 Attributen eines Vektors mit 100 Längen ist also ebenfalls falsch. Tut mir leid, ich habe keine echte Antwort, wann Sie welche Metrik verwenden sollten, aber ich kann die falsche Antwort nicht einfach unangefochten lassen.


2
Du hast vollkommen recht. Es ist eine Schande, dass so viele Leute eine falsche Antwort abgeben. Die Cosinus-Ähnlichkeit, wie im Wikipedia-Artikel beschrieben, berücksichtigt keine 0-Bits. en.wikipedia.org/wiki/Cosine_similarity
neelshiv

11

Jaccard-Ähnlichkeit wird für zwei Arten von Binärfällen verwendet:

  1. Symmetrisch, wobei 1 und 0 gleich wichtig sind (Geschlecht, Familienstand usw.)
  2. Asymmetrisch, wobei 1 und 0 unterschiedliche Wichtigkeitsgrade haben (positiv auf eine Krankheit testen)

Kosinusähnlichkeit wird normalerweise im Kontext von Text Mining zum Vergleichen von Dokumenten oder E-Mails verwendet. Wenn die Kosinusähnlichkeit zwischen zwei Dokumenttermvektoren höher ist, haben beide Dokumente mehr Wörter gemeinsam

Ein weiterer Unterschied ist 1 - Der Jaccard-Koeffizient kann als Unähnlichkeits- oder Abstandsmaß verwendet werden, wohingegen die Cosinus-Ähnlichkeit keine derartigen Konstrukte aufweist. Ähnlich verhält es sich mit der Tonimoto-Distanz, die in der Taxonomie verwendet wird.


Warum kann nur Jaccard als Unähnlichkeitsmaß verwendet werden? Meines Wissens ist das cosineeine andere, aber nicht ungültige Maßnahme.
Javadba

3

Wie oben erwähnt, ist die überprüfte Antwort falsch.

abAB

J(EIN,B)=|EINB||EINB|=|EINB||EINB|+|EIN-B|+|B-EIN|

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

Einige Vergleiche:

  • Die Zähler hier sind die gleichen.
  • |A||B|
  • |A||B|

Ich habe noch keine klare Vorstellung davon, wo das eine dem anderen vorzuziehen ist, außer dass, wie Vikram Venkat bemerkte, 1 - Jaccard im Gegensatz zu Cosinus einer wahren Metrik entspricht; und Kosinus erstreckt sich natürlich auf reelle Vektoren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.