20
ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ ДАННЫХ Data Mining Харьковский национальный университет имени В. Н. Каразина Факультет компьютерных наук Подготовил: доцент каф. искусственного интеллекта и программного обеспечения, к.ф.-м. н. Гахов Андрей Владимирович 2014/2015 уч. год

Data Mining - lecture 8 - 2014

Embed Size (px)

DESCRIPTION

Data Mining - lecture 8 - 2014

Citation preview

Page 1: Data Mining - lecture 8 - 2014

ИНТЕЛЛЕКТУАЛЬНЫЙАНАЛИЗ ДАННЫХ

Data Mining

Харьковский национальный университет имени В. Н. КаразинаФакультет компьютерных наук

Подготовил:доцент каф. искусственного интеллекта и программного обеспечения,к.ф.-м. н. Гахов Андрей Владимирович2014/2015 уч. год

Page 2: Data Mining - lecture 8 - 2014

ЛЕКЦИЯ 5Поиск шаблонов, ассоциаций и взаимных связей в данных.

Часть 1

Page 3: Data Mining - lecture 8 - 2014

ПРОБЛЕМАТИКА• Одним из популярных примеров является задача анализа шаблонов покупок, совершаемых в супермаркетах (т.н. анализ рыночной корзины или market basket analysis).

• В частности, задача заключается в анализе пользовательских предпочтений путем поиска ассоциативных связей между различными товарами в пользовательской корзине.

• Знание таких ассоциативных связей позволяет совершенствовать стратегии продаж

Page 4: Data Mining - lecture 8 - 2014

ПРИМЕР• Предположим, вашей задачей является увеличение продаж магазина. Анализируя данные покупок клиентов, вы ищете ответы на вопросы “Какие товары покупаются чаще всего вместе?”

• Например, из анализа ассоциаций в данных покупок ваших клиентов, вы узнаете, что что множество покупателей принтеров, одновременно покупают и бумагу.

• В этом случае, можно обязать продавцов при продаже принтеров предлагать бумагу и (или) разместить бумагу рядом с принтерами на полках магазина, а можно наоборот разместить принтеры и бумагу в разных концах торгового зала, заставляя покупателя пройти мимо других товарных позиций и, возможно, купить что-то еще.

Page 5: Data Mining - lecture 8 - 2014

АССОЦИАТИВНЫЕ ПРАВИЛА

Page 6: Data Mining - lecture 8 - 2014

• Ассоциативные правила, направленные на поиск взаимосвязей между товарами, неразрывно связаны с понятием транзакции.

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

• Например, разные товары в одном чеке образуют одну покупку или транзакцию.

• Множество транзакций организуют в операционную базу данных с которой и проводят работы по анализу данных.

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

Page 7: Data Mining - lecture 8 - 2014

АССОЦИАТИВНОЕ ПРАВИЛО• Рассмотрим транзакционную базу данных D, состоящую из транзакций T, относящихся к рассматриваемой задаче. Каждая транзакция T представляет собой некое непустое подмножество набора всех данных I:

• Пусть A некоторые множество данных. Будем говорить, что транзакция T содержит набор данных A, если

• Ассоциативное правило имеет следующий общий вид: "Из события A

следует событие B” или

• В результате такого анализа можно установить правило следующего вида: "Если в транзакции встретился набор товаров A, тогда в этой же транзакции должен появиться набор товаров B”

A⇒ B, A⊆ I , B⊆ I , A ≠ ∅, B ≠ ∅, A∩ B =∅

T ⊆ I = i1,i2,…in{ }A⊆ T

Page 8: Data Mining - lecture 8 - 2014

ПОДДЕРЖКА И ДОСТОВЕРНОСТЬ• Основными характеристиками ассоциативного правила являются поддержка и достоверность правила.

• Поддержка ассоциативного правила (обеспечение набора) - это вероятность, что транзакция содержит элементы как набора A, так и набора B (т.е. AUB)

• Используя формулы классической вероятности, поддержка может быть вычислена как:

• Поддержку принято выражать в процентах, например 10%.

support(A⇒ B) = P A∪ B( )

support(A⇒ B) =countA∪B⊆T

T( )count(T )

Page 9: Data Mining - lecture 8 - 2014

ПОДДЕРЖКА И ДОСТОВЕРНОСТЬ• Достоверность ассоциативного правила - это вероятность, что транзакция содержит набор B, при условии, что она содержит набор A (т.е. B|A)

• Используя формулы условной вероятности, достоверность может быть вычислена как:

• Достоверность также принято выражать в процентах, например 10%.

confidence(A⇒ B) = P B | A( )

confidence(A⇒ B) = P(A∪ B)P(A)

=countA∪B⊆T

(T )

countA⊆T

(T )

Page 10: Data Mining - lecture 8 - 2014

ПОДДЕРЖКА И ДОСТОВЕРНОСТЬ• Поддержка характеризует полезность ассоциативного правила, а достоверность - его определенность.

