You are on page 1of 8

----------------------- Page 1-----------------------

Методика виявлення узагальнених


асоціативних правил у сховищах даних

Вступ

У даній лекції обговорюватиметься проблема виявлення узагальнених асоціативних


правил.. Разом з вже відомими параметрами правила такими як підтримка і
достовірність
опишемо такий параметр, як рівень інтересу. Також будуть приведений два алгоритми
обчислення узагальнених асоціативних правил: базовий алгоритм і покращуваний
алгоритм. Основною відмінністю узагальнених асоціативних правил від асоціативних
правил є те, що отримувані правила включають елементи, що є предками елементів
вхідних в множину транзакцій.

Визначення 1. Ієрархією (таксономією) елементів називається ліс направлених


ациклічних дерев, листям яких є елементи транзакцій, а внутрішніми вузлами групи
елементів.

Приклад ієрархії товарів і товарних груп приведений на мал. 1. Маючи таку ієрархію,
можна отримати, наприклад, такі правила: ' Якщо покупець купив Сік, то він, швидше
за
все, захоче купити Кефір'; 'Якщо покупець купив Молочні продукти, то він, швидше за
все, захоче купити Мінеральну воду'. Тобто, в отримуваних правилах, як в умові, так
і в
слідстві можуть бути присутніми елементи, що знаходяться на різних рівнях
таксономии.

Ріс.1. Приклад ієрархії товарів і товарних груп.

Введення інформації про приналежність елементів транзакцій до тієї або іншої групи
може дати наступні переваги:

1. Будуть виявлені асоціативні правила не тільки між окремими елементами, але і


між
різними рівнями ієрархії.

----------------------- Page 2-----------------------

2. В деяких випадках окремі елементи можуть мати дуже маленьку підтримку,


проте,
значення підтримки всієї групи, в яку входить цей елемент, може бути більше
порогу мінімальної підтримки. Це приводить до того, що раніше не виявлене
потенційно цікаве правило, побудоване на елементах нижнього рівня ієрархії,
може
бути отримане, але його елементами будуть або елементи транзакції, або
предки
цих елементів.
3. Введення інформації про угрупування елементів може використовуватися для
відсікання 'нецікавих' правил.

Опис завдання

Хай I={i1, i2 ... im} - це безліч елементів. Хай I - це ліс направлених дерев. Дуги
в I - це
залежності між елементами. Хай елементи, що належать I, розташовані в якійсь
ієрархії.
Якщо є дуга від а до b, то говорять, що а - предок b, і b - нащадок а (а - це
узагальнення b).

Хай є безліч транзакцій D, де кожна транзакція T - це безліч елементів (подій),


подіям
одночасно. Має місце наступне твердження: T I.

Визначення 2. Розширеною транзакцією називається транзакція, розширена


предками всіх елементів, що входять в цю транзакцію.

Визначення 3. Узагальненим асоціативним правилом називається імплікація X Y, де


X I, Y I і X Y =, і де жоден з елементів, що входять в набір Y, не є предком
жодного
елементу, що входить в X. Правило X Y має підтримку s (support), якщо s%
розширених транзакцій, містять X Y, supp(X Y)= supp(X Y). Достовірність правила
показує, яка вірогідність того, що з X виходить Y. Правило X Y справедливо з
достовірністю (confidence) з, якщо c% розширених транзакцій, що містять X, також
містять Y, conf(X Y)= supp(X Y) /supp(X).

Ми називаємо правило X Y узагальненим, тому що елементи, що входять в нього можуть


знаходитися на будь-якому рівні таксономії. Також називатимемо x предком x і x
нащадком x.

Завдання. Хай D - це безліч транзакцій, а I - безліч елементів, що знаходяться в


ієрархічній залежності. Необхідно знайти закономірності, які є узагальненими
асоціативними правилами вигляду X Y, причому supp(X Y) >= minsupp і conf(X Y) >=
minconf.

Це визначення завдання має одну проблему. Річ у тому, що при такому визначенні
завдання, будуть знайдені 'зайві' узагальнені асоціативні правила. Для вирішення
цієї
проблеми розглянемо такий параметр правила як рівень інтересу.

Зауваження. Нехай Pr(X) - це вірогідність того, що всі елементи з X міститися в


одній
розширеній транзакції. Тоді supp(X Y)= Pr(X Y) і conf(X Y)= Pr(Y|X). Якщо
підтримка
{x,y} більше значення мінімальної підтримки, то і підтримка {x,y}, і підтримка
{x,y}, і
підтримка {x,y} буде більше порогу мінімальної підтримки. Проте якщо достовірність
правила X Y більше мінімальної достовірності, тільки правило X Y гарантовано
матиме

