Телефон: 8-800-350-22-65
Напишите нам:
WhatsApp:
Telegram:
MAX:
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 3(341)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5

Библиографическое описание:
Корнева Т.А. ОБЗОР МЕТОДОВ ОБНАРУЖЕНИЯ ЧАСТЫХ ПРЕДМЕТНЫХ НАБОРОВ ДЛЯ БОЛЬШИХ ДАННЫХ // Студенческий: электрон. научн. журн. 2026. № 3(341). URL: https://sibac.info/journal/student/341/402172 (дата обращения: 20.02.2026).

ОБЗОР МЕТОДОВ ОБНАРУЖЕНИЯ ЧАСТЫХ ПРЕДМЕТНЫХ НАБОРОВ ДЛЯ БОЛЬШИХ ДАННЫХ

Корнева Татьяна Андреевна

студент, Институт открытого образования, Финансовый университет при Правительстве Российской Федерации,

РФ, г. Москва

Калажоков Заур Хамидбиевич

научный руководитель,

канд. физ.-мат. наук, доц. кафедры «Анализа данных и машинного обучения», Финансовый университет при Правительстве Российской Федерации,

РФ, г. Москва

OVERVIEW OF METHODS FOR DETECTING FREQUENT SUBJECT SETS IN THE SHOPPING CART FOR BIG DATA

 

Korneva Tatyana Andreevna

Student, Institute of Open Education, Financial University under the Government of the Russian Federation,

Russia, Moscow

Kalazhokov Zaur Khamidbievich

Scientific supervisor, Candidate of Physical and Mathematical Sciences, Associate Professor of the Department of Data Analysis and Machine Learning, Financial University under the Government of the Russian Federation,

Russia, Moscow

 

АННОТАЦИЯ

В статье представлен обзор методов обнаружения частых предметных наборов в корзине покупок для анализа больших данных. Для изучения проблематики были взяты такие алгоритмы, как Apriori, FP-Growth и Eclat, на основе которых была оценена эффективность существующих методов анализа рыночной корзины для Big Data. Также рассмотрены трудности, возникающие при использовании указанных методов, и пути их решения, а именно применение преимуществ перспективных направлений таких, как глубокое обучение, параллельная обработка данных и другое.

ABSTARCT

The article provides an overview of methods for detecting frequent subject sets in the shopping cart for big data analysis. To study the problems, algorithms such as Apriori, FP-Growth and Eclat were used, on the basis of which the effectiveness of existing methods of analyzing the market basket for Big Data was evaluated. The difficulties encountered in using these methods and ways to solve them are also considered, namely, the application of the advantages of promising areas such as deep learning, parallel data processing and others.

 

Ключевые слова: большие данные, корзина покупок, частый предметный набор, ассоциативные правила, Apriori, FP-Growth, Eclat.

Keywords: big data, shopping cart, frequent subject set, associative rules, Apriori, FP-Growth, Eclat.

 

Введение

С появлением хранилищ данных и различных инструментов их обработки многие сферы деятельности человека стали использовать эти преимущества для принятия бизнес-решений, улучшения обслуживания и других целей. Практически в любой отрасли данные стали источником роста: с их помощью улучшают сервис, корректируют стратегии и ищут новые возможности. Ярче всего этот тренд виден в розничной торговле. Каждый день покупатели оставляют за собой цифровой след из миллионов чеков - и в обычном супермаркете, и в интернет-магазине. Каждая такая покупка - не просто факт продажи, а ценная информация о предпочтениях и привычках клиентов.

Чтобы расшифровать эти покупки и извлечь из них реальную выгоду, умные компании активно используют анализ покупательской корзины. Если говорить простыми словами, эта технология помогает «подсмотреть», что люди кладут в корзину одновременно. Она выявляет неочевидные закономерности: например, что к шампуню часто берут кондиционер той же марки, а покупка пива по пятницам нередко сопровождается чипсами. А иногда, наоборот, показывает, что один товар вытесняет другой.

Анализ покупательской корзины - классическая задача в data mining. Её суть состоит в поисках чеках клиентов устойчивые комбинации товаров, которые покупаются вместе. Для магазина это знание - мощный инструмент. Оно помогает грамотно расставить товары на полках, стимулировать покупателей брать больше и в целом управлять ассортиментом более эффективно. Простой пример: если известно, что к чаю часто берут печенье или конфеты, то имеет смысл разместить эти товары рядом. Такая выкладка подсказывает покупателю дополнить свою корзину, что в итоге увеличивает средний чек.

