Skip to Content

§4. Быстрые алгоритмы

В 1978 г. М. Брюиношем было введено важное понятие редуктивности (сводимости) мер отдалённости. Оно заключается в том, что для произвольного δ>0\delta > 0 условия ρ(S1,S2)≤δ\rho(S_1, S_2) \le \delta и ρ(S0,S1∪S2)<δ\rho(S_0, S_1 \cup S_2) < \delta влекут выполнение хотя бы одного из неравенств ρ(S0,S1)<δ\rho(S_0, S_1) < \delta или ρ(S0,S2)<δ\rho(S_0, S_2) < \delta.

Иными словами, δ\delta-окрестность множества, полученного объединением двух δ\delta-близких классов, включена в объединение δ\delta-окрестностей этих двух классов.

Можно дать другую формулировку свойства редуктивности: если ρ(S1,S2)≤δ\rho(S_1, S_2) \le \delta, а ρ(S0,S1)≥δ\rho(S_0, S_1) \ge \delta и ρ(S0,S2)≥δ\rho(S_0, S_2) \ge \delta, то ρ(S0,S1∪S2)≥δ\rho(S_0, S_1 \cup S_2) \ge \delta. Обладают ли этим свойством ρmin⁡\rho_{\min} и ρW\rho_W — вопрос 5.

Смысл по-пацански: если два класса слиплись, новый ком не может оказаться ближе к постороннему, чем был хотя бы один из кусков. Слияние не «притягивает» соседей — значит, тех, кто был далеко, можно пока не трогать.

Для редуктивных мер отдалённости можно построить быстрые алгоритмы, позволяющие классифицировать тысячи объектов. Разберём их принципиальную схему.

Схема с порогом δ

При kk-м шаге иерархической процедуры приходится искать минимальный элемент в матрице мер отдалённостей классов, то есть минимум из Nk=(n−k+1)(n−k)/2N_k = (n - k + 1)(n - k)/2 чисел. Ясно, что минимальный элемент находится среди элементов, не превосходящих некоторый порог δ\delta. При соответствующем выборе δ\delta массив таких элементов имеет размер намного меньший, чем NkN_k. В этом и состоит основная причина большой скорости работы алгоритмов и экономии компьютерной памяти.

