3. Аудиторні задачі з розв’язаннями
Ці задачі розбирають в аудиторії «руками». Вони показують ті самі обчислення,
які потім автоматизує домашня програма (4task.md). Теорія й формули —
у методичних вказівках. Дані задач відрізняються від
демонстраційного прикладу у 2method.md.
Задача 1. Міри інтересовності на малій базі
Дано транзакційну базу міні-маркету (N=5 транзакцій):
| Транзакція |
Елементи |
| t1 |
Кола, Чипси |
| t2 |
Кола, Чипси, Пиво |
| t3 |
Кола, Горішки |
| t4 |
Чипси, Пиво, Горішки |
| t5 |
Кола, Чипси, Пиво, Горішки |
Знайти: підтримку наборів {Кола}, {Чипси},
{Пиво}, {Кола,Чипси}, {Чипси,Пиво};
а також достовірність, підйом і переконливість правил
{Чипси}⇒{Пиво},
{Пиво}⇒{Чипси} та
{Кола}⇒{Чипси}.
Розв’язання. Підрахуємо лічильники транзакцій.
- Кола — у t1,t2,t3,t5: лічильник 4, supp=54=0.8.
- Чипси — у t1,t2,t4,t5: лічильник 4, supp=54=0.8.
- Пиво — у t2,t4,t5: лічильник 3, supp=53=0.6.
- {Кола,Чипси} — у t1,t2,t5: supp=53=0.6.
- {Чипси,Пиво} — у t2,t4,t5: supp=53=0.6.
Правило {Чипси}⇒{Пиво}:
conf=supp({Чипси})supp({Чипси,Пиво})=0.80.6=0.75,lift=supp({Пиво})0.75=0.60.75=1.25,
conv=1−conf1−supp({Пиво})=1−0.751−0.6=0.250.4=1.6.
Правило {Пиво}⇒{Чипси} (той самий набір, інший
напрямок):
conf=0.60.6=1.0,lift=0.81.0=1.25,conv=1−1.01−0.8→∞.
Підйом обох напрямків однаковий (1.25), бо симетричний; достовірність —
різна (0.75 проти 1.0): усі покупці пива беруть чипси, але не навпаки.
Переконливість напрямку «Пиво ⇒ Чипси» нескінченна — у цій базі
правило без винятків.
Правило {Кола}⇒{Чипси}:
conf=supp({Кола})supp({Кола,Чипси})=0.80.6=0.75,lift=0.80.75=0.9375<1,
conv=1−0.751−0.8=0.250.2=0.8<1.
Достовірність висока (0.75), але підйом менший за одиницю: кола й чипси
з’являються разом навіть трохи рідше, ніж за незалежності (обидва просто дуже
поширені). Це правило оманливо-достовірне — його відкидають за підйомом.
Відповідь: supp({Кола})=supp({Чипси})=0.8,
supp({Пиво})=0.6,
supp({Кола,Чипси})=supp({Чипси,Пиво})=0.6;
{Чипси}⇒{Пиво}: conf=0.75, lift=1.25, conv=1.6;
{Пиво}⇒{Чипси}: conf=1.0, lift=1.25, conv=∞;
{Кола}⇒{Чипси}: conf=0.75, lift=0.9375, conv=0.8.
Задача 2. Apriori «руками»
Дано транзакційну базу фруктової лавки (N=6):
| Транзакція |
Елементи |
| t1 |
Яблуко, Банан |
| t2 |
Яблуко, Банан, Виноград |
| t3 |
Яблуко, Виноград |
| t4 |
Банан, Виноград |
| t5 |
Яблуко, Банан, Виноград, Апельсин |
| t6 |
Банан, Апельсин |
Знайти всі часті 1- та 2-набори за smin=0.5 (лічильник ≥3) і
згенерувати з них правила з достовірністю ≥cmin=0.7.
Розв’язання. Крок 1 — часті 1-набори.
| 1-набір |
Лічильник |
Підтримка |
Частий? |
| {Яблуко} |
4 |
0.67 |
так |
| {Банан} |
5 |
0.83 |
так |
| {Виноград} |
4 |
0.67 |
так |
| {Апельсин} |
2 |
0.33 |
ні |
Апельсин відпадає (і не з’явиться в жодному кандидаті).
Крок 2 — часті 2-набори. З’єднання трьох частих 1-наборів дає (23)=3
кандидати; відсів нікого не викидає (усі 1-підмножини часті). Рахуємо:
| 2-набір |
Транзакції |
Лічильник |
Підтримка |
Частий? |
| {Яблуко,Банан} |
t1,t2,t5 |
3 |
0.5 |
так |
| {Яблуко,Виноград} |
t2,t3,t5 |
3 |
0.5 |
так |
| {Банан,Виноград} |
t2,t4,t5 |
3 |
0.5 |
так |
Усі три часті. Єдиний кандидат-трійка {Яблуко,Банан,Виноград}
(усі його пари часті, тож відсів його лишає) трапляється лише в t2,t5:
supp=62≈0.33<0.5 — нечастий. Отже,
частих наборів розміру ≥3 немає.
Крок 3 — генерація правил (cmin=0.7). З кожного частого 2-набору
виходить два правила; достовірність
conf=supp(пари)/supp(умови):
| Правило |
supp(умови) |
conf |
≥0.7? |
lift |
| {Яблуко}⇒{Банан} |
4/6 |
0.75 |
так |
0.90 |
| {Банан}⇒{Яблуко} |
5/6 |
0.60 |
ні |
0.90 |
| {Яблуко}⇒{Виноград} |
4/6 |
0.75 |
так |
1.125 |
| {Виноград}⇒{Яблуко} |
4/6 |
0.75 |
так |
1.125 |
| {Банан}⇒{Виноград} |
5/6 |
0.60 |
ні |
0.90 |
| {Виноград}⇒{Банан} |
4/6 |
0.75 |
так |
0.90 |
Поріг достовірності проходять чотири правила. Правила з умовою «Банан»
(supp=5/6) відпадають: банан надто поширений, тож частка його
співпокупців з іншим товаром мала.
Відповідь: часті 1-набори — {Яблуко},{Банан},{Виноград};
часті 2-набори — {Яблуко,Банан},{Яблуко,Виноград},{Банан,Виноград}
(усі з supp=0.5); частих 3-наборів немає. Правила з
conf≥0.7: {Яблуко}⇒{Банан},
{Яблуко}⇒{Виноград},
{Виноград}⇒{Яблуко},
{Виноград}⇒{Банан} (усі conf=0.75).

