Ми знаємо, що Жакард (обчислений між будь-якими двома стовпцями двійкових даних ) є , тоді як Роджерс-Танімото є , деХаa + b + ca + da + d+ 2 ( b + c )
- a - кількість рядків, де обидва стовпці дорівнюють 1
- b - кількість рядків, де цей, а не інший стовпець 1
- c - кількість рядків, де інший, а не цей стовпець 1
- d - кількість рядків, де обидва стовпці дорівнюють 0
a + b + c + d= n , кількість рядків уХ
Тоді ми маємо:
Х'X = A є квадратної симетричною матрицею між усіма стовпчиками.а
( н о т X)'( n o t X ) = D - квадратна симетрична матриця між усіма стовпцями ("не X" перетворює 1-> 0 і 0-> 1 в X).г
Отже, - квадратна симетрична матриця Жакарда між усіма стовпцями.Аn - D
A + DA + D + 2 ( n - ( A + D ) )=A + D2 п - А - Д - квадратна симетрична матриця Роджерс-Танімото між усіма колонами.
Я перевіряв чисельно, чи ці формули дають правильний результат. Вони роблять.
Оновити Ви також можете отримати матриці та :БС
B = [ 1]'Х - А , де "[1]" позначає матрицю з одиниць, розміром , як . - квадратна асиметрична матриця між усіма стовпцями; його елемент ij - кількість рядків у з 0 у стовпці i та 1 у колонці j .ХБбХ
Отже, .C =Б'
Матриця може бути також обчислена таким чином, звичайно: .Dn - A - B - C
Знаючи матриці , ви можете обчислити матрицю будь-якого попарного (не) коефіцієнта подібності, винайденого для двійкових даних.A , B , C , D
vegan
пакеті вже реалізовано ряд індексів подібності (включаючи Жакарда) . Я думаю, що вони також досить добре оптимізовані для швидкості.