You are on page 1of 20

Data Mining

Асоциативни правила
Съдържание
 Основни концепции
 Формален модел
 Сила на асоциативните правила
 Алгоритъм Apriori
 Разновидности на алгоритъма
Apriori
Въведение
Подхдът е предложен от Agrawal през 1993. Това е
съществен модел на Data Mining, който е
предназначен за откриването на асоциативни връзкки
между множества от обекти (артикули) в бази от
данни. Първоначално задачата за откриване на
асоциативни правила (association rule mining) е била
ориентирана към намирането на типични шаблони от
покупки в супермаркети (купуване на свързани
артикули), затова понякога тя се нарича и “задача за
анализ на пазарната кошница”. Задачата работи с
категорийни, а не с количествени данни.

Клавиатура  Мишка [sup = 5%, conf = 100%]


Основни концепции
 Пазарна кошница – това е съвкупността от артикули, които
се придобиват от купувача в рамките на отделна транзакция.
Транзакциите са достатъчно характерни операции, чрез които
могат да се опишат резултатите от посещението на различни
магазини.
 Транзакция – множество от събития, които настъпват
едновременно. Регистрирайки всички бизнес-поерации, по
време на своята дейност, търговските дружества натрупват
огромни масиви от транзакции. Всяка транзакция представлява
съвкупност от стоки, купени от купувача за едно посещение.
Получените в резултат на анлиза шаблони включват списък на
стоките и жроя на транзакциите, които съдържат дадените
стоки.
 Транзакционна или операционна база от данни
(Transaction database) е двумерна таблица, която включва
номерата на транзакциите (TID) и списък на продуктите,
набавеи при тази транзакция.
 TID – уникален идентификатор, определящ всяка сделка или
транзакция.
Пример за транзакционна база от
данни D

TID Списък артикули


100 Хляб, мляко, бисквити
200 Мляко, сметана
300 Мляко, хляб,сметана, бисквити
400 Колбаси, сметана
500 Хляб, мляко, бисквити, сметана
Често срещащи се шаблони или
образци
Хляб a
Мляко b
Установяваме
Бисквити c
кодове за
продуктите: Сметана d
Колбаси e
Бонбони f
PID Списък артикули PID Списък
100 Хляб, мляко, бисквити 100 a, b, c
200 Мляко, сметана 200 b, d
300 Мляко, хляб,сметана, бисквити 300 b, a, d, c
400 Колбаси, сметана 400 e, d
500 Хляб, мляко, бисквити, сметана 500 a, b, c, d
600 Бонбони 600 f
Формален модел
 I={i1,i2,…,im} – множество от
литерали (артикули).
 D - база от данни за транзакции
 T  D – транзакция – T  I.
 TID – уникален идентификатор,
свързан с T.
 X е подмножество на I (X  I)
 Една транзакция T съдържа
множеството артикули X, ако X  T.
Формален модел (2)
 Асоциативно правило е импликация
във формата:
X  Y, където X, Y  I, и X Y = 
 Множество от артикули – itemset.
 Множество от k артикули – k-
itemset.
Метрики за силата на
асоциативното правило
Ассоциативното правило има вида:
“От събитието A следва събитие B".
 Поддръжка (support) – е количеството или
процентът транзакции от базата D, съдържащи
определен набор артикули:
SUP(abc) = 3 или в проценти
SUP(abc) = (3/6)*100 = 50%.
 Достоверност (confidence) – показва каква е
вероятността за включването в транзакцията на
артикул A да води и до включването на артикул B:
conf = P(B|A)
Граници на поддръжката и
достоверността
Използването на алгоритмите за намирането на
асоциативни правила е възможно да се намерят
всички правила от вида:”От А следва B” (A -> B) с
различни стойности на поддръжка и достоверност. В
повечето случаи, обаче, е необходимо броят на тези
правила да се ограничи с минимални и максимални
стойности на поддръжката и достоверността.
Ако стойността на поддръжката на правилото е твърде
голяма, то в резултат на изпълнението на алгоритъма
ще бъдат намерени очевидни и звестни правила.
Твърде ниската стойност на поддръжката ще доведе до
намирането на голям брой правила, които няма да са
неизвестни и очевидни, но ще бъдат в значителна
степен необосновани.
Ако стойността на достоверноста е ниска, то ценността на
такива правила е под съмнение.
Алгоритми за намиране на
асоцативни правила
Съществуват голям брой алгоритми за решаване
на задачата за намиране на асоциативни
правила, които използват различни
стратегии и структури от данни. Резултатите
от изпълнението на тези алгоритми
(генерираните множества от асоциативни
правила) зададени база от транзакции, и
стойности на минималната поддръжка и
достоверност съвпадат. Те са дефинирани
еднозначно. Различията (и насоките за
усъвършенстване) на алгоритмите са
свързани с тяхната изчислителна
ефективност и изискванията към паметта.
Алгоритъм Apriori
Това е един от най-разпространените и добре изследвани
алгоритми. Алгоритъмът е итеративен и всеки от
неговите етапи се състои от следните две стъпки:
 Генериране на кандидатите (candidate generation) –
това е етап, на който алгоритъмът, сканирайки базта
от транзакции, създава множество от i-елементни
кандидати (i е и номера на етапа). На тази стъпка
поддръжката на кандидатите не се изчислява.
 Изброяване на кандидатите (candidate counting) –
