# 3. Аудиторні задачі з розв'язаннями Ці задачі розбирають **в аудиторії «руками»**. Вони показують ті самі обчислення, які потім автоматизує домашня програма ([4task.md](4task.md)). Теорія й формули — у [методичних вказівках](2method.md). Усі задачі спираються на навчальну вибірку **«Спортивний канал»** ($5$ «Так» $= \{1,5,6,7,8\}$, $5$ «Ні» $= \{2,3,4,9,10\}$): | № | Стать | Дохід | Студент? | Спортивний канал? | |:--:|:--:|:--:|:--:|:--:| | 1 | Ч | Високий | Так | Так | | 2 | Ж | Середній | Ні | Ні | | 3 | Ч | Низький | Так | Ні | | 4 | Ж | Низький | Ні | Ні | | 5 | Ч | Середній | Ні | Так | | 6 | Ж | Високий | Ні | Так | | 7 | Ж | Середній | Так | Так | | 8 | Ч | Середній | Так | Так | | 9 | Ж | Низький | Так | Ні | | 10 | Ж | Середній | Ні | Ні | Апріорні ймовірності — $P(\text{Так}) = P(\text{Ні}) = 0.5$. Умовні ймовірності (частоти без згладжування): | Ознака $= v$ | $P(v \mid \text{Так})$ | $P(v \mid \text{Ні})$ | |---|:--:|:--:| | Стать $=$ Ч | $3/5 = 0.6$ | $1/5 = 0.2$ | | Стать $=$ Ж | $2/5 = 0.4$ | $4/5 = 0.8$ | | Дохід $=$ Високий | $2/5 = 0.4$ | $0/5 = 0.0$ | | Дохід $=$ Середній | $3/5 = 0.6$ | $2/5 = 0.4$ | | Дохід $=$ Низький | $0/5 = 0.0$ | $3/5 = 0.6$ | | Студент? $=$ Так | $3/5 = 0.6$ | $2/5 = 0.4$ | | Студент? $=$ Ні | $2/5 = 0.4$ | $3/5 = 0.6$ | ## Задача 1. Класифікація «руками» **Дано** об'єкти $8$ — (Ч, Середній, студент Так) та $5$ — (Ч, Середній, студент Ні). **Знайти** апостеріорну ймовірність $P(\text{Так} \mid x)$ і прогнозований клас для кожного. **Розв'язання.** Для кожного класу перемножуємо апріорну ймовірність на три умовні (за таблицею вище), потім нормуємо. **Об'єкт 8** (Ч, Середній, Так): $$ \text{score}(\text{Так}) = P(\text{Так})\,P(\text{Ч} \mid \text{Так})\,P(\text{Середній} \mid \text{Так})\,P(\text{Так} \mid \text{Так}) = 0.5 \cdot 0.6 \cdot 0.6 \cdot 0.6 = 0.108, $$ $$ \text{score}(\text{Ні}) = 0.5 \cdot 0.2 \cdot 0.4 \cdot 0.4 = 0.016. $$ $$ P(\text{Так} \mid x_8) = \frac{0.108}{0.108 + 0.016} = \frac{0.108}{0.124} = \frac{27}{31} \approx 0.871. $$ Оскільки $0.871 > 0.5$ — **прогноз «Так»** (справжній клас «Так» ✓). **Об'єкт 5** (Ч, Середній, Ні): $$ \text{score}(\text{Так}) = 0.5 \cdot 0.6 \cdot 0.6 \cdot 0.4 = 0.072, \qquad \text{score}(\text{Ні}) = 0.5 \cdot 0.2 \cdot 0.4 \cdot 0.6 = 0.024. $$ $$ P(\text{Так} \mid x_5) = \frac{0.072}{0.072 + 0.024} = \frac{0.072}{0.096} = \frac{3}{4} = 0.750. $$ **Прогноз «Так»** (справжній клас «Так» ✓). Різниця ймовірностей ($0.871$ проти $0.750$) показує, що об'єкт $8$ — «упевненіший» підписник, ніж об'єкт $5$: обидва чоловіки із середнім доходом, але статус студента (об'єкт $8$) додатково схиляє до «Так». **Відповідь:** $P(\text{Так} \mid x_8) \approx 0.871$ (Так); $P(\text{Так} \mid x_5) = 0.750$ (Так). ![Оцінки score(Так) проти score(Ні) для об'єктів 8 та 5 вибірки «Спортивний канал».](img/lab8_scores.png) ## Задача 2. Нульова ймовірність і згладжування Лапласа **Дано** об'єкт $3$ — (Ч, Низький, студент Так). **Показати**, що без згладжування наївний Байєс дає вироджену оцінку, і **виправити** її згладжуванням Лапласа. **Порівняти** з тим, як цей об'єкт класифікує дерево ID3. **Розв'язання. Крок 1 — без згладжування.** Стать «Ч» ($0.6$ на користь «Так») і статус студента ($0.6$ на користь «Так») схиляють до підписки, проте в таблиці $P(\text{Низький} \mid \text{Так}) = 0$: $$ \text{score}(\text{Так}) = 0.5 \cdot 0.6 \cdot \underbrace{0.0}_{\text{Низький}\mid\text{Так}} \cdot 0.6 = 0, \qquad \text{score}(\text{Ні}) = 0.5 \cdot 0.2 \cdot 0.6 \cdot 0.4 = 0.024. $$ $$ P(\text{Так} \mid x_3) = \frac{0}{0 + 0.024} = 0.000. $$ Єдиний нуль **занулив** увесь клас «Так»: модель категорично відкидає підписку, хоча дві з трьох ознак свідчать на її користь. Це **проблема нульової ймовірності**. **Крок 2 — згладжування Лапласа.** Ознаки мають $m_{\text{Стать}} = 2$, $m_{\text{Дохід}} = 3$, $m_{\text{Студент}} = 2$ значень; $N_{\text{Так}} = N_{\text{Ні}} = 5$. Перерахуємо потрібні умовні ймовірності за формулою $\dfrac{\text{count} + 1}{N_C + m_j}$: $$ P(\text{Ч} \mid \text{Так}) = \tfrac{3+1}{5+2} = \tfrac{4}{7}, \quad P(\text{Низький} \mid \text{Так}) = \tfrac{0+1}{5+3} = \tfrac{1}{8}, \quad P(\text{Так} \mid \text{Так}) = \tfrac{3+1}{5+2} = \tfrac{4}{7}; $$ $$ P(\text{Ч} \mid \text{Ні}) = \tfrac{1+1}{5+2} = \tfrac{2}{7}, \quad P(\text{Низький} \mid \text{Ні}) = \tfrac{3+1}{5+3} = \tfrac{1}{2}, \quad P(\text{Так} \mid \text{Ні}) = \tfrac{2+1}{5+2} = \tfrac{3}{7}. $$ Тепер оцінки класів: $$ \text{score}(\text{Так}) = 0.5 \cdot \tfrac{4}{7} \cdot \tfrac{1}{8} \cdot \tfrac{4}{7} = \tfrac{1}{49} \approx 0.0204, \qquad \text{score}(\text{Ні}) = 0.5 \cdot \tfrac{2}{7} \cdot \tfrac{1}{2} \cdot \tfrac{3}{7} = \tfrac{3}{98} \approx 0.0306. $$ $$ P(\text{Так} \mid x_3) = \frac{1/49}{1/49 + 3/98} = \frac{2/98}{2/98 + 3/98} = \frac{2}{5} = 0.400. $$ Нуль зник: тепер $P(\text{Так} \mid x_3) = 0.400$, $P(\text{Ні} \mid x_3) = 0.600$. Прогноз лишився **«Ні»** (справжній клас «Ні» ✓), але замість фальшивої абсолютної певності модель дає **чесну помірну** перевагу. ![Об'єкт 3: без згладжування P(Так) вироджено дорівнює 0.000, а зі згладжуванням Лапласа стає 0.400.](img/lab8_zero_smoothing.png) **Крок 3 — порівняння з ID3.** Дерево ID3 з [Лекції 7](../../Lectures/DA-L07.md) класифікує об'єкт за коренем «Дохід»: значення **Низький** одразу веде в **лист «Ні»** (усі три низькодохідні об'єкти вибірки — непідписники), тож дерево дає «Ні» **однозначно**, не заглядаючи в інші ознаки. Наївний Байєс приходить до того самого класу «Ні», але «по-своєму»: перемноживши ймовірності всіх ознак і залишивши ненульову ймовірність $0.400$ для «Так». Отже, обидва методи згодні щодо класу, проте наївний Байєс додатково показує, **наскільки** рішення неоднозначне. **Відповідь:** без згладжування $P(\text{Так} \mid x_3) = 0.000$ (вироджено); зі згладжуванням Лапласа $P(\text{Так} \mid x_3) = 0.400$, прогноз «Ні» — як і в дерева ID3. ## Задача 3. Порівняння наївного Байєса з деревом ID3 **Дано** прогнози наївного Байєса (без згладжування; апостеріорні ймовірності обчислено як у Задачі 1 для всіх $10$ об'єктів) і дерева **ID3** з [Прикладу 7.3](../../Lectures/DA-L07.md). **Порівняти** методи за точністю та **матрицею невідповідності**. Нагадаємо дерево ID3: ```text Дохід? ├── Високий -> Так ├── Низький -> Ні └── Середній -> Стать? ├── Ч -> Так └── Ж -> Студент? ├── Так -> Так └── Ні -> Ні ``` **Розв'язання.** Зведемо в таблицю справжній клас, прогноз ID3, прогноз наївного Байєса та його апостеріорну ймовірність: | № | Справжній | Прогноз ID3 | Прогноз НБ | $P(\text{Так} \mid x)$ | |:--:|:--:|:--:|:--:|:--:| | 1 | Так | Так | Так | $1.000$ | | 2 | Ні | Ні | Ні | $0.333$ | | 3 | Ні | Ні | Ні | $0.000$ | | 4 | Ні | Ні | Ні | $0.000$ | | 5 | Так | Так | Так | $0.750$ | | 6 | Так | Так | Так | $1.000$ | | 7 | Так | Так | Так | $0.529$ | | 8 | Так | Так | Так | $0.871$ | | 9 | Ні | Ні | Ні | $0.000$ | | 10 | Ні | Ні | Ні | $0.333$ | **Точність.** Обидва методи правильно класифікують **усі $10$** об'єктів: $$ \text{ACC}_{\text{ID3}} = \frac{10}{10} = 100\,\%, \qquad \text{ACC}_{\text{НБ}} = \frac{10}{10} = 100\,\%. $$ **Матриця невідповідності** (рядки — прогноз наївного Байєса, стовпці — прогноз ID3) показує, на скількох об'єктах методи дали однаковий/різний клас: | | ID3: Так | ID3: Ні | |---|:--:|:--:| | **НБ: Так** | 5 | 0 | | **НБ: Ні** | 0 | 5 | Уся «маса» на **головній діагоналі** — методи **збіглися на всіх $10$** об'єктах (нульова невідповідність). Це очікувано: на цій маленькій, «чистій» вибірці обидва підходи легко відновлюють закономірність (дохід — головний розрізняльник). > **Що дає наївний Байєс додатково.** Дерево ID3 повертає лише ярлик, тож рядки > $7$ ($P = 0.529$) і $6$ ($P = 1.000$) для нього нерозрізненні — обидва «Так». > Наївний Байєс показує, що об'єкт $7$ — **граничний** (упевненість ледь за > $50\,\%$), а об'єкт $6$ — **безсумнівний**. Саме ця градація впевненості — > головна перевага ймовірнісного класифікатора, і саме її ви виводитимете на > середньому рівні домашнього завдання ([4task.md](4task.md)). **Відповідь:** обидва методи дають $100\,\%$ точності й **повний збіг** прогнозів (матриця невідповідності діагональна); наївний Байєс додатково оцінює впевненість кожного прогнозу. > **Зв'язок із домашнім завданням.** Саме ці кроки — оцінити ймовірності частотами, > обчислити апостеріорні ймовірності, за потреби згладити нулі та порівняти > прогнози з деревом ID3 — виконуватиме ваша програма для довільної вибірки CSV > ([4task.md](4task.md)). Ці $10$ об'єктів — зручний **тест**: подайте вибірку > «Спортивний канал» на вхід і переконайтесь, що програма відтворює стовпець > $P(\text{Так} \mid x)$ з таблиці Задачі 3.