Як реалізувати квантильну регресію в XGBoost версії 1.6.2

Як реалізувати квантильну регресію в XGBoost версії 1.6.2

3 Березня 2024 в 16:09 26

Квантильна регресія є важливим інструментом в аналізі даних, особливо коли мова йде про прогнозування розподілу цільової змінної, а не лише її середнього значення. Вона дає можливість оцінювати різні квантилі (наприклад, медіану, нижній чи верхній квартиль), що особливо корисно при роботі з асиметричними розподілами або коли потрібно знизити вплив викидів. Нові версії багатьох бібліотек машинного навчання, включаючи XGBoost, вже містять вбудовані засоби для квантильної регресії, однак користувачі старіших версій можуть зіткнутися з певними труднощами. У цій статті ми обговоримо, як реалізувати квантильну регресію в XGBoost версії 1.6.2, використовуючи власні функції.

Насамперед, варто встановити потрібну версію XGBoost:

Щоб реалізувати квантильну регресію, необхідно визначити власну функцію втрат, яка буде мінімізувати різницю між прогнозованими та фактичними значеннями для заданого квантиля. Для квантилів 0.05, 0.5 та 0.95 функція втрат може бути визначена наступним чином:

Ця функція втрат враховує асиметрію квантильної регресії, покараючи перевищення та недооцінку нерівномірно в залежності від обраного квантиля. Наступним кроком є інтеграція цієї функції в процес навчання XGBoost.

Для використання цієї функції втрат з XGBoost необхідно визначити власну функцію об’єктиву, яка адаптує вихід функції quantile_loss до формату, очікуваного XGBoost:

У цьому випадку grad та hess відповідають першій та другій похідній функції втрат відповідно, які XGBoost використовує для оптимізації моделі.

Після визначення функції об’єктиву можна приступити до тренування моделі XGBoost, передаючи її як параметр obj у метод train бібліотеки:

В цьому прикладі для тренування моделі використовується медіана (квантиль 0.5) як цільовий квантиль. Однак, змінивши параметр у виклику xgb_quantile_obj, можна адаптувати модель для прогнозування інших квантилів.

Завершальним кроком є використання натренованої моделі для прогнозування та оцінка її ефективності. Важливо зауважити, що під час оцінки ефективності моделі квантильної регресії слід використовувати метрики, які відображають специфіку цієї задачі, такі як середня абсолютна помилка в процентах (MAPE) або квантильна помилка.

У підсумку, квантильна регресія у XGBoost версії 1.6.2 вимагає від користувачів вміння адаптувати стандартні інструменти та підходи для реалізації специфічних цілей. Використання власних функцій втрат та об’єктивів дозволяє гнучко налаштовувати процес навчання і досягати високої точності прогнозування для різних квантилів цільової змінної. Такий підхід може бути застосований не тільки в XGBoost, але й в інших інструментах машинного навчання, відкриваючи нові можливості для аналізу даних та прогнозування.