# Лабораторна робота 11. Пошук асоціативних правил. Алгоритми Apriori та Eclat > Одинадцята лабораторна робота курсу **«Аналітика даних»**. Спершу **в > аудиторії** ви обчислюєте «руками» підтримку, достовірність, підйом і > переконливість на малій транзакційній базі та виконуєте **Apriori вручну** для > заданого порогу підтримки. Потім **удома** реалізуєте **програму**, що знаходить > часті набори й генерує асоціативні правила з файлу транзакцій. Робота закріплює > [Лекцію 11](../../Lectures/DA-L11.md). ## Коротко про роботу | | | |---|---| | **Тема** | Асоціативні правила; міри інтересовності (supp, conf, lift, conviction); алгоритми Apriori та Eclat | | **Передумова** | [Лекція 11. Пошук асоціативних правил](../../Lectures/DA-L11.md) | | **Аудиторна частина** | Обчислення мір інтересовності та Apriori «руками» (з розв'язаннями) | | **Домашня частина** | Програма: читає транзакції з файлу, знаходить часті набори й генерує правила з supp/conf/lift | | **Оцінювання** | три рівні: базовий **60–74** / середній **75–89** / високий **90–100** | ## Зміст | № | Частина | Файл | |:--:|---|---| | 1 | Мета роботи | [1purpose.md](1purpose.md) | | 2 | Методичні вказівки (теорія + демонстраційний приклад) | [2method.md](2method.md) | | 3 | Аудиторні задачі з розв'язаннями | [3classroom.md](3classroom.md) | | 4 | Домашнє завдання (програма) | [4task.md](4task.md) | | 5 | Зміст звіту | [5report.md](5report.md) | | 6 | Контрольні запитання | [6questions.md](6questions.md) | ## Домовленості - **Дві частини.** Аудиторні задачі ([3classroom.md](3classroom.md)) розбирають спільно «руками» — з них ви розумієте, *що саме* обчислює програма. Домашнє завдання ([4task.md](4task.md)) — самостійна реалізація алгоритму Apriori та генерації правил у коді. - **Транзакційна база.** Дані — множина транзакцій (по одній на рядок), кожна транзакція — набір елементів. Порядок елементів у транзакції несуттєвий, повтори ігнорують. - **Два пороги.** Розрізняйте **мінімальну підтримку** $s_{\min}$ (відсіює рідкісні набори) і **мінімальну достовірність** $c_{\min}$ (відсіює ненадійні напрямки); у розв'язаннях і звіті завжди зазначайте, які пороги взято. - **Підтримка — частка, не лічильник.** $\operatorname{supp}(X) = \dfrac{|\{t : X \subseteq t\}|}{N}$; порівнюйте з порогом саме частку (або еквівалентний лічильник $s_{\min}\cdot N$). - **Мова програмування — на вибір.** Стандартні бібліотеки для читання файлів дозволені; готові реалізації Apriori (напр. `mlxtend`) можна брати **лише для перевірки** власної. ## Підсумок Асоціативні правила відповідають на запитання «що з чим трапляється разом» і «наскільки надійно». Чотири міри — **підтримка** (поширеність набору), **достовірність** (надійність напрямку), **підйом** (сила зв'язку) та **переконливість** (частота порушень) — разом відділяють справжні закономірності від випадкових збігів і тривіальностей. У цій роботі ви навчитеся рахувати ці міри «руками», виконувати **Apriori** з відсіванням кандидатів за властивістю антимонотонності та перевіряти результат **Eclat** через перетин tid-множин — а потім автоматизуєте весь пошук програмою. Це завершальний метод змістового модуля про асоціативний аналіз і водночас типовий приклад **навчання без учителя**, що доповнює задачі кластеризації з [Лекцій 9](../../Lectures/DA-L09.md)–[10](../../Lectures/DA-L10.md).