Если говорить конкретнее, такой анализ даёт бизнесу две ключевые возможности:

  1. Выявлять устойчивые связки товаров. Это знание можно использовать с двух сторон. Можно разместить связанные товары вместе, чтобы усилить их совместные продажи. А можно, наоборот, разнести их по разным концам зала, если один из товаров в дефиците или если есть цель увеличить время пребывания клиента в магазине и показать ему другие предложения.
  2. Понимать и прогнозировать тренды. Анализ корзины позволяет увидеть, что на самом деле важно клиентам, какие потребности они закрывают. Это понимание - основа для разработки точечных маркетинговых кампаний и даже для прогнозирования будущего спроса. Компания перестаёт действовать вслепую и начинает предугадывать поведение покупателей, опираясь на реальные данные.

Главная сложность при анализе покупательской корзины связана с масштабом данных. Существует множество алгоритмов для поиска часто встречающихся наборов товаров, но практически все они упираются в одну и ту же проблему: огромный и постоянно растущий массив информации. Дело в том, что с увеличением ассортимента количество возможных комбинаций товаров растет не линейно, а экспоненциально. Представьте: если в магазине 100 товаров, то только возможных пар уже тысячи, а уж троек и более - и вовсе миллионы. Из-за этого многие стандартные методы анализа начинают терять эффективность: они работают слишком медленно или требуют нереальных вычислительных ресурсов, чтобы справиться с миллионами транзакций. Поэтому современная задача — это не просто найти закономерности. Это ещё и найти эффективный способ их поиска. Нужны такие алгоритмы, которые смогут обработать гигантский объем данных за приемлемое время и без чрезмерных затрат. Другими словами, ценность представляет не только сам найденный паттерн, но и тот интеллектуальный "инструмент", который позволил его обнаружить в условиях реального масштаба информации.

Главная цель этой статьи - разобраться, какие методы сегодня лучше всего справляются с поиском популярных наборов товаров в больших массивах данных. Важно рассмотреть не просто рабочие варианты, а те, которые обеспечивают и высокую точность, и приемлемую скорость работы. В частности, статья будет направлена на следующие темы:

  1. Сравнительный анализ классических и современных алгоритмов. В фокусе исследования находятся три фундаментальных подхода: Apriori, FP-Growth и Eclat. Анализ направлен на оценку их практической применимости, включая такие параметры, как способность к масштабированию на значительных объёмах данных, сложность реализации и ресурсоёмкость. Особый интерес представляет выявление сильных сторон и ограничений каждого из методов.
  2. Формирование системы критериев для выбора алгоритма. На основании проведённого анализа планируется сформулировать структурированные рекомендации. Их цель - предоставить специалистам критерии для выбора наиболее подходящего алгоритма в зависимости от конкретного контекста задачи. Эти рекомендации будут учитывать различные профили данных и операционные ограничения, такие как доступные вычислительные ресурсы и допустимое время обработки.
  3. Перспективные направления развития методологии. Статья также затрагивает вопрос развития данной предметной области. Будет проведён разбор актуальных ограничений существующих решений. Также в заключительной части представлен обзор наиболее перспективных исследовательских трендов.

Обзор методов обнаружения частых предметных наборов

Перед рассмотрением алгоритмов обнаружения частых предметных наборов необходимо ознакомится с основными понятиями данной темы.

Стоит начать с понятия транзакции или корзины покупок, поскольку оно является основным элементов анализа любого из представленных алгоритмов. Транзакция – совокупность товаров, которые были приобретены одним покупателем в один день. Иначе говоря, это чек, в котором представлен список покупок и их количество. Соответственно, из любой транзакции можно выделить предметный набор (itemset) - набор товаров, который рассматривается как единое целое. Например, комбинация молоко, хлеб, яйца – это предметный набор. Однако, стоит понимать, что не каждый такой набор является частым предметным набором, которой и является решением задачи анализа корзины. Частый предметный набор (frequent itemset) - предметный набор, который встречается в некотором количество транзакций выше заданного порога. Порог является управляемым параметром и зависит от количества анализируемых транзакций, товаров в магазине, составленных предметных наборов и других условий.

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

Первое понятие, которое применяется для анализа получаемых предметных наборов - поддержка (support). Под поддержкой понимается доля транзакций, в которых встречается данный предметный набор. Для расчет данной метрики используется формула:

,

