Запобігання перенавчанню в деревах рішень
Свайпніть щоб показати меню
Перш ніж перейти до реалізації дерева рішень за допомогою Python, слід обговорити важливу тему: переобучення — основна проблема, пов'язана з деревами рішень.
Нижче наведено приклад того, як дерево рішень підлаштовується під набір даних. Зверніть увагу, як модель адаптується до навчальних даних, відображаючи їхні закономірності та особливості:
Хоча модель ідеально підходить до навчальної вибірки без жодної помилки класифікації, проблема полягає в тому, що межі рішень є надто складними. Внаслідок цього точність на тестовій (або крос-валідаційній) вибірці буде значно нижчою, ніж на навчальній, що свідчить про перенавчання моделі.
Причина цього полягає в тому, що модель буде виконувати стільки розділень, скільки потрібно, щоб ідеально підлаштуватися під навчальні дані.
На щастя, дерево рішень має багато налаштувань, тому ми можемо змінювати його гіперпараметри, щоб мінімізувати перенавчання.
Максимальна глибина дерева
Глибина вузла — це відстань (по вертикалі) від вузла до кореневого вузла.
Можна обмежити максимальну глибину дерева рішень, зробивши його меншим і менш схильним до перенавчання. Для цього вузли рішень на максимальній глибині перетворюються на листові вузли.
Тут також наведено gif, який демонструє, як змінюється межа прийняття рішення при різних значеннях максимальної глибини:
Мінімальна кількість зразків
Ще один спосіб обмежити дерево — встановити мінімальну кількість зразків на листових вузлах. Це зробить модель простішою та стійкішою до викидів.
Можна побачити, як цей гіперпараметр впливає на межу рішення:
Обидва ці гіперпараметри доступні в реалізації Decision Tree бібліотеки scikit-learn.
За замовчуванням дерево не має обмежень: max_depth встановлено як None, тобто глибина не обмежена, а min_samples_leaf встановлено як 1.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат