Це надмірна оснащення, що ви не повинні вибирати модель, яка робить надмірну, навіть якщо її тестова помилка менша? Ні. Але ви повинні мати обґрунтування для його вибору.
Така поведінка не обмежується XGBoost. Це загальна нитка серед усіх технік машинного навчання; знаходження правильного компромісу між недостатнім та надмірним. Офіційне визначення - компромісна зміна (Вікіпедія) .
Компромісійне зміщення
Далі наведено спрощення компромісу з відхиленням, щоб обґрунтувати вибір вашої моделі.
Ми говоримо, що модель має високий ухил, якщо вона не в змозі повною мірою використовувати інформацію в даних. Він занадто покладається на загальну інформацію, як-от найчастіший випадок, середня відповідь або кілька потужних ознак. Зміщення може виходити з неправильних припущень, наприклад, припускаючи, що змінні є нормально розподіленими або що модель лінійна.
Ми говоримо, що модель має велику дисперсію, якщо вона використовує занадто багато інформації з даних. Він покладається на інформацію, яка відштовхується лише у представленому йому навчальному наборі, який недостатньо добре узагальнює. Як правило, модель сильно зміниться, якщо змінити навчальний набір, звідси і назва "велика дисперсія".
Ці визначення дуже схожі на визначення недоцільності та подолання. Однак ці визначення часто занадто спрощені, щоб бути протилежними, як в
- Ця модель є недостатньою, якщо і тренування, і помилка тесту високі. Це означає, що модель занадто проста.
- Модель є придатною, якщо похибка тесту вища, ніж помилка навчання. Це означає, що модель занадто складна.
Ці спрощення, звичайно, є корисними, оскільки допомагають вибрати правильну складність моделі. Але вони не помічають важливого моменту, того, що (майже) кожна модель має як зміщення, так і дисперсію. Опис недоопрацювання / подолання говорить вам, що у вас занадто багато упередженості / занадто велика дисперсія, але у вас (майже) завжди є те і інше .
Якщо ви хочете отримати більше інформації про зміщення відхилення відхилення, вони є корисною візуалізацією та хорошими ресурсами, доступними через google. Кожен підручник з машинного навчання матиме розділ про компромісне зміщення, ось декілька
- Вступ до статистичного навчання та Елементи статистичного навчання (доступні тут) .
- Розпізнавання образів та машинне навчання, Крістофер Бішоп.
- Машинне навчання: ймовірнісна перспектива Кевіна Мерфі.
Крім того, приємна публікація в блозі, яка допомогла мені зрозуміти, - це розуміння Скотта Фортмана-Роу компромісу зміщення .
Додаток до вашої проблеми
Отже, у вас є дві моделі,
МАРСXGBoostТренуйте МАЕ∼ 4.0∼ 0,3Тест МАЕ∼ 4.0∼ 2.4Низька дисперсія, більший ухил ,Більш висока дисперсія, менша зміщення ,
і вам потрібно вибрати один. Для цього потрібно визначити, що є кращою моделлю. Параметри, які повинні бути включені у ваші рішення, - це складність та ефективність моделі.
- Скільки «одиниць» складності ви готові обміняти на одну «одиницю» продуктивності?
- Більш висока складність пов'язана з вищою дисперсією. Якщо ви хочете, щоб ваша модель добре узагальнила набір даних, який трохи відрізняється від тієї, на якій ви тренувались, ви повинні прагнути до меншої складності.
- Якщо ви хочете модель, яку ви можете легко зрозуміти, ви можете це зробити ціною продуктивності, зменшивши складність моделі.
- Якщо ви прагнете досягти найкращої продуктивності набору даних, яка, як ви знаєте, походить з того самого генеративного процесу, що і ваш навчальний набір, ви можете маніпулювати складністю для оптимізації вашої тестової помилки та використовувати це як показник. Це відбувається, коли ваш навчальний набір випадково відбирається з більшого набору, і ваша модель буде застосована до цього набору. Це стосується більшості змагань Kaggle, наприклад.
Мета тут - не знайти модель, яка «не перевершує». Потрібно знайти модель, яка має найкращі компромісні зміни. У цьому випадку я можу стверджувати, що зменшення упередженості, здійснене моделлю XGBoost, є досить хорошим, щоб виправдати збільшення дисперсії.
Що ти можеш зробити
Однак, напевно, ви можете зробити краще, налаштувавши гіперпараметри.
Збільшення кількості раундів та зниження рівня навчання - це можливість. Щось "дивно" щодо збільшення градієнта полягає в тому, що запуск його за межі того пункту, коли помилка тренування досягла нуля, здається, все ще покращує помилку тесту (як обговорювалося тут: Чи глибше краще лише тоді, коли дрібненьке добре? ). Ви можете спробувати навчити свою модель трохи довше на своєму наборі даних, як тільки встановите інші параметри,
1 / 214. Це може бути жаргон, але якщо ваші особливості мають ступінь взаємодії 3 (Приблизно: Комбінація чотирьох особливостей не є більш потужною, ніж комбінація 3 цих ознак + четверта), то вирощування дерев розміром більше 3 становить згубний. Два дерева глибини три матимуть більше узагальнюючої сили, ніж одне дерево глибини чотири. Це досить складна концепція, і я зараз не вдаваюся в неї, але ви можете переглянути цю збірку паперів для початку. Також зауважте, що глибокі дерева призводять до великої дисперсії!
Використання піддиагностики, відомої як мішок , чудово зменшує дисперсію. Якщо ваші окремі дерева мають велику дисперсію, пакетування буде середньостатистичним, а середнє має меншу дисперсію, ніж окремі дерева. Якщо після налаштування глибини ваших дерев ви все ще зустрічаєтеся з великою дисперсією, спробуйте збільшити підсистемування (тобто зменшити частку використаних даних). Підсистема простору функцій також досягає цієї мети.