Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

CCC / лаби / лаб1 / Лабораторна робота1

.doc
Скачиваний:
16
Добавлен:
06.06.2015
Размер:
229.89 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ НАУКИ МОЛОДІ ТА СПОРТУ УКРАЇНИ

ДВНЗ НАЦІОНАЛЬНИЙ ГІРНИЧИЙ УНІВЕРСИТЕТ

КАФЕДРА СИСТЕМНОГО АНАЛІЗУ І УПРАВЛІННЯ

Лабораторна робота №1 З дисципліни

«Самонавчання складних систем»

Виконав

Ст. гр. САм-13

Горобець О.В.

Перевірив

Желдак Т.А.

м. Дніпропетровськ

2013

Лабораторна робота №1.

Побудова й використання асоціативних правил.

Завдання.

1. За наведеною у початкових даних таблицею, яка є фрагментом бази даних транзакцій побудувати асоціативні правила, використовуючи алгоритм Apriory. В ході побудови застосовувати наступні параметри: мінімальна підтримка правила 12%, мінімальна достовірність правила 80%.

2. Розрахувати додаткові характеристики асоціативних правил. Зробити висновки щодо значущості кожного з отриманих правил.

3. Варіюючи в широких межах величини підтримки й достовірності знайти оптимальні граничні значення цих величин для розглянутої предметної області. Результат пояснити.

Методичні вказівки до виконання роботи.

Алгоритм Apriory.

Даний алгоритм був запропонований у 1994 році американськими вченими індійського походження Агравалом та Шрікантом. У його основі лежить поняття “частий набір” (frequent itemset). Асоціативні правила будуються не для усіх можливих сполучень товарів, а лише для тих, які зустрічаються в початковій базі даних достатньо часто.

Частим набором називається непуста множина товарів, підтримка якої не менша за певний, заданий наперед рівень, що має назву “мінімальна підтримка”. Алгоритм Apriory складається з двох послідовних процедур:

  • знаходження усіх частих наборів;

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

В алгоритмі використовується правило анти монотонності: “Якщо певний набір не є частим, то додавання до нього одного або декількох предметів не зробить його частим”.

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

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

Формування частих наборів продовжується до тих пір, поки існує хоча б один частий набір потужності . В залежності від складності предметної області та вигляду типових транзакцій (довжини чеку) може сягати значень більше 10.

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

Докладніше роботу алгоритму проілюструє наступний приклад з овочевим магазином.

Завдання.

Множина транзакцій представлена у таблиці 1.1. використовуючи мінімальний рівень підтримки 25% та мінімальну достовірність 80%, створити базу асоціативних правил поведінки покупців.

Користуючись вищенаведеним алгоритмом, насамперед перевіряємо, чи всі продукти відповідають умовам “частих наборів”, тобто перевіряємо підтримку наборів першого рівня. Заданий рівень підтримки 25% свідчить, що продукт має зустрічатися в транзакціях не менше 6 разів .

Для перевірки представимо транзакції у бінарній формі й підрахуємо кількість покупок кожного продукту (див. табл. 1.1).

Таблиця 1.1. Нормалізований вид множини транзакцій

№ транзакции

Яблоки

Бананы

Морковь

Помидоры

Салат

Конфеты

Персик

Картофель

Слива

Лук

1

1

0

0

1

0

1

0

1

0

1

2

1

0

1

1

0

1

0

1

0

0

3

1

0

1

1

0

1

0

0

0

1

4

0

1

0

0

0

1

0

1

0

1

5

0

0

0

1

0

1

0

1

0

0

6

0

0

0

0

0

0

1

0

1

1

7

1

0

0

0

0

1

0

1

0

0

8

1

0

0

1

0

0

1

1

0

1

9

1

1

0

0

0

1

0

0

0

1

10

1

1

0

1

1

1

0

1

0

0

11

1

0

0

1

0

0

0

1

0

0

12

1

0

0

1

1

0

0

1

1

1

13

1

0

0

0

0

1

0

1

0

0

14

1

0

1

1

0

0

1

1

1

1

15

1

0

1

1

0

1

0

1

1

1

16

1

1

0

0

0

1

0

1

1

1

17

0

1

0

0

0

1

0

1

0

0

18

0

0

0

1

0

1

1

1

1

1

19

1

0

1

0

0

1

0

1

0

1

20

1

0

0

1

0

1

0

1

0

1

 СУМА

15

5

5

12

2

15

4

17

6

13

Як видно з таблиці 1.1, не всі без набори першого рівня (окремі товари) є частими. Переходимо до другого рівня, генеруючи всі можливі пари товарів. Самі набори другого рівня та їх підтримка наведені у таблиці 1.2.

Таблиця 1.2. Предметні набори з двох овочів

яблоки помидоры

10

Яблоки Конфеты

11

яблоки картофель

13

яблоки слива

4

яблоки лук

10

помидоры конфеты

8

помидоры картофель

11

помидоры слива

4

помидоры лук

8

конфеты картофель

13

конфеты слива

3

конфеты лук

9

картофель слива

5

картофель лук

10

слива лук

6

Як видно з таблиці 1.2, за прийнятими критеріями підтримки частими є лише 11 наборів з двох овочів:

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

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

Таблиця 1.3. Предметні набори з трьох овочів

яблоки помидоры конфеты

 

6

яблоки помидоры картофель

 

9

яблоки помидоры лук

 

7

помидоры конфеты картофель

 

7

помидоры конфеты лук

 

5

конфеты картофель лук

 

7

З огляду на отримані дані, множин третього порядку 5.

Подальше виділення чистих наборів сенсу не має. Таким чином, в розглянутій задачі виділено 20 однопредметних частих наборів, 11 – двох предметних та 5 – трьох предметних. Маючи їх всі, переходимо до генерації асоціативних правил.

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

  1. виділення в наборі можливого часткового набору ;

  2. якщо , то записується асоціація вигляду , де , або точніше ;

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

