Wir wissen , dass Jaccard (berechnet zwischen zwei beliebigen Spalten von binären Daten ) ist eineX. , während Rogers-Tanimotoa+d isteina + b + c , wobeia + da + d+ 2 ( b + c )
- a - Anzahl der Zeilen, in denen beide Spalten 1 sind
- b - Anzahl der Zeilen, in denen diese und nicht die andere Spalte 1 ist
- c - Anzahl der Zeilen, in denen die andere und nicht diese Spalte 1 ist
- d - Anzahl der Zeilen, in denen beide Spalten 0 sind
, die Anzahl der Zeilen in X.a + b + c + d= nX.
Dann haben wir:
ist die quadratische symmetrische Matrix von a zwischen allen Spalten.X.'X = A.ein
sind die quadratische symmetrische Matrix von d zwischen allen Spalten ( "not X" konvertiert 1-> 0 und 0-> 1 in X).( n o t X )'( N o t X ) = Dd
Also, ist die quadratische symmetrische Matrix von Jaccard zwischen allen Spalten.EINn - D.
ist die quadratische symmetrische Matrix von Rogers-Tanimoto zwischen allen Spalten.A +D.A + D + 2 ( n - ( A + D ) )= A + D.2 n - A - D.
Ich habe numerisch geprüft, ob diese Formeln das richtige Ergebnis liefern. Tun sie.
Upd. Sie können auch die Matrizen und C erhalten :B.C.
, wobei "[1]" eine Matrix von Einsen mit der Größe X bezeichnet . B ist die quadratische asymmetrische Matrix von b zwischen allen Spalten; sein Elementijist die Anzahl der Zeilen in X mit 0 in Spalteiund 1 in Spaltej.B = [ 1 ]'X - A.X.B.bX.
Folglich ist .C = B.'
Matrix kann auch auf diese Weise berechnet werden, natürlich: n - A - B - C .D.n - A - B - C.
Wenn Sie die Matrizen , können Sie eine Matrix eines beliebigen paarweisen (Dis-) Ähnlichkeitskoeffizienten berechnen, der für Binärdaten erfunden wurde.A , B , C , D.
vegan
Paket implementiert sind . Ich denke, sie sind auch ziemlich schnell optimiert.