Мухамад Фанди, Дикки Либрата С., Кезия Интан Н.

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

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

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

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

Поддержка расчета

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

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

Создание правила связывания

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

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

Apriori: базовое пошаговое руководство

Вот пошаговое руководство по использованию алгоритма Apriori в Python с использованием библиотеки mlxtend:

Установите библиотеку mlxtend, выполнив в терминале следующую команду:

pip intsall mlxtend

Создайте образец набора данных в виде списка списков, где каждый подсписок представляет транзакцию, а элементы в подсписке — это товары, приобретенные в этой транзакции:

dataset = [['Milk', 'Bread', 'Eggs'],
           ['Milk', 'Bread', 'Diapers'],
           ['Milk', 'Coffee', 'Eggs'],
           ['Bread', 'Eggs', 'Diapers'],
           ['Bread', 'Coffee', 'Eggs']]

Импортируйте априорную функцию из библиотеки mlxtend и используйте ее для извлечения частых наборов элементов из набора данных с минимальным порогом поддержки 0,5:

from mlxtend.frequent_patterns import apriori
frequent_itemsets = apriori(dataset, min_support=0.5, use_colnames=True)

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

        support      itemsets
0         0.6         (Bread)
1         0.6         (Eggs)
2         0.6         (Milk)
3         0.4      (Bread, Eggs)
4         0.4      (Bread, Milk)
5         0.4      (Eggs, Milk)

Импортируйте функцию Association_rules из библиотеки mlxtend и используйте ее для извлечения правил ассоциации из часто используемых наборов элементов с минимальным порогом достоверности 0,8:

from mlxtend.frequent_patterns import association_rules
association_rules = association_rules(frequent_itemsets, metric='confidence', min_threshold=0.8)

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


   antecedents  consequents  support    confidence   lift   leverage
0    (Eggs)      (Bread)       0.6         1.0       1.67      0.2
1    (Bread)     (Eggs)        0.6         1.0       1.67      0.2
2    (Milk)      (Bread)       0.6         1.0       1.67      0.2
3    (Bread)     (Milk)        0.6         1.0       1.67      0.2
4    (Eggs)      (Milk)        0.6         1.0       1.67      0.2
5    (Milk)      (Eggs)        0.6         1.0       1.67      0.2

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

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

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

Заключение

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