где X - предметный набор, содержащий в себе n-items, а T - количество транзакций. В общем виде эта метрика показывает «частотность» данного предметного набора во всех транзакциях. Если говорить про вариант поиска поддержки для двух товаров  и , например чая и печенья, то формула примет вид:

,

где  - количество транзакций, в которых присутствует  и .

Следующее понятие необходимое для данной задачи - доверие (confidence). Доверие - вероятность, что при покупке одного товара покупатель также приобретет и другой. В виде формулы данное понятие можно представить следующим образом:

Рассмотрим на примере «кто покупает чай, тот покупает и печенье». Для этого сначала посчитаем, поддержку правила «покупает чай», а затем «покупает чай и печенье». Таким образом, нужно посчитать в скольких транзакциях сработало, что покупатель «купил чай» и «купил чай и печение»:

Подъем (lift) - показатель, который позволяет оценить силу связи между двумя наборами предметов. Иначе говоря, показывает, как часто два набора появляются в транзакциях вместе по сравнению с тем, когда они встречаются независимо друг от друга.

Разберемся на примере чая и печенья. Чтобы понять, как часто их покупают вместе, нужно провести небольшой расчет. Сначала рассчитывается, как часто чай и печенье встречаются в одной покупке. Затем это число делится на результат умножения двух других: как часто покупают просто чай и как часто - просто печенье. В результате:

  • Если получилась 1, значит, товары никак не связаны. Покупка одного никак не влияет на покупку другого.
  • Если цифра больше 1, значит, связь есть. Чем сильнее она отличается от единицы в большую сторону, тем чаще эти товары берут вместе. Например, 1.5 - слабая связь, а 3 - уже очень сильная.
  • Если значение меньше 1, ситуация обратная. Значит, наличие одного товара в корзине скорее снижает вероятность покупки другого.

Если говорить проще, этот показатель сравнивает две вещи: реальную частоту совместных покупок и ту частоту, которая была бы, если бы товары покупались совершенно независимо друг от друга. Таким образом, подъем для рассматриваемого примера можно представить в следующем виде:

Понятие минимальной поддержки является важной частью алгоритмов поиска частых предметных наборов. Минимальная поддержка - порог, который позволяет определить, какие наборы предметов являются частыми. С помощью изменения данного параметра можно получать разное множество частых наборов и отсекать редко появляющиеся itemset.

Поиск популярных наборов товаров лишь первый шаг в анализе покупательской корзины. Гораздо важнее следующий этап: выявить и проверить реальные связи между найденными товарами. Эти связи, которые называют ассоциативными правилами, и помогают бизнесу понять поведение клиентов и принимать стратегические решения.

Сам подход к поиску таких закономерностей так и называется - обучение на основе ассоциативных правил (ARL). Его цель - находить в данных шаблоны вида: «если купили X, то с высокой вероятностью купят и Y». Алгоритмы ARL как раз просеивают все возможные комбинации покупок, чтобы отобрать самые устойчивые и значимые связи.

Среди множества методов особенно широко используется алгоритм Apriori. Его логика довольно прозрачна: он начинает с одиночных товаров и постепенно «наращивает» наборы, проверяя, насколько часто они встречаются вместе. При этом алгоритм сразу отбрасывает комбинации, у которых нет шансов стать частыми, что значительно ускоряет весь процесс поиска.

Работу данного алгоритма можно разделить на несколько этапов, которые включают в себя два основных шага:

  1. Формирование кандидатов. На этом этапе алгоритм из представленного набора данных создает множество i-элементных кандидатов, которые используются для следующего шага.
  2. Подсчет кандидатов. После получения кандидатов для каждого из них вычисляется поддержка. После получения значения метрики осуществляется отсечение кандидатов, которые не проходят по порогу минимальной поддержки, заданной пользователем. Все остальные i-элементные наборы называются часто встречающими и применяются для построения ассоциативных правил.

Прямой перебор всех возможных комбинаций товаров в больших данных - задача почти невыполнимая. Чтобы справиться с этой проблемой, алгоритм Apriori использует ключевую идею, которую называют свойством антимонотонности: если какой-то набор товаров (например, «молоко и трюфели») встречается редко, то нет никакого смысла проверять более крупный набор, который его включает (например, «молоко, трюфели и хлеб»). Он будет встречаться ещё реже или так же редко. Эта логика позволяет кардинально сократить область поиска, отбрасывая заведомо бесперспективные комбинации на раннем этапе.

