Анализ и визуализация данных на языке R

Алгоритм ассоциативных правил. Теория

Лекция посвящена применению алгоритма ассоциативных правил для анализа данных на языке R. Алгоритм широко используется для формирования потребительской корзины — выявления закономерностей в транзакционных данных (покупках). Рассматриваются ключевые метрики (Support, Confidence, Lift), их расчёт и интерпретация. Также обсуждается практическая ценность метода для маркетинга (скидочные акции) и отличие от персонализированных алгоритмов. В конце лекции анонсируется реализация алгоритма двумя способами: на R и в Power BI.

Основные мысли

1. Суть алгоритма — поиск закономерностей вида «если A, то B» (в том числе с отрицаниями) в массовых транзакциях без привязки к конкретному человеку.
2. Три главных показателя:
o Support (носитель) — частота встречаемости товара или группы товаров (доля транзакций).
o Confidence (достоверность) — условная вероятность покупки B при покупке A.
o Lift (подъём) — насколько правило лучше случайного совпадения (учитывает популярность правой части).
3. Порядок фильтрации правил:
o Сначала отсев по Support (например, >5–10%).
o Затем отбор по Confidence.
o Итоговая сортировка по Lift.
4. Ложные правила возникают, когда правая часть сама по себе слишком популярна — высокий Confidence, но низкий Lift.
5. Зачем нужен Lift: чтобы отличить истинную зависимость от ситуации, когда «Y и так покупают все».
Показывать лекцию целиком
Краткое изложение

Лектор продолжает курс по анализу данных на R. Сегодня тема — алгоритм ассоциативных правил (рыночная корзина). Задача — находить типичные сочетания товаров в массиве транзакций (покупок). Правила могут быть положительными (A → B) и отрицательными (A → не Б). Алгоритм не персонализирован — он ищет общие для всех покупателей паттерны, чтобы, например, сделать скидку на набор товаров и получить сверхприбыль.

Рассматривается пример с 5 транзакциями (цветы, открытки, газировка, мишки, шарики и др.). Вводятся три метрики:
Support = число транзакций с товаром(ами) / общее число транзакций. Для пары «цветы + открытка» = 3/5 = 0.6.
Confidence (для правила A → B) = Support(A и B) / Support(A). Для «цветы → открытка» = 0.6 / 0.8 = 0.75 (в 75% случаев покупки цветов покупают и открытку). Для обратного правила «открытка → цветы» = 0.6 / 0.6 = 1 (100%).
Lift = Confidence(A → B) / Support(B). Для «цветы → открытка» = 0.75 / 0.6 = 1.25. Для обратного правила — тоже 1.25 (симметричен). Lift показывает, во сколько раз вероятность покупки B при наличии A выше, чем просто вероятность B. Если Lift = 1 — независимость, >1 — положительная связь.

Почему недостаточно только Confidence? Потому что если товар B встречается почти в каждой транзакции (Support близок к 1), Confidence любого правила с B справа будет высоким, но правило ничего не даст — B и так купят. Lift решает эту проблему.

Практический вывод: нужно отбирать правила с высоким Support (левый товар не редок), высоким Confidence (закономерность сильна) и высоким Lift (>1). Далее лектор обещает реализовать алгоритм на R и в Power BI для визуализации.

Выводы

1. Алгоритм ассоциативных правил эффективен для анализа массового потребительского поведения, но не подходит для персонализированных рекомендаций.
2. Только совместное использование Support, Confidence и Lift позволяет отсеять случайные или тривиальные закономерности.
3. Высокий Confidence не является достаточным критерием — необходим учёт общей популярности правой части через Lift.
4. Пороги отбора (min Support, min Confidence) задаются экспертно и зависят от объёма данных и бизнес-задачи.
5. Отрицательные правила (A → не Б) также возможны, но в лекции их расчёт не детализирован.
6. Инструментальная часть: алгоритм можно реализовать как в чистом R, так и в Power BI — второй даёт лучшую визуализацию.

Вопросы для самопроверки

1. Что такое транзакция в контексте алгоритма ассоциативных правил и чем анализ транзакций отличается от персонализированного таргетинга?
2. Как рассчитать Support для тройки товаров (например, хлеб, молоко, сосиски) по имеющемуся набору транзакций?
3. Почему правила «A → B» и «B → A» имеют разный Confidence, но одинаковый Lift? Приведите числовой пример.
4. В каком случае высокий Confidence может вводить в заблуждение, и как это исправляет Lift?
5. Каков практический смысл фильтрации правил сначала по Support, а только потом по Confidence?
6. Может ли Lift быть меньше 1? Что это означает для правила?
7. Почему для очень редкого товара (Support = 0.5%) даже при Confidence = 100% правило может оказаться бесполезным для бизнеса?
Вернуться к учебному плану