Data Mining. Анализ рыночной корзины. Поиск ассоциативных...

37
Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил.

Transcript of Data Mining. Анализ рыночной корзины. Поиск ассоциативных...

Page 1: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Data Mining.Анализ рыночной

корзины.Поиск ассоциативных

правил.

Page 2: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Data Mining

• Data mining – «Копать данные»• Data mining — совокупность методов обнаружения в данных ранее неизвестных, нетривиальных, практически полезных и доступных интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности.

Page 3: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Методы Data Mining

Задачи Data Mining:• Классификация;• Моделирование;• Прогнозирование.

Основа методов:• Деревья решений;• Нейронные сети;• Генетические алгоритмы.

Page 4: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Задачи Data Mining

Постановка задачи: извлечь «скрытые данные» из достаточно крупной базы данных.

Скрытые знания — ранее неизвестные, нетривиальные, практически полезные и доступные для интерпретации данные, как уже было сказано ранее.

Page 5: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Знания Data Mining

Знания представлены в виде:

• Ассоциативных правил;

• Деревьев решений;

• Кластеров;

• Математических функций.

Page 6: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Задачи Data Mining

Задачи Data

Mining

Описательные (descriptive)

Предсказательные (predictive)

Page 7: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Этапы решения задач методами Data Mining

Page 8: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Задача поиска ассоциативных правил

• Задача: реализация рекомендательной системы по подбору сочетаний продуктов к введенному пользователем списку.

Основа решения: набор кулинарных рецептов и то, как продукты сочетаются между собой в этих рецептах.

Page 9: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Ассоциативные правила

Вид правила:• «если… то…»• «Если клиент купил пиво, то он купит и чипсы».

Ассоциативное правило – форма представления знаний.Используются в задаче «Анализ рыночной корзины».

Page 10: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Анализ рыночной корзины (Market Basket Analysis)

• Рыночная корзина – набор товаров, приобретаемых покупателем в рамках одной транзакции.

• Транзакция – множество событий, которые произошли одновременно.

• Транзакционная база данных (Transaction database) – двумерная таблица, состоящая из номера транзакции и перечня покупок.

Page 11: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Анализ рыночной корзины (Market Basket Analysis)

• I — набор продуктов {i1, i2, …, ik};• j — продукт;• Support — количество наборов, содержащих элементы из I;

• Минимальная поддержка;

l Support{Beer, Bread} = 2

Page 12: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Анализ рыночной корзины (Market Basket Analysis)

● Ассоциативное правило: I={i1, i2, …, ik} → j

— если набор содержит элементы из I, то она содержит и j.

● Confidence — уверенность рекомендации набора I → j.

Page 13: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Пример● Продукты = {milk, coke, pepsi, beer, juice}● Минимальная поддержка = 3

B1 = {m, c, b} B2 = {m, p, j} B3 = {m, b} B4 = {c, j} B5 = {m, p, b} B6 = {m, c, b, j}B7 = {c, b, j} B8 = {b, c}

● Часто встречающиеся наборы:{m}, {c}, {b}, {j}, {m, b}, {b, c}, {c, j}

● Правило {m, b} → cconf({m, b} → c) = Support{m, b, c}/Support{m, b} = 2/4

Page 14: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритмы поиска ассоциативных правил

Frequent Itemset – часто встречающиеся наборы элементов.

•Apriori• Eclat•FP-Growth• One-attribute-rule• Zero-attribute-rule

Page 15: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм «Априори»

• Обычный вид базы данных транзакций

Page 16: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм «Априори»

• Нормализованный вид базы данных транзакций

Page 17: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм «Априори»

Page 18: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм «Априори»: реализация

Page 19: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм «Априори»: реализация

Page 20: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Реализация на Spark

● Driver — управляющий процесс;● Executor process — исполняющие процессы,

рассредоточенные по узлам кластера.● Task — задачи, выполняемые на executors.

Page 21: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

1.Нормализация входного набора данных:2. Количество;3. Единицы измерения;4. Эпитеты, местоимения и прочие «лишние» слова.

Реализация на Spark

Page 22: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Проблемы Априори

Выделение памяти; Скорость выполнения алгоритма — увеличение времени получения часто встречающихся наборов с каждой следующей итерацией.