Обозначим через UδU_\delta множество пар (i,j)(i, j) номеров классов таких, что ρij≤δ\rho_{ij} \le \delta, а через VδV_\delta — массив из номеров классов, присутствующих в UδU_\delta.

  1. На первом этапе попарно объединяются классы из VδV_\delta, пока текущее UδU_\delta не станет пустым.
  2. Затем берётся новое значение порога δ′>δ\delta' > \delta, и формируются множества Uδ′U_{\delta'} и Vδ′V_{\delta'}.
  3. И так далее, до полного слияния всех объектов в один класс.

Пример: пять точек, метрика города

Рассмотрим работу алгоритма на данных рис. 15 у Лагутина — пять точек на целочисленной решётке: 1=(1,1)1 = (1, 1), 2=(1,2)2 = (1, 2), 3=(3,3)3 = (3, 3), 4=(7,2)4 = (7, 2), 5=(7,4)5 = (7, 4). В качестве расстояния используем метрику города D1, мерой отдалённости классов будем считать ρmin⁡\rho_{\min}.

Матрица расстояний:

12345
101479
20368
3055
402
50

Ход алгоритма:

  1. Зададим δ=3\delta = 3. Тогда Uδ={(1,2),(2,3),(4,5)}U_\delta = \{(1,2), (2,3), (4,5)\} и Vδ={1,2,3,4,5}V_\delta = \{1, 2, 3, 4, 5\}.
  2. Объединяем наиболее близкие объекты 1 и 2 в новый класс под номером 6. Матрица межклассовых мер для классов 3, 4, 5, 6: ρ(3,6)=min⁡(4,3)=3\rho(3,6) = \min(4, 3) = 3, ρ(4,6)=6\rho(4,6) = 6, ρ(5,6)=8\rho(5,6) = 8, остальные прежние.
  3. При этом изменятся UδU_\delta и VδV_\delta: Uδ={(3,6),(4,5)}U_\delta = \{(3,6), (4,5)\}, Vδ={3,4,5,6}V_\delta = \{3, 4, 5, 6\}, и т. д.
  4. Объединяются 4 и 5 (уровень 2) в класс 7, затем 3 и 6 (уровень 3) в класс 8.
  5. После этого уже нет пар классов, для которых ρmin⁡≤3\rho_{\min} \le 3: осталось ρ(7,8)=5\rho(7, 8) = 5. Поэтому приходится увеличить порог до δ′=5\delta' = 5, что и позволяет завершить процедуру.

При выполнении свойства редуктивности алгоритм строит точно такую же дендрограмму, что и обычная иерархическая процедура. Для присоединения класса 3 к классам 1, 2 достаточно просмотреть окрестности 1 и 2, а не проверять связь 1–4.

Быстрый алгоритм для редуктивных мер

δU_δ в начале этапаV_δобъединения (уровень)max |U_δ|перебрано пар
3(1,2) (2,3) (4,5){1,2,3,4,5}1+2→6 (1), 4+5→7 (2), 3+6→8 (3)36
5(7,8){7,8}7+8→9 (5)11

На каждом этапе объединяем только классы из V_δ — те, что входят в пары с ρ ≤ δ. Когда U_δ пустеет, порог поднимаем: δ′ = δ + шаг (но не меньше наименьшей из оставшихся мер). Новые классы получают номера 6, 7, …В памяти одновременно не больше 3 пар (против N₁ = 10 у обычной процедуры). При поиске минимумов перебрано 7 пар против Σ N_k = 20; плюс 2 полных прохода для построения U_δ в начале этапов. Дендрограмма совпадает с обычной процедурой.

Выбери «40 случайных точек» и поиграй с методами. Для ближнего и дальнего соседа, средней связи и Уорда дендрограмма совпадает с обычной, а в памяти держится лишь малая доля из N1=n(n−1)/2N_1 = n(n - 1)/2 пар. Метод центров масс не редуктивен, и для него совпадение не гарантировано.

Смысл по-пацански: не ищи ближайшую пару среди всех — сперва отбери «подозрительно близких» по порогу и разбирайся только с ними. Закончились — подними планку.

Как выбирать пороги

Эффективность алгоритма существенно зависит от выбора последовательности порогов δ<δ′<δ′′<…\delta < \delta' < \delta'' < \dots:

  • если δ\delta слишком велико, то UδU_\delta включает почти все пары классов, и мы практически возвращаемся к традиционной иерархической процедуре;
  • если же величина порога слишком мала, то придётся часто формировать множества UδU_\delta и VδV_\delta.

Обычно используют следующие два способа выбора порогов.

Первый способ (на основе гистограммы ρij\rho_{ij}). Порог δ\delta находится из условия достаточности выделенной компьютерной памяти для хранения всех ρij≤δ\rho_{ij} \le \delta.

Пусть, например, число объектов равно 100. Тогда на первом шаге имеется N1=100⋅99/2=4950N_1 = 100\cdot99/2 = 4950 пар классов. При этом задано, что их количество в памяти не должно превышать 200. Предположим, что первые четыре интервала гистограммы содержат 180 пар, а пятый — ещё 40 пар. В таком случае можно поместить в память только 180 пар, причём порог δ\delta будет равен наибольшему значению ρij\rho_{ij} этих пар.

Смысл по-пацански: не держи в голове весь телефонный справочник района — держи только соседей по подъезду. Порог δ\delta — это и есть «подъезд»: 180 номеров вместо 4950, а позвонить всё равно придётся только ближайшему.

Второй способ («изменяющееся среднее»). Вычисляется среднее арифметическое всех ρij\rho_{ij}; пусть это будет δ1\delta_1. Если возможно размещение в памяти всех ρij≤δ1\rho_{ij} \le \delta_1, то полагается δ=δ1\delta = \delta_1. Иначе удаляются пары, у которых ρij>δ1\rho_{ij} > \delta_1, а для оставшихся снова подсчитывается среднее арифметическое δ2\delta_2 и т. д. — до тех пор, пока все ρij≤δk\rho_{ij} \le \delta_k не уместятся в заданной компьютерной памяти.

Замечание 4. Е. Диде и В. Моро (1984 г.) показали, что если слегка ужесточить условия теоремы 1 из §3, заменив неравенство в) на неравенство

в′)C1+C2+min⁡{0,C3}≥1,\text{в}')\quad C_1 + C_2 + \min\{0, C_3\} \ge 1,

то меры отдалённости, удовлетворяющие (5), будут редуктивными.

По кирпичикам — проверим на таблице из §3:

  • ближний и дальний сосед, средняя связь: C3=0C_3 = 0 и C1+C2=1C_1 + C_2 = 1 — условие выполнено;
  • Уорд: C1+C2+C3=(n0+n1)+(n0+n2)−n0n0+n1+n2=1C_1 + C_2 + C_3 = \frac{(n_0 + n_1) + (n_0 + n_2) - n_0}{n_0 + n_1 + n_2} = 1 — выполнено;
  • центры масс: C1+C2=1C_1 + C_2 = 1, но C3<0C_3 < 0, и сумма меньше 1 — условие нарушено.

Проверь себя

Тест

Объектов 1000. Сколько пар классов N₁ = n(n − 1)/2 приходится просматривать на первом шаге обычной иерархической процедуры?
Обновлено