Дерево без обмежень дало 100% на навчальних даних і 81% на нових. Що це означає?
Чому так. Дерево без обмежень завжди дійде до 100% на навчальних даних — у найгіршому випадку виділить кожному обʼєкту власний листок. Тому саме по собі це число не означає нічого. Головний індикатор — розрив: 19 відсоткових пунктів між train і test кажуть, що модель вивчила шум, а не закономірність.
Питання 2 / 8
У приросту інформації беруть зважене середнє ентропій нащадків. Що станеться, якщо взяти просте?
Чому так. Розріз, який відрізає одну точку, робить її вузол ідеально чистим (H = 0). При простому середньому половина доданків обнуляється, і такий безглуздий розріз виходить майже найкращим. Зважування дає вузлу з однієї точки вагу 1/N — і він майже не впливає на результат. Просте й зважене середнє збігаються лише тоді, коли нащадки однакового розміру.
Питання 3 / 8
Ознаку «витрати» виміряли не в тисячах гривень, а в копійках — усі значення помножились на 100 000. Що зміниться в навченому дереві?
Чому так. Питання дерева — це порівняння «ознака ≤ поріг». Множення ознаки на додатну сталу не змінює порядок обʼєктів, тому не змінює ні набір кандидатів-розрізів, ні їхній приріст: поріг просто перерахується в нових одиницях. Саме тому деревам, на відміну від kNN і градієнтних методів, стандартизація не потрібна. А от поворот системи координат дерево ламає — це вже інша історія.
Питання 4 / 8
На наших даних найкращий розріз за витратами дає приріст 0.171 біт, за стажем — 0.101. Що зробить алгоритм?
Чому так. Алгоритм жадібний: у кожному вузлі він бере локально найкращий розріз тут і зараз, не заглядаючи на два кроки вперед і не переглядаючи вже зроблений вибір. Побудувати доведено оптимальне дерево — NP-складна задача, тому жадібність тут не лінощі, а необхідність. Нахилених розрізів дерево не робить взагалі: кожне питання стосується однієї ознаки.
Питання 5 / 8
Чому дерева міряють безлад через Джині або ентропію, а не через частку помилок більшості?
Чому так. Помилка більшості 1 − max p — кусково-лінійна функція, тому дуже часто два розрізи з різним складом нащадків дають однакове значення, хоча один явно кращий. Опуклі міри розрізняють такі випадки й «бачать» прогрес там, де точність його не помічає. Швидкість тут ні до чого — навпаки, ентропія з логарифмами повільніша за Джині.
Питання 6 / 8
Ти прибрав із вибірки 5 випадкових клієнтів, навчив дерево заново — і корінь змінився з «витрати» на «стаж». Що це?
Чому так. Кандидати на корінь часто мають майже однаковий приріст — скажімо, 0.181 і 0.179. Алгоритм детермінований і бере максимум, тож мала зміна даних міняє порядок кандидатів, і виграє вчорашній другий. Корінь інший — і вся структура під ним будується заново. Це не баг налаштування, а властивість алгоритму, і лікується вона ансамблем, а не seed-ом.
Питання 7 / 8
Дерево з min_samples_leaf = 1 усіяне крихітними острівцями навколо окремих точок. Ти підняв параметр до 20. Що станеться з межею?
Чому так. Острівці — це листки з одного-двох обʼєктів; заборона на малі листки знищує саме їх, бо вони найдешевші. Великі прямокутники, під якими стоять десятки обʼєктів, виживають. Межа при цьому лишається ламаною з відрізків, паралельних осям: жодне гальмо не вміє зробити дерево гладким. Навчальна точність при цьому обовʼязково впаде — саме тому вона й перестає бути 100%.
Питання 8 / 8
Класична задача «виключне АБО»: два класи розкладені шахівницею 2×2. Чому жадібне дерево тут спотикається?
Чому так. У XOR будь-який одиничний розріз ділить вибірку на дві половини з тим самим складом класів, що й у батька: IG = 0, і жадібний критерій каже «різати нема сенсу». А два розрізи поспіль дають ідеальне дерево. Межі тут якраз паралельні осям — проблема не в геометрії, а в тому, що жадібність не заглядає на крок уперед.