----------------------- Page 3-----------------------

достовірність більш ніж мінімальна. Підтримка елементу, узятого з внутрішнього


рівня
ієрархії не дорівнює сумі підтримки елементів, що є безпосередніми нащадками цього
елементу.

Визначення ' важливих ' правил.

Багато узагальнених асоціативних правил, які можуть бути знайдені, є потенційно не


цікавими (приблизно 20% - 70%). Для визначення того, які правила є 'цікавими', а
які
немає, визначимо такий параметр, як рівень інтересу.

Хай Z - це предок Z, де Z і Z - безліч елементів, що входять в ієрархію (Z,Z I). Z


є предком
Z, тільки в тому випадку, якщо Z можна отримати з Z шляхом підміни одного або
декількох елементів їх предками. Якщо розглядати ієрархію на мал. 1, то прикладом
можуть бути ці дві множини: Z={Сік, Кефір, Папір}, Z={Напої, Молочні продукти,
Папір}. Називатимемо правила X Y, X Y, X Y предками правила X Y.

Визначення 4. Правило X Y є найближчим предком правила X Y, якщо не існує


такого правила X' Y', що X' Y' - це предок X Y і X Y - це предок X' Y'.

Подібні визначення можна дати і для правил: X Y, X Y.

Розглянемо правило X Y. Хай Z = X Y. Відмітимо що supp(X Y)= supp(Z). Назвемо


очікуваним значенням Pr(Z) відносно Z. Хай Z={z1 ..., zn}, Z={z1 ..., zj, zj+1 ...,
zn}, 1 <= j
<= n. Тоді можна визначити:

Аналогічно визначимо як очікуване значення достовірності правила X Y відносне X


Y.
Хай Y={y1 ..., yn}, Y={y1 ..., yj, yj+1..., yn}, 1 <= j <= n. Тоді можна визначити

Визначення 5. Правило X Y називається R- цікавим щодо правила-предка, якщо


підтримка правила X Y в R разів більше очікуваної підтримки правила X Y щодо
правила-предка або якщо достовірність правила X Y в R разів більше очікуваної
достовірності правила X Y щодо правила-предка.

Визначення 6. Правило називається цікавим, якщо у нього немає предків або воно є
R цікаве щодо всіх своїх найближчих предків.

Визначення 7. Правило називається частково цікавим, якщо у нього немає предків

----------------------- Page 4-----------------------

або воно є R- цікавим щодо будь-якого свого найближчого предка.

Приклад. Хай в результаті роботи алгоритми ми отримали наступні правила (таблиця.


1). Підтримка елементів що входять в них приведена в таблиці 2. Ієрархія елементів
дана
мал. 1. Рівень інтересу R=1.3.

N правила Текст правила Підтримка %

Сік Молочні продукти 10


1

Безалкогольні напої Кефір 15


2

Сік Кефір 9
3

Таблиця 1. Узагальнені асоціативні правила.

Елемент Підтримка %

Напої 7

Безалкогольні напої 5

Сік 3

Молочні продукти 6
Кефір 4

Таблиця 2. Підтримка елементів.

Розглянемо правило номер 3. Визначимо чи є це правило цікавим /частково цікавим чи


ні. Іншими словами, нам необхідно перевірити нерівність

Правило 2 є ближнім предком правила 3, порахуємо очікувану підтримку.

Нерівність

----------------------- Page 5-----------------------

не виконується, отже, правило 3 не є цікавим.

Правило 1 теж є ближнім предком правила 3, порахуємо очікувану підтримку.

Нерівність

виконується, отже, правило 3 не є частково цікавим.

Тепер з урахуванням написаного вище можна сформулювати завдання по новому.

НеХай D - це безліч транзакцій, а I - безліч елементів, що знаходяться в


ієрархічній
залежності. Необхідно знайти закономірності, які є узагальненими асоціативними
правилами вигляду X Y, причому підтримка правила X Y більше або дорівнює якомусь
наперед заданому значенню мінімальної підтримки і достовірність більше або дорівнює
значенню мінімальної достовірності і правила X Y є цікавими або частково цікавим.

Алгоритм обчислення узагальнених асоціативних


правил

Як може показатися з першого погляду, для обчислення узагальнених асоціативних


правил можна використовувати будь-який алгоритм виявлення асоціативних правил,
доповнивши кожну транзакцію предками кожного елементу, що входить в транзакцію.
Проте такий метод 'в лоб' дуже неефективний і використання його спричиняє за собою
наступні проблеми:

1. Розмір кожної транзакції збільшується залежно від глибини дерева від


