Как рассчитать сходство Жаккара в Python


Индекс подобия Жаккара измеряет сходство между двумя наборами данных. Он может варьироваться от 0 до 1. Чем выше число, тем более похожи два набора данных.

Индекс сходства Жаккара рассчитывается как:

Сходство Жаккара = (количество наблюдений в обоих наборах) / (число в любом наборе)

Или, записанный в форме записи:

J(A, B) = |A∩B| / |А∪В|

В этом руководстве объясняется, как рассчитать сходство Жаккара для двух наборов данных в Python.

Пример: сходство Жаккара в Python

Предположим, у нас есть следующие два набора данных:

import numpy as np

a = [0, 1, 2, 5, 6, 8, 9]
b = [0, 2, 3, 4, 5, 7, 9]

Мы можем определить следующую функцию для вычисления сходства Жаккара между двумя наборами:

#define Jaccard Similarity function
def jaccard(list1, list2):
 intersection = len(list(set(list1).intersection(list2)))
 union = (len(list1) + len(list2)) - intersection
 return float(intersection) / union

#find Jaccard Similarity between the two sets 
jaccard(a, b)

0.4

Сходство Жаккара между двумя списками составляет 0,4 .

Обратите внимание, что функция вернет 0 , если два набора не имеют общих значений:

c = [0, 1, 2, 3, 4, 5]
d = [6, 7, 8, 9, 10]

jaccard(c, d)

0.0

И функция вернет 1 , если два набора идентичны:

e = [0, 1, 2, 3, 4, 5]
f = [0, 1, 2, 3, 4, 5]

jaccard(e, f)

1.0

Функция также работает для наборов, содержащих строки:

g = ['cat', 'dog', 'hippo', 'monkey']
h = ['monkey', 'rhino', 'ostrich', 'salmon']

jaccard(g, h)

0.142857

Вы также можете использовать эту функцию, чтобы найти расстояние Жаккара между двумя наборами, которое представляет собой несходство между двумя наборами и рассчитывается как 1 — сходство Жаккара.

a = [0, 1, 2, 5, 6, 8, 9]
b = [0, 2, 3, 4, 5, 7, 9]

#find Jaccard distance between sets *a* and *b*
1 - jaccard(a, b)

0.6

Связанный: Как рассчитать сходство Жаккара в R

Обратитесь к этой странице Википедии, чтобы узнать больше об индексе сходства Жаккара.

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.