това е етап, на който се изчислява поддръжката на
всеки на всеки i-ти елементарен кандидат. Тук се
извършва “отсичане” на кандидатите, чиято
поддръжка е по-малка от установената минимална
граница (min_sup). Останалите i-елементни
кандидати наричаме “често срещащи се”.
Алгоритъм Apriori (2)
 Основна идея: всяко подмножество на
множество (itemset) от често срещащи се
артикули е също множество от често
срещащи се артикули.
 Идея на алгоритъма: намират се най-
напред едноелементните често срещащи
се множества от артикули, след това се
намират двуелементните такива и т.н.
 На всяка k-та итерация се разглеждат само
тези множества от артикули, които съдържат
k-1 често срещащи се такива множества.
Алгоритъм Apriori (3)
 Намират се често срещаните
множества с размер 1: F1
 От k = 2 с нарастване 1 до kmax
 Ck = кандидати с размер k: тези
множества с размер k, които са често
срещани и съдържат Fk-1
 Fk = тези множества, коитo са често
срещани за стъпка k, Fk  Ck
(необходимо е еднократно сканиране на
базата от данни).
Алгоритъм Apriori – пример:
Намиране на често срещани
множества:

Min_sup = 50 %
Min_conf = 80 %

itemset:count
1.Scan D  C1:{a}:3,{b}:4,{c}:4,{d}:3,{e}:1,{f}:1
 F1:{a}:3,{b}:4,{c}:4,{d}:3
 C2:{a,b},{a,c},{a,d},{b,c},{b,d},{c,d}
2.Scan D  C2:{a,b}:3,{a,c}:3,{a,d}:2,{b,c}:2,{b,d}:3,{c,d}:2
 F2:{a,b}:3,{a,c}:3,{b,d}:3
 C3:{a,b,c},{a,b,d},{b,c,d},{a,c,d}
3.Scan D  C3:{a,b,c}:3,{a,b,d}:2,{b,c,d}:2,{a,c,d}:2
 F3:{a,b,c}:3 C4:{a,b,c} -> sup(3/6)
Пример – асоциативни правила
От показания пример следват
асоциативните правила, за които
sup ≥ min_sup. За k =3 правилата
са:
 a,b -> c [sup = 3/6, conf = 3/3]
хляб,мляко -> бисквити
 a -> b,c [sup = 3/6, conf = 3/3]
хляб – мляко, бисквити
Обобщение на алгоритъма Apriori
 Алгоритъмът извършва “послойно” търсене.
 k е размерът на най-дългата съвкупност от
артикули (на практика – значително ограничено).
 Алгоритъмът изисква не повече от k обхождания на
данните.
 Алгоритмът е много бърз. При наличието на някои
условия той изисква линейно време.
 Пространството от всички асоциативни правила
нараства експоненциално: O(2m), където m е броя
на артикулите в I (вж.по-горе).
 Алгоритъмът разчита на разредеността на данните
в D и наличието на ограбичения за sup и conf.
 Алгоритъмът е в състояние да генерира огромно
множество от асоциативни правила.
Разновидности на алгоритъма
Apriori
Разновидностите на алгоритъма Apriori
представляват негови оптимизации,
предложени за съкращаване на броя на
стъпките за сканиране на базата или (и)
броя на множествата-кандидати:
 Алгоритъм AprioriTid
 Алгоритъм AprioriHybrid
 Алгоритъм PARTITION
 Алгоритъм DIC, Dynamic Itemset Counting
Разновидности на алгоритъма
Apriori (2)
 AprioriTid – особеност на този алгоритъм е, че базата
от данни D не се използва за изброяване на
поддръжката на кандидатите от множества след
първото сканиране. За тази цел се използва кодиране
на кандидатите, изпълнено на предишните сканирания
на D така, че в следващите сканирания размерът на
кодираните съвкупности да бъде много по-малък от
базата от данни и по такъв начин да се икономисат
значителни ресурси.
 AprioriHybrid – в по-ранните стъпки на сканиране
алгоритъмът Apriori постига по-голям успех от
AprioriTid, но AprioriTid работи по-добре от Apriori в по-
късните сканирания. Освен това и двата алгортъма
използват една и съща процедура за генериране на
съвкупности от кандидати. Въз основа на тези изводи
е предложен алгоритъмът AprioriHybrid с цел да се
обединят предимствата на двата алгоритъма.
Разновидности на алгоритъма
Apriori (3)
 Алгоритъмът PARTITION (A. Savasere, E. Omiecinski
and S. Navathe, 1995 год) – това е алгоритъм с разделяне
(разбиване) и се основава на сканиране на базата от
данни чрез разделянето и на непресичащи се дялове,
всеки от които може да се вмести в оперативната памет.
На първа стъпка във всеки раздел с помощта на
алгоритъма Apriori се определят “локалните” често
срещащи се съвкупности. На втора стъпка се пресмята
поддръжката на всеки набор спрямо цялата база от
транзакции D. По този начин на втория етап се определя
множеството от всички потенциално често срещани
набори.
 Алгоритъм DIC, Dynamic Itemset Counting (S. Brin R.
Motwani, J. Ullman и S. Tsur, 1997 год). Алгоритъмът с
основава на разделяне на базата от транзакции на
няколко блока с маркирането на т.нар.”начални точки” и
цикличното и сканиране.

You might also like