6. Контрольні запитання
Ці запитання допомагають перевірити готовність до роботи й самоконтроль після неї. Відповіді спираються на методичні вказівки та Лекцію 12.
Мотивація та ідея FP-Growth
- Які два обмеження Apriori долає FP-Growth? Поясніть, чому «вартість кандидатів» і «багаторазові проходи по базі» стають вузькими місцями на великих даних.
- У чому основна ідея FP-Growth? Скільки проходів по базі він робить і чому каже, що метод шукає часті набори без генерації кандидатів?
- Чи знаходять Apriori, Eclat і FP-Growth однакові часті набори? Що саме в них різне?
FP-дерево
- Що таке FP-дерево? Що зберігає кожен його вузол і що таке заголовна таблиця та зв’язки між вузлами (node-links)?
- Опишіть два проходи побудови FP-дерева. Що роблять у 1-му проході й що — у 2-му?
- Навіщо елементи впорядковують за спаданням частоти (-список) перед вставленням? Що станеться зі стисненням, якщо взяти довільний порядок?
- Чому нечасті елементи відкидають ще до побудови дерева? На яку властивість (Лабораторна 11) це спирається?
- Як перевірити правильність побудованого дерева за сумою лічильників вузлів одного елемента?
Умовна база образів та видобуток
- Дайте означення умовної бази образів елемента. Як її побудувати за заголовною таблицею й node-links?
- Що таке умовне FP-дерево і чим воно відрізняється від умовної бази образів? Чому в ньому поріг застосовують наново?
- Чому видобуток ведуть знизу вгору заголовною таблицею (від найрідшого елемента)?
- У чому полягає оптимізація «єдиний шлях»? Як із ланцюжка вузлів одразу виписати всі часті набори та їхні підтримки?
- На прикладі поясніть, як поріг, застосований у умовній базі, відсіює набір, що здавався би частим (напр., чому не з’являється трійка з Задач 3classroom.md).
Порівняння та реалізація
- Порівняйте Apriori, Eclat і FP-Growth за генерацією кандидатів, кількістю проходів по базі та пам’яттю. Коли який вигідніший (щільні проти розріджених баз)?
- Як перевірити правильність реалізації FP-Growth? (Порівняння з обчисленням «руками», звірка з Apriori — часті набори мають збігатися, порівняння з бібліотечною реалізацією.)
- Як програма має опрацьовувати крайні випадки (порожній файл, транзакції різної довжини, поріг поза , дублікати елементів у рядку)?