Таблиця 1.4. Асоціативні правила із двома предметами в умові

Якщо умова, то наслідок

Підтримка

Достовірність

якщо {яблуко}, то { помідори й цукерки }

6/20 = 30%

6/15 = 40%

якщо {помідори }, то { яблуко й цукерки }

6/20 = 30%

6/12 = 50%

якщо {цукерки}, то { яблуко й помідори }

6/20 =30%

6/15 = 40%

якщо {яблуко й помідори}, то {цукерки }

6/20 = 30%

6/10 = 60%

якщо {яблуко й цукерки}, то {помідори}

6/20 = 30%

6/11 = 54,5%

якщо {помідори й цукерки}, то {яблуко}

6/20 = 30%

6/8 = 75%

Якщо умова, то наслідок

Підтримка

Достовірність

якщо {яблуко}, то { помідори й картопля }

9/20 = 45%

9/15 = 60%

якщо {помідори }, то { яблуко й картопля }

9/20 = 45%

9/12 = 75%

якщо { картопля }, то { яблуко й помідори }

9/20 =45%

9/17 = 53%

якщо {яблуко й помідори}, то { картопля }

9/20 =45%

9/10 = 90%

якщо {яблуко й картопля }, то {помідори}

9/20 = 45%

9/13 = 69%

якщо {помідори картопля}, то {яблуко}

9/20 = 45%

9/11 =81,8%

Якщо умова, то наслідок

Підтримка

Достовірність

якщо {яблуко}, то { помідори й цибуля }

7/20 = 35%

7/15 = 46,67%

якщо {помідори }, то { яблуко й цибуля }

7/20 = 35%

7/12 = 58,33%

якщо { цибуля }, то { яблуко й помідори }

7/20 =35%

7/13 = 53,84%

якщо {яблуко й помідори}, то { цибуля }

7/20 =35%

7/10 = 70%

якщо {яблуко й цибуля }, то {помідори}

7/20 = 35%

7/10 = 70%

якщо {помідори цибуля, то {яблуко}

7/20 = 35%

7/8=87,5%

Якщо умова, то наслідок

Підтримка

Достовірність

якщо {помідор}, то { цукерки й картопля }

7/20 = 35%

7/12 = 58,33%

якщо { цукерки }, то { помідор й картопля}

7/20 = 35%

7/15 = 46,67%

якщо {картопля }, то { помідор й цукерки }

7/20 =35%

7/17 = 41,18%

якщо { помідор й цукерки }, то {картопля }

7/20 =35%

7/8 = 87,5%

якщо { помідор й картопля}, то { цукерки }

7/20 = 35%

7/11 = 63,63%

якщо { цукерки картопля, то { помідор }

7/20 = 35%

7/13=53,84%

Якщо умова, то наслідок

Підтримка

Достовірність

якщо { цукерки }, то { картопля й цибуля }

7/20 = 35%

7/15 = 46,67%

якщо { картопля }, то { цукерки й цибуля }

7/20 = 35%

7/17 = 41,18%

якщо { цибуля }, то { цукерки й картопля }

7/20 =35%

7/13 = 53,84%

якщо { цукерки й помідори}, то { цибуля }

7/20 =35%

7/13 = 53,84%

якщо { цукерки й цибуля }, то { картопля }

7/20 = 35%

7/9 = 77,78%

якщо { картопля цибуля, то { цукерки }

7/20 = 35%

7/10=70%

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

Таблиця 1.5. Асоціативні правила з одним предметом в умові

Якщо умова, то наслідок

Підтримка

Достовірність

Якщо {яблуко}, то {помідори}

10/20 = 50%

10/15 = 66,67%

Якщо {помідори }, то {яблуко}

10/20 = 50%

10/12 = 83,33%

Якщо { яблуко }, то {цукерки }

11/20 = 55%

11/15 = 73,33%

Якщо { цукерки }, то { яблуко }

11/20= 55%

11/15 = 73,33%

Якщо { яблуко }, то { картопля }

13/20=65%

13/15=86,67%

Якщо { картопля }, то { яблуко }

13/20=65%

13/17=76,47%

Якщо { яблуко }, то {цибуля}

10/20 = 50%

10/15 = 66,67%

Якщо {цибуля}, то { яблуко }

10/20 = 50%

10/13 = 76,92%

Якщо { помідори }, то { цукерки }

8/20 = 40%

8/12 = 66,67%

Якщо { цукерки }, то { помідори }

8/20 = 40%

8/15 = 53,33%

Якщо { помідори }, то {картопля}

11/20 = 55%

11/12 = 91,67%

Якщо {картопля}, то { помідори }

11/20 = 55%

11/17= 64,7%

Якщо { помідори }, то {цибуля}

8/20 = 40%

8/12 = 66,67 %

Якщо {цибуля}, то {помідори)

8/20 = 40%

8/13 = 61,53 %

Якщо { цукерки }, то { картопля}

13/20=65%

13/15=86,67

Якщо { картопля}, то { цукерки }

13/20=65%

13/17=76,47%

Якщо { цукерки }, то { цибуля }

9/20 = 45%

9/15 = 60 %

Якщо { цибуля }, то { цукерки }

9/20 = 45%

9/13 = 69,23 %

Якщо { картопля}, то { цибуля }

10/20 =50%

10/17=58,82%

Якщо { цибуля }, то {картопля }

10/20 =50%

10/13=76,92%

Якщо { слива}, то { цибуля }

6/20 =30%

6/6=100%

Якщо { цибуля }, то { слива }

6/20 =30%

6/13=46,15%

Соседние файлы в папке лаб1