Рассмотрим процесс работы Apriori более детально. На первом этапе алгоритм частые однопредметные наборы - множество X1. Далее для составления множества X2 происходит связывание множества X1 с самим собой, после чего применяется свойство антимонотонности для сокращения предметных наборов. В результате наборы множества X2, которые не отсеклись после сокращения, создают X2. Теперь для создания Xk используется множество кандидатов Xk-1, которые также связываются друг с другом.

Посмотрим описанные шаги на примере набора данных (табл. 1).

Таблица 1.

Исходный набор данных

ID

Items

1

A B C

2

D C E

3

A B E D C

4

B A

 

Первым шагом алгоритм создаст таблицу с однопредметными наборами и после рассчитает количество поддержки для каждого набора (табл. 2)

Таблица 2.

Таблица однопредметных наборов

Items

Support

A

3

B

3

C

3

D

2

E

2

 

Предположим, что пользователь ввел минимальное значение поддержки равное 3, что позволяет алгоритму отбросить все элементы, которые не удовлетворяют этому значению (табл. 3).

Таблица 3.

Отсечение по минимальному значение поддержки

Items

Support

A

3

B

3

С

3

 

После получения множества X1, которое стоит из двух элементов – А и В, алгоритм сгенерирует следующий набор кандидатов путем составления комбинаций между элементами полученного набора. Далее происходит аналогичный расчет метрики поддержки уже на основе новых наборов (табл. 4).

Таблица 4.

Набор кандидатов из двух элементов

Items

Support

{A B}

3

{B C}

2

{A С}

2

 

К полученной таблице также применяется свойство антимонотонности, в результате которого остается один единственный набор предметов {A B}. Полученный набор (или наборы) считаются частыми предметными наборами и используются для следующего этапа - построения ассоциативных правил. Работа алгоритма Apriori заканчивается после получения frequent items и с помощью новой процедуры выстраиваются ассоциативные правила.

Для генерации правил на основе полученных частых предметных наборов к каждому набору s можно применять алгоритм, состоящий из двух шагов:

  1. Необходимо сгенерировать все возможные поднаборы x.
  2. После построения поднаборов xx, создается ассоциация R: xx -> (x-xx), где x-xx является набором x без элементов поднабора xx. После составления ассоциации рассчитываются значения доверия и подъема, на основе которых принимается решения является ли это ассоциативным правилом. Данная процедура происходит для каждого поднабора xx.

Процесс работы алгоритма Apriori может быть довольно длительным, так как он напрямую зависит от размера самой большой найденной комбинации товаров. На каждом новом этапе ему приходится заново «прогонять» всю базу транзакций, чтобы посчитать частоту для новых кандидатов. Понятно, что с большими объемами данных это превращается в очень ресурсоемкую задачу, которая требует много времени и вычислительной мощности. Именно поэтому были разработаны оптимизированные версии классического алгоритма. Их главная цель - сократить количество обращений к исходным данным и тем самым ускорить работу.

Одной из первых таких версий стал AprioriTid. Его ключевое отличие - после первоначального сканирования базы он больше к ней не возвращается. Вместо этого алгоритм создает специальную, сжатую структуру данных на основе информации, полученной на предыдущем шаге. Эта «закодированная» версия данных часто оказывается значительно компактнее оригинала, что позволяет экономить память и ускоряет все последующие расчеты.

Позже появился еще более гибкий подход - AprioriHybrid. В процессе исследования заметили, что на первых этапах, когда наборы кандидатов небольшие, классический Apriori работает эффективнее. Однако на поздних стадиях, когда комбинации становятся крупнее, преимущество переходит к AprioriTid с его компактными структурами. Алгоритм AprioriHybrid объединяет сильные стороны обоих «родителей»: он начинает работу с классического метода, а затем, в самый подходящий момент (обычно, когда сжатые данные перестают перегружать память), переключается на AprioriTid. Правда, само это переключение тоже требует некоторых дополнительных вычислений, что является своеобразной платой за общую эффективность.

Таким образом, можно выделить основные преимущества и недостатки алгоритма Apriori. Данный алгоритм является легкореализуемым и для небольших наборов данных показывает хорошие результаты эффективности. Также алгоритм гарантирует, что все частые предметные наборы будут найдены, если был задан верный минимальный порог поддержки.  Однако, алгоритм плохо масштабируется и не подходит для работы с большими наборами данных. Чем больше товаров и транзакций используется в задаче, тем с большей скоростью растет количество кандидатов на частоту, а значит и объем информации, который нужно хранить в памяти. При этом, алгоритм «вынужден» каждый раз сканировать набор данных для получения кандидатов.