Page 23: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Пути решения

● Кэширование;● Предварительная обработка входного набора данных и дальнейшее использование результатов этой обработки;

● Подбор другого алгоритма (FP-Growth).

Page 24: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Априори (v 1.0): 35 минут

1 2 3 4 50

500

1000

1500

2000

2500

Априори (v 1.0)

№ итерации

сек.

1 2 3 4 50

100

200

300

400

500

600

Априори (v2.0)

№ итерации

сек.

Априори (v 2.0): 9 минут 10 секунд

Page 25: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

● Apache Spark MlLib 1.5.0;● Отсутствует генерация кандидатов;● Основа — Frequent-Pattern Tree (дерево популярных наборов).

● «Разделяй и властвуй».

Алгоритм FP-Growth

Page 26: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм FP-Growth

Page 27: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Предметы упорядочены в транзакциях по убыванию значений их поддержек (support)

Алгоритм FP-Growth

Page 28: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм FP-Growth

Page 29: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм FP-Growth

Построение FP-дерева для транзакции (c, b, d, e, a)

Построение FP-дерева для транзакции (c, b, a)

Page 30: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм FP-Growth

Построение FP-дерева для транзакции (c, d, e, a)

Page 31: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Алгоритм FP-Growth

Page 32: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Результаты

1 2 3 4 50

500

1000

1500

2000

2500

Априори (v1.0)

Априори (v2.0)

№ итерации

сек.

1 20

500

1000

1500

2000

2500

Априори (v1.0)

Априори (v2.0)

FP-Growth

№ итерации

сек.

Page 33: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

FP-Growth vs. A-priori

Page 34: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

ПримерыВходные параметры Результат

Набор = {salt, sugar, flour}Добавить = 2 продуктаВывести = 5 результатов

egg, flour, powder, salt, sugar 204

butter, egg, flour, salt, sugar 198

egg, flour, salt, soda, sugar 190

egg, flour, salt, sugar, vanilla 171

egg, flour, salt, soda, vanilla 145

Набор = {pepper, onion}Добавить = 2 продуктаВывести = 5 результатов

onion, pepper, salt, water 83

butter, onion, pepper, salt 77

clove garlic, onion, pepper, salt 73

butter, flour, pepper, salt 62

egg, milk, onion, salt 60

Набор = {meat, avocado}Добавить = 2 продуктаВывести = 5 результатов

avocado, onion, salt, tomato 5

avocado, cheddar cheese, tomato, water 4

avocado, clove garlic, onion, salt 4

avocado, chili powder, clove garlic, salt 4

avocado, head lettuce, meat, tomatoe 1

Page 35: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Входные параметры Результат

Набор = {tomatoe, oregano}Добавить = 2 продуктаВывести = 5 результатов

basil, clove garlic, onion, oregano)) 46

clove garlic, onion, oregano, salt) 39

onion, oregano, pepper, salt 32

onion, pepper, salt, tomatoe 31

clove garlic, onion, salt, tomatoe 29

Набор = {ground beef, tomato sauce}Добавить = 1 продуктаВывести = 8 результатов

ground beef, onion, salt 129

ground beef, pepper, salt 73

onion, salt, tomato sauce 69

egg, ground beef, onion 62

ground beef, onion, tomato sauce 54

Набор = {avocado, tomato, oregano}Добавить = 2 продуктаВывести = 5 результатов

clove garlic, onion, oregano, pepper, salt 19

basil, clove garlic, onion, oregano, salt 16

basil, clove garlic, onion, oregano, tomato paste 15

clove garlic, onion, oregano, salt, tomato paste 14

basil, clove garlic, oregano, pepper flake, virgin olive oil 13

avocado, jar pimento, onion, oregano, tomato 2

avocado, chili powder, oregano, sauce, tomato 2

avocado, jar pimento, oregano, sauce, tomato 2

avocado, clove garlic, oregano, tomato, water 2

avocado, onion, oregano, tomato, water 2

Page 36: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Другие задачи

● Поиск ассоциативных правил в результатах опросов;

● Медицина;● Анализ посещений веб-страниц;● Перепись населения;● Прогнозирование сбоев телекоммуникационного оборудования.

Page 37: Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил

Спасибо за внимание!