- •Анализ ассоциаций
- •Анализ рыночной корзины
- •Ассоциативные правила
- •Цели и задачи анализа ассоциаций
- •Обобщенные ассоциативные правила
- •Другие виды ассоциативных правил
- •Применение анализа ассоциаций
- •Модель данных
- •Модель ассоциативных правил
- •Алгоритм Apriori
- •Алгоритмы для больших объемов выборок
- •Алгоритм Partition
- •Список использованных источников
Модель данных
Пусть I = {i1, i2, i3, ...im} – множество изучаемых объектов, называемых элементами (item), общим числом m.
Набором
элементов (itemset) X
называется
любое
подмножество множества объектов,
,
в том числе само множество I
и пустое множество
.
Если
для набора элементов X
задан некоторый уникальный идентификатор
TID,
то пару t=(TID,
X) называют
транзакцией. Мы говорим, что транзакция
t
содержит Y
(
),
где Y
– некоторый
набор элементов из I, если
.
Пусть D = {t1, t2, t3, ...tN} – множество транзакций общим числом N. Каждая транзакция t=(TID, t1, t2, t3, ...tm) может быть представлена как бинарный вектор, где tk =1, если ik элемент присутствует в транзакции, иначе tk=0. Тогда данные о транзакциях могут быть представлены в виде бинарной матрицы, где различным столбцам соответствуют различные объекты, а различным строкам – различные транзакции, или наоборот.
Пример транзакционных данных, содержащих список покупок в магазине приведен в таблице 2.1.
Таблица 2.1 – Транзакционные данные в матричной форме
Id |
Хлеб |
Кока-кола |
Молоко |
Пиво |
Подгузники |
1 |
1 |
1 |
1 |
0 |
0 |
2 |
1 |
0 |
0 |
1 |
0 |
3 |
0 |
1 |
1 |
1 |
1 |
4 |
1 |
0 |
1 |
1 |
1 |
5 |
0 |
1 |
1 |
0 |
1 |
Транзакционные
данные представляют собой особый тип
данных, где каждая запись, являющаяся
транзакцией, включает набор значений.
Для
хранения иногда транзакционные данные
записывают в виде массива пар (TID,
).
Пример такого представления приведен
в таблице 2.2.
Таблица 2.2 – Транзакционные данные в форме массива
Id |
Продукт |
Id |
Продукт |
Id |
Продукт |
1 |
Хлеб |
3 |
Кока-кола |
4 |
Молоко |
1 |
Кока-кола |
3 |
Молоко |
4 |
Пиво |
1 |
Молоко |
3 |
Пиво |
4 |
Подгузники |
2 |
Хлеб |
3 |
Подгузники |
5 |
Кока-кола |
2 |
Пиво |
4 |
Хлеб |
... |
... |
Пример транзакционной базы данных в форме списка, содержащего перечень покупок клиентов магазина, приведен в табл. 2.3.
Таблица 2.3 – Транзакционные данные в списочной форме (горизонтальный формат)
Id |
Покупки |
1 |
Хлеб, Кока-кола, Молоко |
2 |
Пиво, Хлеб |
3 |
Пиво, Кока-кола, Подгузники, Молоко |
4 |
Пиво, Хлеб, Подгузники, Молоко |
5 |
Кока-кола, Подгузники, Молоко |
Также существует другой вид списочной формы, удобный для поиска ассоциаций. Для каждого продукта будем хранить список номеров транзакций, в которых он участвовал (см. табл. 2.4).
Таблица 2.4 – Пример списочной формы другого вида (вертикальный формат)
Продукт |
Id |
Хлеб |
1, 2, 4 |
Кока-кола |
1, 3, 5 |
Молоко |
1, 3, 4, 5 |
Пиво |
2, 3, 4 |
Подгузники |
3, 4, 5 |
Тогда по количеству элементов в таком списке можно определить поддержку элемента в базе транзакционных данных. Под поддержкой (support) множества X на базе транзакций D понимается величина S(X), равная числу транзакций, содержащих все элементы из этого множества:
,
где |Z| означает мощность множества Z.
Для матричной формы, например, поддержка элемента равна сумме элементов соответствующего столбца бинарной матрицы.
Если элементы разбиты на категории и для каждой категории допустимо только одно значение, то транзакционные данные могут быть представлены в виде таблицы, где каждой транзакции соответствует одна запись (строка таблицы), а столбцы соответствуют категориям, например, табл. 2.5.
Таблица 2.5 – Транзакционные данные в табличной форме
-
Id
Наименование
№ поезда
Вагон
Масса, т
Пункт прибытия
23234
Сахар
102144
1
45
Орша
23235
Мука
102144
1
45
Орша
23236
Гречка
102144
2
90
Витебск