«Слабым» местом алгоритма Apriori является процесс поиска кандидатов для составления частых предметных наборов. Одним из наиболее эффективным методом поиска ассоциативных правил является алгоритм Frequent Pattern-Growth (алгоритм FPG). Данный подход позволяет не просто избежать затрат по генерации частых наборов, но и снизить количество обращений к базе данных до двух. Рассмотрим этот алгоритм более детально.

Ключевая идея алгоритма FP-Growth заключается в особой подготовке данных. Вся база транзакций не просто используется «как есть», а преобразуется в специальное дерево — так называемое FP-дерево (дерево частых шаблонов). Эта структура и является главным секретом его эффективности.

Преимущества такого подхода становятся очевидными, если сравнить его с тем же Apriori:

  1. Компактное хранение. Все данные о покупках сжимаются в удобную древовидную форму, из которой потом очень быстро извлекаются все нужные комбинации товаров.
  2. Метод «разделяй и властвуй». Построение дерева и поиск закономерностей происходит по этому классическому принципу. Сложная задача разбивается на множество мелких и независимых подзадач, что сильно упрощает анализ.
  3. Никаких кандидатов. В отличие от Apriori, которому приходится создавать и перебирать гигантское число возможных комбинаций, FP-Growth работает напрямую с деревом. Это позволяет избежать самых трудоёмких операций, из-за которых Apriori может «тормозить» на больших данных.

Первым шагом алгоритм FP-Growth вычисляет значение поддержки для всех товаров в наборе транзакций. После происходит сортировка полученной таблицы по полученному значению поддержки в порядке убывания. Если два или более элемента имеют одинаковое значение, то в таблице сохраняется топологический порядок. Когда была получена отсортированная таблица, необходимо создать дерево FP с использованием имеющихся транзакций.

Построение FP-дерева происходит последовательно, за несколько логичных шагов:

  1. Создание основы. Всё начинается с пустого корневого узла (часто его называют null или root). Он служит отправной точкой, точкой входа для всех данных, но сам по себе никакую информацию не хранит.
  2. Обработка транзакций. Теперь осуществляется проход по каждой покупке (транзакции) в наборе данных. Каждая из них выстраивается в дерево по следующим правилам:
  3. Сортировка. Сначала меняется порядок товаров внутри чека. Они располагаются по убыванию популярности: сначала самый часто покупаемый товар в целом, затем следующий по популярности и так далее.
  4. Добавление в дерево. Далее отсортированный набор товаров интегрируется в структуру дерева. Для каждого элемента проверяется его наличие в текущей ветви. Если узел с таким товаром уже существует, его счетчик частоты увеличивается на единицу. Если же элемент отсутствует, создается новый узел, который связывается с предыдущим в цепочке.
  5. Структура узла. В итоге, все товары из одной покупки образуют цепочку. Каждый узел в этой цепочке помимо названия товара хранит важную информацию: частоту и ссылку на своего «родителя» - предыдущий узел в цепочке.
  6. Повторение. Этот процесс повторяется для каждой транзакции в базе. Когда все покупки обработаны, дерево считается полностью построенным и готовым для извлечения частых наборов товаров.

После формирования FP-дерева осуществляется ключевой этап - извлечение частых наборов товаров. Данная процедура основывается на стратегии обхода древовидной структуры. Обход выполняется по направлению от узлов, содержащих информацию о наименее популярных товарах, к корневому узлу. Для каждого узла выполняется реконструкция соответствующего ему шаблона, который представляет собой условный путь, включающий товар, соответствующий текущему узлу, а также все элементы, расположенные на ветви между этим узлом и корнем дерева. Следующим шагом производится расчёт частоты сформированного шаблона в исходном наборе транзакций. Полученное значение сравнивается с заранее определённым порогом минимальной поддержки. Шаблоны, частота которых превышает данный порог, классифицируются как частые и, следовательно, статистически значимые. Таким образом, FP-дерево служит не только структурой для сжатого хранения, но и эффективной основой для поиска всех релевантных ассоциативных правил.

Алгоритм FP-Growth получил признание в первую очередь благодаря выдающейся способности к масштабированию. Его фундаментальное преимущество кроется в использовании особой структуры данных - FP-дерева. Это дерево представляет собой высокоэффективную сжатую модель исходного набора транзакций. Ключевым следствием такого подхода является кардинальное сокращение операций ввода-вывода. В отличие от классических алгоритмов, требующих многократного полного сканирования исходного набора данных для проверки кандидатов, FP-Growth выполняет эту процедуру всего дважды. Это приводит к значительному снижению вычислительной сложности и, как следствие, к резкому увеличению скорости обработки, особенно заметному на больших объемах данных.

