- •Анализ ассоциаций
- •Анализ рыночной корзины
- •Ассоциативные правила
- •Цели и задачи анализа ассоциаций
- •Обобщенные ассоциативные правила
- •Другие виды ассоциативных правил
- •Применение анализа ассоциаций
- •Модель данных
- •Модель ассоциативных правил
- •Алгоритм Apriori
- •Алгоритмы для больших объемов выборок
- •Алгоритм Partition
- •Список использованных источников
Модель ассоциативных правил
Рассмотрим некоторое множество
.
Уровнем поддержки (support level)
множества X на базе транзакций D
понимается величина Supp(X),
равная доле транзакций, содержащих все
элементы из этого множества:
,
где |Z| означает мощность множества Z, N=|D|.
Для определения часто встречающихся наборов данных (frequent itemset) задается минимальный уровень поддержки minsupp. Набор данных X называется часто встречающимся в базе транзакций D , если Supp(X)>minsupp.
Ассоциативным
правилом называется импликация X=>Y,
где
,
и
.
Из такого правила мы устанавливаем
закономерность следующего вида: "Если
в транзакции встретился набор элементов
X,
то можно сделать вывод, что в этой же
транзакции должен появиться набор
элементов Y".
Установление таких закономерностей
дает нам возможность находить правила,
называемые ассоциативными.
Пусть нам дана база транзакций D и известно, в какие группы (таксоны) входят элементы. Тогда можно извлекать из данных правила, связывающие группы с группами, отдельные элементы с группами и т.д. Обобщенным ассоциативным правилом называется импликация X=>Y, где , и и где ни один из элементов, входящих в набор Y, не является предком ни одного элемента, входящего в X.
Рассмотрим далее наиболее важные характеристики ассоциативных правил.
Поддержка правила X=>Y представляет собой количество транзакций, содержащих совместно X и Y:
S(X=>Y)=S(
).
Аналогично определяется уровень поддержки и минимальный уровень поддержки ассоциативного правила. Уровень поддержки правила X=>Y определяет вероятность совместного появления наборов X и Y:
Supp(X=>Y)=Supp(
)=
,
где P(A) – вероятность события A, P(A,B) – совместная вероятность событий A и B.
Достоверность правила показывает какова вероятность того, что из X следует Y. Правило X=>Y справедливо с достоверностью (confidence) c, если c% транзакций из D, содержащих X, также содержат Y,
Сonf(X=>Y)
= Supp(
)/Supp(X
) =P(
|
),
где P(A|B) – условная вероятность выполнения события A при условии выполнения события B.
Для поиска ассоциативных правил задается минимальный уровень достоверности minconf. Если он будет слишком большим, то в результате будут найдены только очевидные правила, если слишком низким, то будет найдено слишком много правил, которые не соответствуют реальным взаимосвязям элементов, а получились в результате случайной комбинации элементов в наборе.
Кроме уровня поддержки и достоверности интерес вызывают следующие характеристики:
а) корреляция (correlation) показывает наличие статистической взаимосвязи появления наборов X и Y:
;
б) интересность (улучшение, lift = interest) показывает, полезнее ли правило случайного угадывания: если интересность больше единицы, то это значит, что с помощью правила предсказать наличие набора Y вероятнее, чем случайное угадывание, если меньше единицы, то наоборот:
;
в) убежденность(conviction) можно интерпретировать как отношение вероятности случайного угадывания к вероятности отсутствии набора Y при наличии набора X, если убежденность больше 1, то это значит, что с помощью правила предсказать отсутствие набора Y вероятнее, чем случайное угадывание;
г) полная уверенность(all-confidence) определяет отношение поддержки набора к максимуму поддержки его элементов:
All-confidence(A)=
;
д) плечо (leverage) показывает, насколько больше доля наборов при совместном появлении, чем при условии случайного выбора элементов:
.
Методы и алгоритмы анализа ассоциаций
Алгоритм AIS. Первый алгоритм поиска ассоциативных правил, называвшийся AIS, (предложенный Agrawal, Imielinski and Swami) был разработан сотрудниками исследовательского центра IBM Almaden в 1993 году. С этой работы начался интерес к ассоциативным правилам; на середину 90-х годов прошлого века пришелся пик исследовательских работ в этой области, и с тех пор каждый год появляется несколько новых алгоритмов. В алгоритме AIS кандидаты множества наборов генерируются и подсчитываются "на лету", во время сканирования базы данных.
Алгоритм SETM. Создание этого алгоритма было мотивировано желанием использовать язык SQL для вычисления часто встречающихся наборов товаров. Как и алгоритм AIS, SETM также формирует кандидатов "на лету", основываясь на преобразованиях базы данных. Чтобы использовать стандартную операцию объединения языка SQL для формирования кандидата, SETM отделяет формирование кандидата от их подсчета.
Неудобство алгоритмов AIS и SETM - излишнее генерирование и подсчет слишком многих кандидатов, которые в результате не оказываются часто встречающимися. Один из первых алгоритмов, эффективно решающих подобный класс задач, – это алгоритм Apriori [7]. Кроме этого алгоритма в последнее время был разработан ряд других алгоритмов: DHP[12], Partition[13], DIC[14] и другие.
Позднее были предложены другие методы поиска ассоциаций, такие как Eclat алгоритм [15], FP-growth алгоритм [16], OPUS алгоритм [17], эволюционные алгоритмы [18] и другие, а также модификации алгоритма Apriori, устраняющие повторный проход по базе данных (AprioriTid, AprioriHybrid и др.) [7], решающие проблемы с распараллеливанием [19] и масштабируемостью алгоритма [20].
В [28] бал представлен алгоритм поиска ассоциативных правил CARMA (Continuous Association Rule Mining Algorithm), разработанный для OLAP-систем. Этот двухэтапный алгоритм позволяет пользователю изменять значение уровня поддержки в любое время первого прохода по базе данных. Во время второго прохода подсчитываются точные характеристики правил. Особенности алгоритма позволяют сократить использование памяти, но время на обработку увеличивается по сравнению с алгоритмом Apriori.
Поиск ассоциативных правил совсем не
тривиальная задача, как может показаться
на первый взгляд. Одна из проблем -
алгоритмическая сложность при нахождении
часто встречающих наборов элементов,
т.к. с ростом числа элементов рыночной
корзины экспоненциально растет число
потенциальных наборов элементов.
Примитивный подход к решению данной
задачи – простой перебор всех возможных
наборов элементов. Это потребует O(
)
операций, где |I| – количество элементов.
Все алгоритмы поиска ассоциативных правил ищут только те правила, что удовлетворяют ограничениям на минимальную частоту и минимальную достоверность, которые выбирает пользователь. Такие правила называют допустимыми. Цель поиска ассоциативных правил – найти все допустимые ассоциативные правила для исходного множества транзакций.
При поиске часто встречающихся наборов данных используется только первый параметр – минимальный уровень поддержки. Из определения уровня поддержки следует, что правило X=>Y только тогда будет допустимым, если будет часто встречающимся набор, полученный объединением наборов X и Y.
Поиск часто встречающихся наборов
опирается на свойство антимонотонности:
поддержка любого набора элементов не
может превышать минимальной поддержки
любого из его подмножеств, то есть, если
,
то
.
Следствие: любое подмножество часто встречаемого набора данных также является часто встречаемым набором.
Например, поддержка 3-элементного набора {Хлеб, Масло, Молоко} будет всегда меньше или равна поддержке 2-элементных наборов {Хлеб, Масло}, {Хлеб, Молоко}, {Масло, Молоко}. Дело в том, что любая транзакция, содержащая {Хлеб, Масло, Молоко}, также должна содержать {Хлеб, Масло}, {Хлеб, Молоко}, {Масло, Молоко}, причем обратное не верно.
Свойству антимонотонности можно дать и другую формулировку: с ростом размера набора элементов поддержка уменьшается, либо остается такой же. Из всего вышесказанного следует, что любой k-элементный набор будет часто встречающимся тогда и только тогда, когда все его (k-1)-элементные подмножества будут часто встречающимися.
Извлечение правил – менее трудоемкая задача. Для определения достоверности правила X=>Y нужно знать только значения поддержки наборов X и , поэтому если уровень поддержки набора больше минимального, то и уровень поддержки набора X тоже больше минимального в силу свойства антимонотонности, значит, для генерации ассоциативных правил достаточно выполнить поиск всех часто встречающихся наборов с заданным уровнем поддержки. Это избавляет нас от нежелательного просмотра базы транзакций, который потребовался в том случае, если бы поддержка X была неизвестна.
Чтобы извлечь правило из часто встречающегося набора F, следует найти все его непустые подмножества. И для каждого подмножества s мы сможем сформулировать правило s=>(F – s), если достоверность правила Conf(s=>(F – s)) = Supp(F)/Supp(s) не меньше порога minconf.
Заметим, что числитель остается постоянным. Тогда достоверность имеет минимальное значение, если знаменатель имеет максимальное значение, а это происходит в том случае, когда в условии правила имеется набор, состоящий из одного элемента. Все супермножества данного множества имеют меньшую или равную поддержку и, соответственно, большее значение достоверности. Это свойство может быть использовано при извлечении правил. Если мы начнем извлекать правила, рассматривая сначала только один элемент в условии правила, и это правило имеет необходимую поддержку, тогда все правила, где в условии стоят супермножества этого элемента, также имеют значение достоверности выше заданного порога. Например, если правило A=>BCDE удовлетворяет минимальному порогу достоверности minconf, тогда AB=>CDE также удовлетворяет. Для того, чтобы извлечь все правила используется рекурсивная процедура. Важное замечание: любое правило, составленное из часто встречающегося набора, должно содержать все элементы набора. Например, если набор состоит из элементов {A, B, C}, то правило A=>B не должно рассматриваться.
Таким образом, задача нахождения ассоциативных правил разбивается на две подзадачи:
1) Нахождение всех часто встречающиxся наборов элементов, которые удовлетворяют порогу minsupp.
2) Генерация правил из найденных часто встречающиxся наборов элементов с достоверностью, удовлетворяющей порогу minconf.