• При найденных поддержке и достоверности, ассоциативное правило записывается в виде:

• При изучении ассоциативных правил устанавливается минимальный порог поддержки (minimum support threshold, min_sup) и минимальный порог достоверности (minimum confidence threshold, min_conf).

• Ассоциативное правило называется строгим , если его поддержка и достоверность удовлетворяют минимальному порогу поддержки и минимальному порогу достоверности.

A⇒ B support = x%, confidence = y%[ ]

Page 11: Data Mining - lecture 8 - 2014

ПРИМЕРРассмотрим следующую транзакционную базу данных:

Необходимо вычислить поддержку и достоверность для следующего ассоциативного правила: хлеб => молоко

001 хлеб, молоко002 хлеб, колбаса, молоко003 колбаса, хлеб004 хлеб, молоко, яйца, мука

005 молоко, яйца, мука006 рыба, яйца, мука007 хлеб, сыр, молоко008 молоко, яйца

Исходный набор данных имеет вид: I = {хлеб, молоко, колбаса, яйца, мука, рыба, сыр}, подмножества A = {хлеб}, B = {молоко}

• Общее число транзакций: count(T ) = 8• Число транзакций c AUB = {хлеб, молоко}: countA∪B⊆T

(T ) = 4• Число транзакций c A = {хлеб}: count

A⊆T(T ) = 5

countA∪B⊆T

T( )count(T )

= 48= 0.5 ⇒ support(A⇒ B) = 50%

countA∪B⊆T

(T )

countA⊆T

(T )= 46= 0.67 ⇒ confidence(A⇒ B) = 67%

Page 12: Data Mining - lecture 8 - 2014

ПОИСК АССОЦИАТИВНЫХ ПРАВИЛ• Алгоритм поиска ассоциативных правил состоит из таких шагов:

• Поиск всех часто встречающихся наборов (подмножеств), т.е. таких, которые встречаются не реже, чем в min_sup транзакциях

• Построение строгих ассоциативных правил

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

• Например, если исходный набор данных состоит из 100 элементов, тогда количество непустых подмножеств будет равно:

• Таким образом, даже для такого малого исходного набора данных, количество проверяемых наборов может быть огромно и необходимы специальные алгоритмы (например, алгоритм Apriori)

C1100 +C2

100 +!C100100 = 2100 −1≈1.27 ⋅1030

Page 13: Data Mining - lecture 8 - 2014

ПОСТРОЕНИЕ СТРОГИХ АССОЦИАТИВНЫХ ПРАВИЛКак только часто встречающиеся наборы найдены тем или иным способом, генерация строгих ассоциативных правил не представляет больших трудностей:

• Для каждого частно встречающегося набора L, построить всевозможные непустые строгие подмножества S

• Для каждого непустого подмножества S ассоциативное правило “S => L\S” будет строгим, если

• Уровень поддержки для S автоматически удовлетворяет минимальному порогу, т.к. S является подмножеством часто встречающегося набора

confindence(S⇒ L \ S) =countL⊆T

(T )

countS⊆T

(T )≥min_conf

Page 14: Data Mining - lecture 8 - 2014

ПОИСК ЧАСТО ВСТРЕЧАЮЩИХСЯ НАБОРОВ

АЛГОРИТМ APRIORI

Page 15: Data Mining - lecture 8 - 2014

АЛГОРИТМ APRIORI

• Apriori - это алгоритм поиска часто встречающихся наборов, предложенный в 1994 сотрудниками IBM Almaden Research Center

• Идея алгоритма заключается в последовательном построении более длинных часто встречающихся наборов, где для нахождения наборов Lk+1 длины k+1 используются найденные наборы Lk длины k

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

Page 16: Data Mining - lecture 8 - 2014

АЛГОРИТМ APRIORI• На начальном этапе строится множество кандидатов С1, состоящее из каждого элемента исходного набора данных

• Для каждого элемента С1 вычисляется поддержка и удаляются элементы с поддержкой, меньшей min_sup. Оставшиеся элементы признаются часто встречающимися наборами длины 1 и образуют L1

• Дальнейшие шаги построения набора Lk+1 с использованием Lk можно разделить на 2 этапа:

• объединение. На данном этапе генерируется множество кандидатов Ck+1 путем соединения Lk с самим собой (т.е. построения всевозможных комбинаций длины k из элементов набора Lk) 

• отсечение. Множество Ck+1 является большим, чем Lk поэтому может содержать как часто встречающиеся, так и прочие элементы. На основе свойства Apriori проводится удаление кандидатов и оставшиеся элементы образуют Lk+1

Page 17: Data Mining - lecture 8 - 2014

ПРИМЕР (MIN_SUP=20%, MIN_CONF=90%)001 E1, E2, E5002 E2, E4003 E2, E3

004 E1, E2, E4 005 E1, E3006 E2, E3