Несмотря на кажущуюся сложность концепции построения дерева частых шаблонов, его программная реализация часто оказывается более лаконичной и управляемой по сравнению с альтернативами, основанными на генерации кандидатов. Эта прозрачность архитектуры упрощает не только разработку и отладку, но и последующую интеграцию алгоритма в более сложные аналитические конвейеры.

Несмотря на преимущества, алгоритм FP-Growth обладает рядом характерных ограничений. Наиболее существенным ограничением является требовательность к оперативной памяти. Структура FP-дерева, являясь сжатым, но полным представлением данных, должна целиком размещаться в оперативной памяти для обеспечения высокой скорости доступа. В условиях работы с большими наборами транзакций или с данными, характеризующимися огромным количеством уникальных товаров, дерево может разрастаться до значительных размеров. Это создаёт риск исчерпания доступной памяти. Другое фундаментальное ограничение связано с природой обрабатываемых данных. Алгоритм ориентирован на работу с дискретными, категориальными величинами, каковыми являются. Его механизмы не адаптированы для анализа непрерывных числовых признаков, таких как временные метки, суммы покупок или весовые характеристики.

Помимо уже рассмотренных подходов, отдельного внимания заслуживает алгоритм Eclat. Его архитектурная особенность заключается в использовании другого формата организации входных данных. В отличие от Apriori и FP-Growth, которые оперируют с классическим «горизонтальным» форматом, где каждая запись является содержимым одной транзакции, Eclat применяет «вертикальное» представление.

Инициализация алгоритма заключается в построении начальной вертикальной базы. Для этого выполняется однократное сканирование исходных транзакций с целью создания для каждого уникального товара его TID-list - вектора, содержащего идентификаторы всех чеков, в которых данный товар был зафиксирован. Следующим шагом осуществляется первичная фильтрация элементов на основе заданного порога минимальной поддержки. Товары, чьи TID-листы оказываются короче установленного, признаются нерелевантными и исключаются из дальнейшего процесса поиска, что существенно сужает пространство перебора.

После подготовки одноэлементных множеств алгоритм переходит к фазе генерации кандидатов большего размера. Формирование кандидатов-пар происходит путём попарного пересечения TID-листов частых одиночных товаров. Результатом такого пересечения для каждой пары становится новый TID-лист, длина которого непосредственно определяет значение поддержки для данной комбинации. Если полученная поддержка удовлетворяет минимальному порогу, пара сохраняется; в противном случае - отбрасывается. Эта операция пересечения множеств, являющаяся вычислительным преимуществом алгоритма, обычно выполняется существенно быстрее, чем многократное сканирование полной базы транзакций. Все частые наборы, найденные на предыдущей итерации, и становятся основой для формирования финальных ассоциативных правил.

Алгоритм Eclat демонстрирует качества, сопоставимые с методом FP-Growth, в частности, высокий потенциал к масштабированию в условиях увеличения объема анализируемых данных. Базовый принцип его работы, основанный на вертикальном представлении информации, оказывается выигрышным при обработке наборов с высокой размерностью, где количество уникальных товаров может исчисляться сотнями тысяч. В такой ситуации Eclat избегает издержек, связанных с многократным сканированием полных транзакций, фокусируясь на операциях с компактными списками идентификаторов. Однако, производительность алгоритма может ухудшаться при обработке транзакций значительной длины, то есть чеков, содержащих большое количество разнообразных позиций. В этом случае TID-листы для частых товаров становятся очень длинными, а операция их пересечения - вычислительно затратной.

Методы обработки больших данных

Парадигма обработки больших данных, обозначаемая термином Big Data, представляет собой качественно иной подход по сравнению с традиционными методами анализа. Современные задачи всё чаще требуют работы с крупными массивами информации, что делает применение классических реляционных баз данных и алгоритмов, рассчитанных на размещение данных в оперативной памяти одного сервера, технически невозможным и экономически нецелесообразным.

Принципиальная сложность заключается не только в абсолютном объёме, но и в необходимости соблюдения временных ограничений. Извлечение значимых шаблонов из записей не может занимать недели или месяцы, поскольку актуальность выводов напрямую зависит от скорости их получения. Это обуславливает переход от оптимизации алгоритмов к проектированию новых архитектур, основанных на распределённых системах с высокой степенью параллелизма.

