# 6. Контрольні запитання Ці запитання допомагають перевірити готовність до роботи й самоконтроль після неї. Відповіді спираються на [методичні вказівки](2method.md) та [Лекцію 11](../../Lectures/DA-L11.md). ## Транзакційна база та асоціативне правило 1. Що таке **транзакційна база даних** і **набір** (itemset)? Чим **горизонтальний** формат задання відрізняється від **вертикального** (tid-множини)? 2. Дайте означення **асоціативного правила** $X \Rightarrow Y$. Яку умову мають задовольняти набори $X$ і $Y$? Чому правило описує **зв'язок**, а не причинність? 3. Чим задача пошуку асоціативних правил відрізняється від класифікації (навчання без учителя, немає цільової ознаки)? ## Міри інтересовності 4. Дайте означення **підтримки** набору. Чому її вимірюють як частку, а не як лічильник? Що таке підтримка правила? 5. Дайте означення **достовірності**. Чому вона **напрямлена** ($\operatorname{conf}(X \Rightarrow Y) \ne \operatorname{conf}(Y \Rightarrow X)$)? Як вона пов'язана з умовною ймовірністю? 6. Що таке **підйом** і як його тлумачити для випадків $>1$, $=1$, $<1$? Доведіть, що підйом **симетричний**. 7. Що таке **переконливість** і що вона вимірює? Чому вона прямує до нескінченності, коли достовірність наближається до $1$? 8. Наведіть приклад **оманливо-достовірного** правила (висока достовірність, але $\operatorname{lift} \le 1$). Чому таке правило відкидають? ## Алгоритм Apriori 9. Сформулюйте **властивість Apriori** (антимонотонність) двома рівносильними способами. Як вона дозволяє **не рахувати** підтримку частини кандидатів? 10. Опишіть **генерацію кандидатів** у Apriori: підкроки *з'єднання* та *відсів*. Наведіть приклад кандидата, якого відсіюють без підрахунку підтримки. 11. Як із частого набору **згенерувати правила**? Чому цей крок дешевий порівняно з пошуком частих наборів? Як застосовують поріг $c_{\min}$? ## Eclat та реалізація 12. У чому ідея алгоритму **Eclat**? Як через **перетин tid-множин** дістати підтримку набору, не переглядаючи транзакцій? 13. Порівняйте Apriori та Eclat: обидва знаходять ті самі набори — у чому різниця за швидкістю та пам'яттю? Коли який вигідніший (щільні проти розріджених баз)? 14. Як **крайні випадки** має опрацьовувати програма (порожній файл, транзакції різної довжини, пороги поза $[0,1]$, дублікати елементів у рядку)? 15. Як **перевірити правильність** реалізації? (Порівняння з обчисленням «руками» на даних Задачі 2, звіряння результатів Apriori та Eclat, порівняння з бібліотечною реалізацією.)