2010-12-07 3 views
3

Ich habe dieses Problem bei der Berechnung Jaccard Distanz für Sätze (Bit-Vektoren):Jaccard Abstand

p1 = 10111;

p2 = 10011.

Größe Kreuzungs = 3; (Wie können wir es herausfinden?)

Größe der Vereinigung = 4, (Wie könnten wir es herausfinden?)

Jaccard Ähnlichkeit = (Kreuzung/union) = 3/4.

Jaccard Abstand = 1 - (Jaccard Ähnlichkeit) = (1-3/4) = 1/4.

Aber ich verstehe nicht, wie könnten wir die „Kreuzung“ und „Vereinigung“ der beiden Vektoren erfahren.

Bitte helfen Sie mir.

Vielen Dank.

Antwort

6

Größe der Schnittmenge = 3; (Wie können wir es herausfinden?)

Anzahl der gesetzten Bits von p1&p2 = 10011

Größe der Vereinigung = 4, (Wie könnten wir es herausfinden?)

Anzahl der Set-Bits von p1|p2 = 10111

Vektor bedeutet hier Binär-Array, wo i-te Bit bedeutet i-ten Element in diesem Satz vorhanden.

+3

Hinweis: wenn Sie nicht wissen, wie man die Anzahl von '1 berechnet "Bits, lesen Sie dies: http://www-graphics.stanford.edu/~seander/bithacks.html#CountBitsSetNaive – ruslik

+0

Vielen vielen vielen Dank für euch alle, ich schätze Ihre Hilfe.: D – Visitor

+0

@Besitzer vergessen Sie nicht, die Antwort zu akzeptieren, wenn es Ihnen geholfen hat – Andrey

2

Wenn p1 = 10111 und p2 = 10011,

Die Gesamtzahl der jede Kombination für p1 und p2-Attribute:

  • M11 = Gesamtzahl der Attribute wobei p1 & p2 haben einen Wert 1,
  • M01 = Gesamtzahl der Attribute, wobei P1 einen Wert von 0 & p2 hat einen Wert 1,
  • M10 = Gesamtzahl der Attribute wobei p1 einen Wert von 1 & p2 Wert 0 hat,
  • M00 = Gesamtzahl der Attribute wobei p1 p2 & 0.

Jaccard Ähnlichkeitskoeffizient = J = Kreuzung/union = M11/(M01 + M10 + M11) = 3/(0 + 1 einen Wert haben, + 3) = 3/4,

Jaccard Abstand = J '= 1 - J = 1 - 3/4 = 1/4, Oder J' = 1 - (M11/(M01 + M10 + M11)) = (M01 + M10)/(M01 + M10 + M11) = (0 + 1)/(0 + 1 + 3) = 1/4

+0

Warum ist M00 nicht im Nenner enthalten? http://stackoverflow.com/questions/43518507/why-dont-we-include-0-matches-while-calaculating-jaccard-distance-between-binary – Thilo