Информатика / Алгоритмы и анализ данных
Индекс Жаккара: сходство через пересечение множеств
Индекс Жаккара показывает долю общих элементов в объединении двух множеств. Он принимает значения от 0 до 1: ноль означает отсутствие пересечения, а единица — совпадение множеств.
Формула
A={1,2,3}, B={2,3,4,5}. Два общих элемента из пяти различных: J=2/5=0,4.
Обозначения
- $J(A,B)$
- индекс сходства множеств A и B, безразмерный показатель от 0 до 1
- $A∩B$
- элементы, входящие в оба множества, мощность множества
- $A∪B$
- все элементы хотя бы одного множества, мощность множества
Условия применения
Множества должны быть определены в одной предметной области, а одинаковые элементы распознаваться одинаково. Повторы внутри списка не увеличивают мощность множества. Объединение не должно быть пустым; иначе дробь не определена. При работе с текстом заранее выберите правила регистра, пробелов и нормализации слов.
Ограничения
Индекс не учитывает частоту элемента, порядок и важность признаков: два редких и два важных слова имеют одинаковый вес. При очень больших множествах результат зависит от очистки данных. Для числовых векторов с величинами используют другие меры, например косинусное сходство; индекс Жаккара применяют к присутствию или отсутствию элементов.
Подробное объяснение
Индекс Жаккара сравнивает не сами списки, а их структуру присутствия. Пересечение содержит только элементы, общие для A и B, поэтому его мощность отвечает на вопрос «сколько совпало». Объединение содержит каждый различающийся элемент ровно один раз и задает полный набор признаков, встреченный хотя бы в одном объекте.
Деление нормирует совпадение относительно общего размера данных. Если пересечение равно нулю, дробь равна нулю. Если множества совпадают, числитель и знаменатель равны, поэтому индекс равен единице. Значения между ними показывают, какая доля объединенного набора является общей.
Важно не складывать размеры множеств в знаменателе: общие элементы тогда будут посчитаны дважды. Правильная связь |A∪B|=|A|+|B|−|A∩B| позволяет проверить вычисление вторым способом. Например, при размерах 3 и 4 и пересечении 2 объединение имеет размер 5, а не 7.
Мера симметрична: J(A,B)=J(B,A). Она не различает порядок элементов и не учитывает, сколько раз слово встретилось в документе. Поэтому одинаковый набор тегов дает тот же индекс независимо от частоты, а повторяющиеся записи сначала удаляют.
На практике порог «достаточного сходства» выбирают по задаче. Значение 0,4 само по себе не является универсальным вердиктом: для коротких наборов оно может означать два совпадения, а для больших — гораздо более устойчивое сходство. Отчет должен показывать сами мощности пересечения и объединения, чтобы результат можно было перепроверить.
Как пользоваться формулой
- Запишите оба объекта как множества и удалите повторы внутри каждого списка.
- Составьте пересечение A∩B, оставив только элементы, встречающиеся в обоих множествах.
- Составьте объединение A∪B, выписав каждый различающийся элемент один раз.
- Посчитайте мощности пересечения и объединения, сохранив их как целые числа.
- Разделите мощность пересечения на мощность объединения и округлите только итог.
- Проверьте, что результат находится между 0 и 1 и соответствует видимому числу совпадений.
Историческая справка
Идея сравнивать конечные множества через пересечение и объединение связана с развитием теории множеств в XIX веке, но название и современная прикладная роль индекса закрепились значительно позже. В 1901 году Пол Жаккар использовал отношение общих видов к объединенному числу видов при сравнении альпийской флоры; именно этот экологический контекст дал мере ее имя. В дальнейшем коэффициент стал применяться к бинарным признакам и документам, где наличие слова важнее его частоты. Развитие информационного поиска и анализа корзин сделало индекс удобным для разреженных наборов. Современные библиотеки обычно определяют индекс Жаккара как размер пересечения, деленный на размер объединения, но детали предварительной обработки — регистр, токенизация и удаление дублей — остаются частью постановки задачи. Поэтому историческая формула сохраняется, а область применения расширяется вместе с дискретными данными.
Историческая линия формулы
Название индекса связано с Полем Жаккаром и его сравнением флористических списков 1901 года. Математическая операция использует базовые понятия пересечения и объединения множеств, поэтому корректно говорить о прикладной атрибуции, а не об изобретении всей теории множеств одним человеком.
Пример
Даны A={1,2,3} и B={2,3,4,5}. Общие элементы образуют A∩B={2,3}, поэтому |A∩B|=2. Объединение A∪B={1,2,3,4,5}, его мощность равна 5. Подстановка дает J(A,B)=2/5=0,4. Проверка через размеры: |A|+|B|−|A∩B|=3+4−2=5, что совпадает с объединением. Ответ 0,4 означает, что 40% элементов объединенного набора являются общими. Если в A или B один и тот же элемент записан дважды, он все равно считается один раз: множества не хранят частоты. Поэтому списки A={1,2,2,3} и B={2,3,3,4,5} после очистки дают тот же расчет 2/5=0,4. Это важно при сравнении тегов и идентификаторов, где дубли могут появиться после объединения источников.
Частая ошибка
Нельзя использовать сумму размеров A и B вместо объединения: общие элементы будут посчитаны дважды. Не учитывайте повтор записи внутри списка как новые элементы. Не сравнивайте строки до нормализации регистра и пробелов, если они означают один признак. Не округляйте мощности множеств; округляют только дробный итог. Пустое объединение дает деление на ноль и требует отдельного правила.
Практика
Задачи с решением
Два набора тегов
Условие. A={a,b,c,d}, B={b,c,e}. Найдите J(A,B).
Решение. Пересечение {b,c} имеет размер 2, объединение {a,b,c,d,e} — размер 5. J=2/5=0,4.
Ответ. J=0,4
Полное совпадение
Условие. A={10,20,30}, B={30,20,10}. Найдите индекс.
Решение. После удаления порядка множества совпадают: пересечение и объединение имеют размер 3. J=3/3=1.
Ответ. J=1
Дополнительные источники
- https://nlp.stanford.edu/IR-book/html/htmledition/near-duplicates-and-shingling-1.html
- https://scikit-learn.org/stable/modules/generated/sklearn.metrics.jaccard_score.html
- https://ndlsearch.ndl.go.jp/books/R100000136-I1573387450552842240
Связанные формулы
Информатика
Косинусное сходство векторов: формула и расчёт угла
Косинусное сходство сравнивает направление двух ненулевых векторов и принимает значения от −1 до 1. Для неотрицательных векторов оно показывает, насколько совпадает профиль признаков.
Информатика
Расстояние Левенштейна: вставки, удаления и замены
Расстояние Левенштейна — минимальное число вставок, удалений и замен стоимостью 1, превращающих одну строку в другую. Перестановка соседних символов отдельной операцией не считается.
Информатика
Расстояние Хэмминга между двоичными словами
Расстояние Хэмминга между двоичными словами: формула d(x,y)=\sum [x_i\ne y_i] помогает величины d, x_i, y_i заданы для одной и той же ситуации, периода или объекта. В тексте есть условия, пример, ошибки и проверка результата.