декількох
десятків відсотків до декількох разів, і як наслідок, збільшення часу
обчислення і
кількості правив.
2. Поява надмірних правил, в яких в умові і в слідстві знаходяться елемент і
його
предок. Прикладом такого правила може бути 'Якщо покупець купив Кефір, то
він,
швидше за все, захоче купити Молочні продукти'. Абсолютно ясно, що практична
цінність цього правила дорівнює нулю при достовірності рівної 100%.

Для вирішення цієї проблеми може бути використання спеціального алгоритму, що


зважає
на всю специфіку узагальнених асоціативних правил.

Процес обчислення узагальнених асоціативних правил можна розбити на декілька


етапів:
1. Пошук безлічі елементів, підтримка яких більш ніж заданий поріг підтримки,
що
часто зустрічається (мінімальна підтримка).
2. Обчислення правив на основі знайдених на попередньому етапі безлічі
елементів,
що часто зустрічається. Основна ідея обчислення правив на основі частих
множин,
що зустрічаються, полягає в наступному: Якщо ABCD - це безліч елементів, що

----------------------- Page 6-----------------------

часто зустрічається, то на основі цієї множини можна побудувати правила X


Y
(наприклад, AB CD), причому X Y = ABCD. Підтримка правила дорівнює
підтримці множини, що часто зустрічається. Достовірність правила
обчислюється
за формулою conf(X Y)= supp(X Y)/ supp(X). Правило додається до
результуючого
списку правив, якщо достовірність цього правила більше порогу minconf.
3. З результуючого списку правил віддаляються всі 'нецікаві' правила.

Базовий алгоритм пошуку множин, що часто


зустрічаються

На першому кроці алгоритму підраховуються 1-елементні набори, що часто


зустрічаються. При цьому елементи можуть знаходитися на будь-якому рівні
таксономії.
Для цього необхідно 'пройтися' по всьому набору даних і підрахувати для них
підтримку,
тобто скільки разів зустрічається в базі.

Наступні кроки складатимуться з двох частин: генерації потенційно наборів елементів


(їх
називають кандидатами) і підрахунку підтримки, що часто зустрічаються, для
кандидатів.

Описаний вище алгоритм можна записати у вигляді наступного псевдокоду:

1. L1 = { Безліч елементів і груп елементів, що часто зустрічається };


2. для( k=2; Lk-1 <> ; k++ )
3. {
4. Ck = { Генерація кандидатів потужністю до на основі Lk-1 };
5. для всіх транзакцій t D
6. {
7. Розширити транзакцію t предками всіх елементів
8. що входять в транзакцію;
9. Видалити дублікати з транзакції t;
10. для всіх кандидатів з Ck
11. якщо з t те
12. з.count++;
13. }
14. Lk = { з Ck | з.count >= minsupp }; // Відбір кандидатів
15. }
16. Результат = UkLk;

Опишемо функцію генерації кандидатів. Для того, щоб отримати к-элементные набори,
скористаємося (k-1) -элементными наборами, які були визначені на попередньому кроці
і є
такими, що часто зустрічаються.
Алгоритм генерації кандидатів складатиметься з двох кроків:

1. Об'єднання. Кожен кандидат Ck формуватиметься шляхом розширення набору


розміру (k-1), що часто зустрічається, додаванням елементу з іншого (k-1) -
елементного набору.
Приведем алгоритм цієї функції у вигляді невеликого SQL-подобного запиту:
INSERT
INTO Ck
SELECT
а.item1, а.item2, ..., а.itemk-1, b.itemk-1

----------------------- Page 7-----------------------

FROM
Fk-1 а, Fk-1 b
WHERE
а.item1 = b.item1,
а.item2 = b.item2, ...,
а.itemk-2 = b.itemk-2,
а.itemk-1 < b.itemk-1
2. Видалення надмірних правил. На підставі властивості анти-монотонности, слід
видалити всі набори з Ck, якщо хоч би одна з його (k-1) підмножин не є
таким, що
часто зустрічається.

Для ефективного підрахунку підтримки кандидатів можна використовувати хэш-дерево


[5]. Хеш-кодування-дерево будується кожного разу, коли формуються кандидати.
Первинне дерево складається тільки з кореня, який є листом, і не містить ніяких
кандидатів-наборів. Кожного разу, коли формується новий кандидат, він заноситься в
корінь дерева і так до тих пір, поки кількість кандидатів в корені-листі не
перевищить
якогось порогу. Як тільки кількість кандидатів стає більше порогу, корінь
перетвориться в
хеш - кодування-таблицю, тобто стає внутрішнім вузлом, і для нього створюються
нащадки-листя. І всі приклади розподіляються по вузлах-нащадках згідно хеш-
значениям
елементів, що входять в набір, і так далі Кожен новий кандидат хешируется на
внутрішніх
вузлах, поки він не досягне першого вузла-листа, де він і зберігатиметься, поки
кількість
наборів знову ж таки не перевищить порогу.

