Raw

4. Домашнє завдання (написання програми)

Джерело завдання. Формулювання постановки взято з методичних матеріалів курсу й наведено дослівно. Готового коду тут немає — це індивідуальне завдання; техніку обчислень показано на інших даних у 2method.md та 3classroom.md.

Постановка (дослівно)

Реалізувати алгоритм побудови дерева рішень за допомогою Байєсівського класифікатору. На вхід додатку передається CSV файл з навчальною вибіркою. Побудоване дерево виводиться на екран. Порівняти результати з результатами побудови за допомогою алгоритму ID3.

Зауваження до постановки. Під «Байєсівським класифікатором» тут розуміють наївний баєсів класифікатор з Лекції 8. На відміну від ID3, він не будує дерева у вигляді ієрархії вузлів — він оцінює ймовірності й видає прогнозований клас для кожного об’єкта. Тому «порівняти результати побудови» означає: прогнати наївний баєсів класифікатор і дерево ID3 (Лабораторна 7) на тій самій навчальній вибірці й зіставити їхні прогнози (та точність). Реалізовувати сам ID3 заново не потрібно — скористайтеся деревом із Лабораторної 7 (його прогнозами) або, для повноти, увімкніть його як окремий модуль.

Вхід і вихід

  • Вхід: шлях до файлу CSV із навчальною вибіркою. Перший рядок — заголовок з іменами атрибутів; останній стовпець — цільовий клас, решта — категоріальні предиктори. Кожен наступний рядок — один об’єкт. (Формат збігається з домашнім завданням Лабораторної 7, тож той самий файл годиться для обох робіт.)
  • Вихід: для кожного об’єкта (або для заданого об’єкта із запиту) — прогнозований клас; на середньому й високому рівнях — ще й апостеріорні ймовірності класів та порівняння з прогнозами ID3.

Приклад вхідного CSV (вибірка «Спортивний канал»):

Стать,Дохід,Студент,СпортивнийКанал
Ч,Високий,Так,Так
Ж,Середній,Ні,Ні
Ч,Низький,Так,Ні
Ж,Низький,Ні,Ні
Ч,Середній,Ні,Так
Ж,Високий,Ні,Так
Ж,Середній,Так,Так
Ч,Середній,Так,Так
Ж,Низький,Так,Ні
Ж,Середній,Ні,Ні

Рівні складності

Оцінка відповідає найвищому повністю й правильно виконаному рівню.

Базовий рівень — 60–74 балів

  1. Прочитати навчальну вибірку з файлу CSV (категоріальні атрибути; останній стовпець — клас).
  2. Навчити наївний баєсів класифікатор: оцінити апріорні ймовірності P(C)=NC/NP(C) = N_C/N та умовні ймовірності P(xj=vC)=NC,j=v/NCP(x_j = v \mid C) = N_{C,\,j=v}/N_C частотами.
  3. Класифікувати об’єкти за правилом максимальної апостеріорної ймовірності C^=argmaxCP(C)jP(xjC)\hat{C} = \arg\max_C P(C)\prod_j P(x_j \mid C) і вивести прогнозований клас.
  4. Формули реалізувати самостійно (не викликати готовий naive_bayes як основне обчислення).

Середній рівень — 75–89 балів

Додатково до базового:

  1. Реалізувати згладжування Лапласа P(xj=vC)=NC,j=v+1NC+mjP(x_j = v \mid C) = \dfrac{N_{C,\,j=v} + 1}{N_C + m_j} (де mjm_j — число значень ознаки) і показати, що воно усуває нульові ймовірності.
  2. Виводити апостеріорні ймовірності кожного класу (знормовані, у сумі 11), а не лише клас-переможець.
  3. Коректно опрацьовувати файл із заголовком і довільним числом категоріальних атрибутів; передбачити класифікацію нового об’єкта, заданого з клавіатури або окремим файлом.

Високий рівень — 90–100 балів

Додатково до середнього:

  1. Порівняти прогнози наївного баєсового класифікатора з прогнозами дерева ID3 (Лабораторна 7) на тій самій вибірці: обчислити точність обох (частку правильних прогнозів щодо справжнього класу).
  2. Побудувати й вивести матрицю невідповідності — таблицю, що показує, на скількох об’єктах два методи дали однаковий/різний клас (див. Задачу 3 у 3classroom.md); за наявності розбіжностей — перелічити об’єкти, де методи не збіглися.
  3. Передбачити перевірку коректності вводу (порожній файл, невідоме значення ознаки у новому об’єкті, пропуски) з інформативним повідомленням; для стійкості до переповнення вести обчислення в логарифмах.

Що здавати

  • Вихідний код програми (з коротким README: як запустити, формат вхідного CSV).
  • Приклад запуску на тестовому файлі. Обов’язково перевірте програму на вибірці «Спортивний канал»: очікувані апостеріорні ймовірності P(Такx)P(\text{Так} \mid x) та прогнози наведено в Задачі 3 (усі 1010 об’єктів класифікуються правильно, точність 100%100\,\%, повний збіг з ID3).
  • Оформлення звіту — за 5report.md; перелік запитань до захисту — у 6questions.md.

Laboratory/Laboratory8/4task.md · 7.6 KB · updated 2026-08-04 23:17