Характеристикой современных больших данных является их разнообразие. Источниками информации служат не только структурированные записи, но и полиструктурированные или полностью неструктурированные данные: текстовые корпуса, потоки видеонаблюдения, показания интернета вещей и лог-файлы взаимодействий. Такой разноплановый характер источников требует создания гибридных аналитических платформ, способных осуществлять обработку различных типов данных в единое смысловое пространство.

В ответ на эти вызовы сформировался целый технологический стек, включающий распределённые файловые системы (Hadoop HDFS), фреймворки для интерактивной обработки (Apache Spark), системы управления распределёнными базами данных (Cassandra, HBase) и специализированные языки запросов (HiveQL). Обработка реализуется посредством языков программирования, обеспечивающих эффективное распараллеливание задач, таких как Python с использованием библиотек PySpark или Scala.

Внедрение алгоритмов поиска ассоциативных правил, таких как Apriori или FP-Growth, в распределённую среду сталкивается с рядом специфических проблем. Одной из основных стратегий для снижения вычислительной нагрузки остаётся техника работы не с полным массивом, а с репрезентативной подвыборкой. Однако случайная или несбалансированная выборка, не отражающая ключевые свойства генеральной совокупности, способна привести к построению статистически несостоятельных моделей. Как следствие, бизнес-решения, основанные на таких моделях, могут оказаться не просто неточными, но и стратегически ошибочными, что сопряжено с существенными операционными рисками.

Сравнение методов

По результатам сравнения трёх базовых алгоритмов была сформирована обобщающая таблица, отражающая их ключевые характеристики (табл. 5).

Таблица 5.

Таблица сравнения методов

Характеристика

Apriori

FP-Growth

ECLAT

Принцип работы

Полное сканирование данных, проверка кандидатов на частоту

Использование дерева FP-дерево для хранения информации о частоте товаров

Вертикальное хранение данных, рекурсивный поиск частых наборов

Масштабируемость

Низкая

Высокая

Высокая

Эффективность

Низкая, особенно для больших наборов данных

Высокая

Высокая, особенно для наборов данных с большим количеством товаров

Сложность

реализации

Простая

Средняя

Средняя

Требуется предварительная обработка данных

Нет

Да (построение FР-дерева)

Нет

Подходит для

больших

транзакций

Нет

Да

Нет

Подходит для большого количества товаров

Нет

Да

Да

Подходит для редких товаров

Да

Да

Может быть проблематично

Гибкость

Низкая

Высокая

Средняя

 

Алгоритм Apriori занимает позицию наиболее простого решения. Его механизм работы, основанный на стратегии генерации и тестирования кандидатов с многократным сканированием исходного набора транзакций, отличается высокой прозрачностью. Показатели его эффективности остаются удовлетворительными при обработке данных умеренного размера. Однако при переходе к промышленным объёмам данных производительность алгоритма демонстрирует нелинейное снижение, что связано с экспоненциальным ростом числа проверяемых кандидатов и увеличением накладных расходов на операции подсчета частоты.

В отличие от него, алгоритм FP-Growth базируется на построение FP-дерева - сжатой структуры, которая в процессе однократного сканирования данных агрегирует всю статистику о встречаемости как одиночных элементов, так и их потенциальных комбинаций. Это позволяет избежать фазы трудоёмкой генерации кандидатов и переложить основную нагрузку на этап извлечения шаблонов из уже построенного дерева.

Третий участник сравнения, алгоритм Eclat, предлагает компромиссный подход. Он отказывается как от горизонтального сканирования, так и от сложной сжатой структуры, используя вертикальную организацию данных. В этой модели каждый уникальный товар ассоциирован со списком идентификаторов транзакций, где он встречается. Поиск частых наборов сводится к процедуре пересечения этих списков - операция, которая может быть эффективно оптимизирована. Такой формат работы, как показывает практика, часто демонстрирует конкурентную производительность, особенно в средах, где операции над множествами выполняются с высокой скоростью.

