Jaccard'ın ( ikili verilerin herhangi iki sütunu arasında hesaplandığını biliyoruz.X) dır-dir bira + b + c, Rogers-Tanimoto ise a + da + d+ 2 ( b + c ), nerede
- a - her iki sütunun da 1 olduğu satır sayısı
- b - diğer sütunun değil, bunun olduğu satır sayısı 1
- c - bu sütunun değil, diğerinin olduğu satır sayısı 1
- d - her iki sütunun da 0 olduğu satır sayısı
a + b + c + d= n, içindeki satır sayısı X
Sonra elimizde:
X′X=A kare simetrik matrisidir a tüm sütunlar arasında.
(notX)′(notX)=D kare simetrik matrisidir d Tüm sütunlar arasında ("X değil" X'te 1-> 0 ve 0-> 1'i dönüştürüyor).
Yani, An−D tüm sütunlar arasındaki Jaccard'ın kare simetrik matrisidir.
A+DA+D+2(n−(A+D))=A+D2n−A−D tüm sütunlar arasındaki Rogers-Tanimoto'nun kare simetrik matrisidir.
Bu formüllerin doğru sonuç verip vermediğini sayısal olarak kontrol ettim. Onlar yapar.
Post. Matrisler de elde edebilirsinizB ve C:
B=[1]′X−A, burada "[1]", X. B kare asimetrik matrisi btüm sütunlar arasında; ij öğesi , içindeki satır sayısıdırXi sütununda 0 ve j sütununda 1 .
Sonuç olarak, C=B′.
Matris D tabii ki bu şekilde de hesaplanabilir: n−A−B−C.
Matrisleri bilmek A,B,C,D, ikili veriler için icat edilen herhangi bir çift (dis) benzerlik katsayısının bir matrisini hesaplayabilirsiniz.
vegan
pakette zaten bir dizi benzerlik endeksinin (Jaccard'lar dahil) uygulandığını da işaret ettiğimi düşündüm . Bence hız için de oldukça iyi optimize edilmişler.