Покращуваний алгоритм пошуку множин, що часто


зустрічаються

До базового алгоритму можна додати декілька оптимізацій, які збільшать швидкість


роботи базового алгоритму:

1. Доцільно одного разу обчислити безліч предків для кожного елементу ієрархії
як
для елементу нижнього рівня таксономии (лист дерева), так і для елементу
внутрішнього рівня.
2. Необхідно видаляти кандидати, що містять елемент і його предок. Для
реалізації
цієї оптимізації розглянемо наступні дві леммы:
Лемма 1. Підтримка множини X, що містить і елемент x і його предок x
обчислюється за формулою supp(X)=supp(X-x).
Принимая до уваги цю лему, ми видалятимемо кандидати, що містять і елемент
і
його предок із списку кандидатів до початку процесу підрахунку підтримки.
Лемма 2. Якщо Lk - це список множин, що часто зустрічаються, що не містить
множин, що включають і елемент і його предок в одній множині, то Ck+1
(список
кандидатів, що отримуються з Lk) також не міститиме множин, що включають і
елемент і його предок.
Учитывая твердження, дане в цій лемі, ми видалятимемо кандидатів, що
включають і елемент і його предок, із списку кандидатів тільки на першій
ітерації
зовнішнього циклу.
3. Немає необхідності в додаванні всіх предків всіх елементів, що входять в
транзакцію. Якщо кокой-то елемент, у якого є предок, не знаходиться в
списку
кандидатів, то в списку елементів з предками він позначається як видалений.
Отже,
з транзакції віддаляються елементи, помічені як видалені, або проводиться
заміна
цих елементів на їх предків. До транзакції додаються тільки не видалені
предки.

----------------------- Page 8-----------------------

4. Не 'пропускати' транзакцію через хэш-дерево, якщо її потужність менше ніж


потужність елементів, розташованих в хэш-дереве.
5. Доцільно позначати транзакції як видалені і не використовувати їх при
підрахунку
підтримки на наступних ітераціях, якщо на поточній ітерації до цієї
транзакції не
увійшов жоден кандидат.

Враховуючи написане вище, отримуємо наступний алгоритм:

1. // Оптимізація 1
2. Обчислити I* безлічі предків елементів для кожного елементу;
3. L1 = {Безліч елементів і груп елементів, що часто зустрічається};
4. для ( до = 2; Lk-1 <> ; k++ )
5. {
6. Ck = {Генерація кандидатів потужністю до на основі Lk-1};
7. // Оптимізація 2
8. якщо до = 2 те
9. видалити ті кандидати з Ck, які містять елемент і його предок;
10. // Оптимізація 3
11. Помітити як видалена безліч предків елементу, який не міститься в списку
кандидатів;
12. для всіх транзакцій t D
13. {
14. // Оптимізація 3
15. для кожного елементу х t
16. додати всіх предків х з I* до t;
17. Видалити дублікати з транзакції t;
18. // Оптимізація 4,5
19. якщо і ( |t| >= до) те
20. {
21. для всіх кандидатів з Ck
22. якщо з t те
23. з.count++;
24. // Оптимізація 5
25. якщо до транзакції t не увійшов жоден кандидат те
26. помітити цю транзакцію як видалену;
27. }
28. }
29. // Відбір кандидатів
30. Lk = { з >= Ck | з.count >= minsupp };
31. }
32. Результат = UkLk;

Висновок

У даній лекції було розглянуто питання виявлення узагальнених асоціативних правил.


Введення інформації про угрупування елементів транзакцій дозволило отримувати
правила, в яких елементами є як самі елементи транзакцій, так і групи, в які
входять ці
елементи. Також з введенням інформації про угрупування, з'явилася можливість
відсікання 'зайвих' правил, для чого був введений такий параметр як мінімальний
рівень
інтересу.

----------------------- Page 9-----------------------

Поява такого інструменту, як алгоритм пошуку узагальнених асоціативних правил


значно
розширило круг завдань, що вирішуються за допомогою методів виявлення стандартних
шаблонів подій. Прикладом такого завдання може служити завдання знаходження
залежностей між товарами, що продаються якійсь фірмою і її покупцями. Мета такого
завдання - це знайти тих покупців на конкретні товари (наприклад, товари, які
'завалялися'
на складі), які їх не коли не купували, але купували схожі.

You might also like