Выбор оптимального алгоритма для решения задачи анализа ассоциативных правил является не универсальным, а контекстно-зависимым решением, определяемым прежде всего профилем обрабатываемых данных. При работе с крупномасштабными массивами транзакций в промышленных средах предпочтение, как правило, отдаётся одному из двух методов: FP-Growth или Eclat. Однако их сравнительная эффективность варьируется в зависимости от сруктуры и специфики данных. Практический опыт показывает, что алгоритм FP-Growth демонстрирует более высокую производительность на плотных данных, характеризующихся большим количеством транзакций при относительно небольшой размерности ассортимента. В свою очередь, Eclat нередко оказывается предпочтительнее в случаях высокого разнообразия товарной матрицы.

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

Наиболее значимым трендом в развитии данной области является переход к распределённым вычислительным архитектурам. Они предоставляют механизм для сокращения времени анализа за счет распределения нагрузки между кластерами. Использование специализированных фреймворков, таких как Apache Spark или классической модели MapReduce, позволяет проводить масштабирование алгоритмов практически линейно относительно количества задействованных узлов.

В дополнении ведутся исследования в других перспективных направлениях. К ним относится адаптация методов для работы с неструктурированными данными. Отдельная научная задача - проектирование более эффективных, чем FP-дерево или вертикальные списки, структур данных, оптимизированных для специфических зависимостей в данных. В заключение стоит отметить зарождающийся тренд на создание самонастраивающихся систем. Подобные интеллектуальные алгоритмы способны автоматически настраивать свои параметры, такие как минимальный порог поддержки, что в перспективе может минимизировать необходимость ручного вмешательства в процесс генерации частых предметных наборов.

Заключение

Настоящее исследование посвящено анализу методов поиска частых наборов товаров в транзакционных данных.  Анализ рыночной корзины служит критически важным инструментом для оптимизации маркетинговых активностей и увеличения конверсии как в офлайн-ритейле, так и в сфере электронной коммерции. Классические вычислительные подходы, в частности алгоритмы Apriori, FP-Growth и Eclat, зарекомендовали себя как надёжный и теоретически обоснованный инструментарий для решения этой задачи. Их применение позволяет выявлять статистически значимые корреляции и устойчивые ассоциативные связи между позициями ассортимента, формируя тем самым базу для принятия стратегических бизнес-решений.

Однако в условиях больших данных традиционные реализации этих алгоритмов сталкиваются с существенными ограничениями. Проблемы масштабируемости, высокие требования к оперативной памяти и вычислительным ресурсам ставят под вопрос их применимость для обработки потоковых данных и хранилищ транзакций. Развитие данной области требует пересмотра классических методологий и разработки новых, ориентированных на распределённые и гибридные вычислительные среды.

В современной рыночной среде способность к оперативному выявлению скрытых шаблонов в потребительском поведении трансформируется из конкурентного преимущества в обязательное условие выживания бизнеса. Можно прогнозировать, что в ближайшей перспективе рассмотренные аналитические методы будут не просто использоваться эпизодически, а станут неотъемлемым компонентом систем реального времени. Их интеграция в платформы управления взаимоотношениями с клиентами и системы автоматизированного управления торговлей позволит перейти к предиктивному анализу, обеспечивая формирование персонализированных предложений и максимально эффективное планирование маркетинговых кампаний.

 

Список литературы:

  1. FPG — альтернативный алгоритм поиска ассоциативных правил // Loginom URL: https://loginom.ru/blog/fpg (дата обращения: 19.01.2026).
  2. Алгоритм Eclat // Evogeek.ru URL: https://evogeek.ru/articles/9518/ (дата обращения: 19.01.2026).
  3. Анализ рыночной корзины и ассоциативные правила // Хабр URL: https://habr.com/ru/articles/66016/ (дата обращения: 19.01.2026).
  4. Васькевич А. А., Марковская Н. В. Поиск ассоциативных правил с помощью алгоритма apriori. – 2019.
  5. Добыча данных: анализ рыночной корзины с помощью алгоритма Apriori // URL: https://nuancesprog.ru/p/15857/ (дата обращения: 19.01.2026).
  6. FP Growth Algorithm Explained with Numerical Example // Coding Infinite URL: https://codinginfinite.com/fp-growth-algorithm-explained-with-numerical-example/ (дата обращения: 19.01.2026).
  7. Implementation of ECLAT algorithm using Python // Hands-On.Cloud URL: https://hands-on.cloud/implementation-of-eclat-algorithm-using-python/ (дата обращения: 19.01.2026).
  8. Practical Introduction to Market Basket Analysis – Asociation Rules // R-BLOGGERS URL: https://www.r-bloggers.com/2019/05/practical-introduction-to-market-basket-analysis-asociation-rules-2/ (дата обращения: 19.01.2026).

Оставить комментарий