007 E1, E3008 E1, E2, E3, E5009 E1, E2, E3

{E1} 66%{E2} 77%{E3} 66%{E4} 22%{E5} 22%

supportС1

support ≥min_sup

min_sup = 20%

L1

{E1} 66%{E2} 77%{E3} 66%{E4} 22%{E5} 22%

support{E1, E2}{E1, E3}{E1, E4}{E1, E5}{E2, E3}{E2, E4}{E2, E5}{E3, E4}{E3, E5}{E4, E5}

С2

support ≥min_supmin_sup = 20%

{E1, E2} 44%{E1, E3} 44%{E1, E4} 11%{E1, E5} 22%{E2, E3} 44%{E2, E4} 22%{E2, E5} 22%{E3, E4} 0%{E3, E5} 11%{E4, E5} 0%

supportС2

{E1, E2} 44%{E1, E3} 44%{E1, E5} 22%{E2, E3} 44%{E2, E4} 22%{E2, E5} 22%

L2 support{E1, E2, E3}{E1, E2, E5}{E1, E3, E5}{E2, E3, E4}{E2, E3, E5}{E2, E4, E5}

С4

{E1, E2, E3} 22%{E1, E2, E5} 22%

С4 support

{E1, E2, E3} 22%{E1, E2, E5} 22%

L4 support

support ≥min_supmin_sup = 20%

свойство Apriori

Page 18: Data Mining - lecture 8 - 2014

ПРИМЕР (MIN_SUP=20%, MIN_CONF=90%)

После нахождения часто встречающихся наборов, перейдем к построению ассоциативных правил• Рассмотрим набор {E1, E2, E5}• Непустые строгие подмножества данного набора:

{E1, E2}, {E1, E5}, {E2, E5}, {E1}, {E2}, {E5}• Ассоциативные правила для данных подмножеств:

• {E1, E2} => {E5}, confidence = 2/4 = 50% • {E1, E5} => {E2}, confidence = 2/2 = 100% • {E2, E5} => {E1}, confidence = 2/2 = 100% • {E1} => {E2, E5}, confidence = 2/6 = 33% • {E2} => {E1, E5}, confidence = 2/7 = 29% • {E5} => {E1, E2}, confidence = 2/2 = 100%

Для требуемого порога min_conf=90% строгими ассоциативными правилами являются: {E1, E5} => {E2}, {E2, E5} => {E1} и {E5} => {E1, E2}

Page 19: Data Mining - lecture 8 - 2014

ОБЗОР ДРУГИХ АЛГОРИТМОВ• Алгоритм AIS (1993). Первый алгоритм поиска ассоциативных правил, c которого начался интерес к ассоциативным правилам. В алгоритме AIS кандидаты множества наборов генерируются и подсчитываются "на лету", во время сканирования базы данных. Неудобство AIS - излишнее генерирование и подсчет слишком многих кандидатов, которые в результате не оказываются часто встречающимися.

• PARTITION алгоритм (1995) - заключается в сканировании транзакционной базы данных путем разделения ее на непересекающиеся разделы, каждый из которых может уместиться в оперативной памяти. На первом шаге в каждом из разделов при помощи алгоритма Apriori определяются "локальные" часто встречающиеся наборы данных. На втором подсчитывается поддержка каждого такого набора относительно всей базы данных. Таким образом, на втором этапе определяется множество всех потенциально встречающихся наборов данных.

• Алгоритм DIC, Dynamic Itemset Counting (1997). Алгоритм разбивает базу данных на несколько блоков, каждый из которых отмечается так называемыми "начальными точками" (start point), и затем циклически сканирует базу данных.

Page 20: Data Mining - lecture 8 - 2014

ЗАДАНИЯ

• Для приведенной транзакционной базы данных, вычислите поддержку и достоверность правила: {молоко}=>{яйца, мука}. Как вы считаете, является ли данное правило полезным?

• Для приведенной транзакционной базы данных проведите вычисления по алгоритму Apriori и найдите часто встречающийся набор данных

• Предположим , что исходный набор состоит из 100 товаров , пронумерованных от 1 до 100. Транзакционная база данных состоит из 100 транзакций, причем транзакция k содержит товары, на чьи номера k делится без остатка (т.е. элемент 1 будет во всех транзакциях, 2 - будет в каждой четной транзакции, … Например, транзакция 12 будет содержать {1, 2, 3, 4, 6, 12})

• Если min_sup=5%, какие элементы будут часто встречающимися?• Вычислите поддержку и достоверность правила {5, 7} => {2}• Вычислите поддержку и достоверность правила {2, 3, 4} =>{5}

001 хлеб, молоко002 хлеб, колбаса, молоко003 колбаса, хлеб004 хлеб, молоко, яйца, мука

005 молоко, яйца, мука006 рыба, яйца, мука007 хлеб, сыр, молоко008 молоко, яйца