Интервалы прогноза для градиентного бустинга в регрессии

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии показано, как использовать квантильную регрессию для создания интервалов прогноза с использованием scikit-learn. Мы сгенерируем синтетические данные для задачи регрессии, применим функцию к ним и создадим наблюдения целевой переменной с использованием логнормального распределения. Затем мы разделим данные на обучающую и тестовую выборки, подберем нелинейные квантильные и наименьших квадратов регрессоры и создадим равномерно распределенный набор значений входных переменных, охватывающий диапазон [0, 10]. Мы сравним предсказанный медиану с предсказанным средним, проанализируем метрики ошибки и калибруем доверительный интервал. Наконец, мы настроим гиперпараметры квантильных регрессоров.

Советы по использованию ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и приступить к практике в Jupyter Notebook.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Генерация синтетических данных

Мы сгенерируем синтетические данные для задачи регрессии, применяя функцию к равномерно отобранным случайным входным значениям. Чтобы сделать задачу интересной, мы генерируем наблюдения целевой переменной y в виде суммы детерминированного члена, вычисляемого функцией f, и случайного шумового члена, который подчиняется центрированному логнормальному распределению. Логнормальное распределение несимметрично и имеет длинный хвост: наблюдение больших выбросов вероятно, но наблюдение малых выбросов невозможно.

Разделение данных на обучающую и тестовую выборки

Мы разделим данные на обучающую и тестовую выборки.

Подгонка нелинейных квантильных и наименьших квадратов регрессоров

Мы подгоним модели градиентного бустинга, обученные с использованием квантильного потерь и alpha = 0,05, 0,5, 0,95. Модели, полученные для alpha = 0,05 и alpha = 0,95, формируют 90%-й доверительный интервал. Модель, обученная с alpha = 0,5, производит регрессию медианы.

Создание равномерно распределенного набора значений входных переменных для оценки

Мы создадим равномерно распределенный набор значений входных переменных, охватывающий диапазон [0, 10].

Построение истинной условной функции среднего f

Мы построим истинную условную функцию среднего f, предсказания условного среднего (потери равны квадрату ошибки), условную медиану и условной 90%-й интервал (от 5-го до 95-го условных перцентилей).

Анализ метрик ошибки

Мы измерим модели с помощью метрик mean_squared_error и mean_pinball_loss на обучающем наборе данных. В одной колонке показаны все модели, оцененные одной и той же метрикой.

Настройка гиперпараметров квантильных регрессоров

Мы настроим гиперпараметры нового регрессора 5-го перцентиля, выбрав наилучшие параметры модели методом кросс-валидации по pinball потере с alpha = 0,05. Затем настроим гиперпараметры для регрессора 95-го перцентиля.

Резюме

В этом практическом занятии показано, как использовать квантильную регрессию для создания интервалов прогноза с использованием scikit - learn. Мы сгенерировали синтетические данные для задачи регрессии, применили функцию к ним и создали наблюдения целевой переменной с использованием логнормального распределения. Мы разделили данные на обучающий и тестовый наборы, подобрали нелинейные квантильные и метод наименьших квадратов регрессоры и создали равномерно распределенный набор значений входных переменных, охватывающий диапазон [0, 10]. Мы сравнили предсказанную медиану с предсказанным средним, проанализировали метрики ошибки и калибровали доверительный интервал. Наконец, мы настроили гиперпараметры квантильных регрессоров.