Задача 3. Eclat та відбір цікавих правил
Дано ту саму базу, що в Задачі 2. Перевірити результат Задачі 2
алгоритмом Eclat (через tid-множини) і відібрати справді цікаві правила
серед тих, що пройшли поріг достовірності, скориставшись підйомом і
переконливістю.
Розв’язання. Вертикальний формат (tid-множини):
tid(Яблуко)={1,2,3,5},tid(Банан)={1,2,4,5,6},tid(Виноград)={2,3,4,5}.
Підтримку пар дістаємо перетином, не переглядаючи транзакцій:
tid(Яблуко)∩tid(Виноград)={2,3,5} (∣⋅∣=3),tid(Яблуко)∩tid(Банан)={1,2,5} (3),
tid(Банан)∩tid(Виноград)={2,4,5} (3).
Усі три пари мають лічильник 3 — збіг із Задачею 2. Для трійки перетинаємо далі:
(tid(Яблуко)∩tid(Виноград))∩tid(Банан)={2,3,5}∩{1,2,4,5,6}={2,5} (2<3),
тобто {Яблуко,Банан,Виноград} нечастий — знову збіг.
Відбір цікавих правил. З чотирьох правил, що пройшли cmin (Задача 2),
залишаємо ті, де lift>1, і впорядковуємо за переконливістю:
| Правило |
conf |
lift |
conv |
Цікаве? |
| {Яблуко}⇒{Виноград} |
0.75 |
1.125 |
1.33 |
так |
| {Виноград}⇒{Яблуко} |
0.75 |
1.125 |
1.33 |
так |
| {Яблуко}⇒{Банан} |
0.75 |
0.90 |
0.67 |
ні |
| {Виноград}⇒{Банан} |
0.75 |
0.90 |
0.67 |
ні |
Хоча всі чотири мають однакову достовірність 0.75, лише пара «Яблуко —
Виноград» має lift>1 і conv>1 — це справжній
позитивний зв’язок. Правила з наслідком «Банан» (lift=0.9) —
оманливо-достовірні через велику поширеність банана.
Відповідь: Eclat підтверджує часті набори Задачі 2; єдиний цікавий зв’язок —
взаємне притягання Яблуко ↔ Виноград (lift=1.125,
conv=1.33).

Зв’язок із домашнім завданням. Саме ці кроки — прочитати транзакції,
порахувати підтримку наборів, відсіяти нечасті за smin, згенерувати
правила й відібрати цікаві за cmin, підйомом і переконливістю —
виконуватиме ваша програма для довільного файлу транзакцій (4task.md).
Задача 2 — зручний тест: подайте ці шість транзакцій на вхід за
smin=0.5, cmin=0.7 й переконайтесь, що програма повертає ті
самі три часті 2-набори та чотири правила.
Laboratory/Laboratory11/3classroom.md · 13.7 KB · updated 2026-08-05 09:55