В основе узла "XGBoost" лежит алгоритм градиентного бустинга на деревьях поиска решений или линейных моделях. Используется для решения задач классификации и регрессии.
Алгоритм работы градиентного бустинга:
Градиентный бустинг – алгоритм машинного обучения, который строит модель предсказания в виде ансамбля слабых предсказывающих моделей (в основном Дерево решений, но также есть вариант с линейными моделями). На каждой итерации вычисляется отклонение предсказаний уже обученного ансамбля (всех предыдущих построенных моделей) на обучающей выборке. Следующая добавляемая в ансамбль модель будет сводить среднее отклонение предыдущей к минимуму.
Новые деревья добавляются в ансамбль до тех пор, пока уменьшается ошибка, либо пока не выполнится одно из правил «ранней остановки».
Особенности реализации XGBoost (Extreme Gradient Boosting) в сравнении со стандартным алгоритмом градиентного бустинга:
XGBoost поддерживает как алгоритм предварительной сортировки, так и алгоритм на основе гистограммы.
- В данной реализации каждый лист дерева не проверяется на предмет того, что можно ли его разделить дальше. Здесь заранее задается максимальная глубина дерева, глубже которой узлы и листья не строятся. Далее после построения всех листьев до заданной глубины проверяется дает ли сплит (деление) в конкретном узле прирост информации (Information Gain). Для этого Information Gain сравнивается с заданным порогом, который настраивается экспериментальным путем. Если значение меньше порога, то листья этого узла отсекаются. Таким образом избегается переобучение
- Используется регуляризация для избежания малого количества наблюдений в листе, что также позволяет бороться с переобучением.
Список параметров узла представлен в таблице (Таблица 36).
Таблица 36 — Параметры узла «Градиентный бустинг (XGBOOST)»
Параметр |
Возможные значения и ограничения |
Описание |
Группа параметров |
---|---|---|---|
Название |
Ручной ввод |
Название узла, которое будет отображаться в интерфейсе |
Общий параметр |
Описание |
Ручной ввод |
Описание узла |
Общий параметр |
Бустер |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает тип базового алгоритма для бустинга. Предусмотрены следующие типы:
|
Общий параметр |
Количество оценочных функций |
Ручной ввод |
Данный параметр задает число итераций градиентного бустинга |
Общий параметр |
Скорость обучения |
Ручной ввод |
Данный параметр задает скорость обучения модели и контролирует, с каким весом предсказания каждой следующей модели суммируются с предсказаниями ансамбля. |
Общий параметр |
Цель обучения для регрессии |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает используемую при обучении функцию потерь. Предусмотрены следующие:
|
Общий параметр |
Цель обучения для классификации |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает используемую при обучении функцию потерь. Предусмотрены следующие:
|
Общий параметр |
Дисперсия распределения Твиди |
Ручной ввод |
Данный параметр используется для управления дисперсией распределения Твиди. |
Параметр актуален при заданных Цели обучения для регрессии = Регрессия Твиди и Метриках для валидации регрессии, связанными с распределением Твиди. |
Размер (%) валидационной выборки для ранней остановки |
Ручной ввод |
Данный параметр задает размер (%) валидационной выборки для ранней остановки |
Общий параметр |
Количество итераций до ранней остановки |
Ручной ввод |
Данный параметр задает количество итераций до ранней остановки |
Общий параметр |
Метрика для валидации регрессии |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает метрику качества на валидационной выборке. Предусмотрены следующие метрики:
|
Общие параметры |
Метрика для валидации классификации |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает метрику качества на валидационной выборке. Предусмотрены следующие метрики:
|
Общие параметры |
Cutoff для метрики error |
Ручной ввод |
Данный параметр задает порог отсечения, чтобы относить новые примеры к одному из двух классов (задача бинарной классификации). |
Общие параметры |
Способ определения важности переменных |
Раскрывающийся список со следующими значениями:
|
Данный параметр определяет метод оценки важности переменных. Предусмотрены следующие методы:
|
Параметры для Tree Booster (Бустер = gbtree). |
Количество параллельных потоков |
Ручной ввод |
Данный параметр задает количество параллельных потоков, используемых для запуска xgboost |
Общие параметры |
Seed |
Ручной ввод числового значения |
Начальное числовое значение для генератора случайных чисел |
Общие параметры |
Метод построения дерева |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает метод построения дерева. Предусмотрены следующие методы:
|
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Метод добавление узлов к дереву |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает способ добавления новых узлов к дереву. Предусмотрены следующие методы:
|
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Количество параллельных деревьев |
Ручной ввод |
Данный параметр задает количество параллельных деревьев, построенных на каждой итерации |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Максимальная глубина дерева |
Ручной ввод |
Данный параметр задает максимальную глубину дерева |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Минимальное снижение потери для разбиения |
Ручной ввод |
Данный параметр задает значение минимального уменьшения функции потерь для разбиения |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Максимальное количество листов |
Ручной ввод |
Данный параметр задает максимальное количество листов. |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Максимальное количество бинов для интервальных переменных |
Ручной ввод |
Данный параметр задает максимальное количество бинов для интервальных переменных. |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Относительное количество бинов (sketch_eps) |
Ручной ввод |
Данный параметр задает относительное количество бинов, примерно соответствующее 1 / sketch_eps. По сравнению с прямым выбором количества бинов дает теоретическую гарантию точности набросков (sketch). |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Соотношение колонок для каждого дерева |
Ручной ввод |
Данный параметр задает долю переменных, используемых на каждой итерации (при построении каждого дерева). |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Соотношение колонок для каждого уровня |
Ручной ввод |
Данный параметр задает долю подвыборки признаков, которые будут использованы для обучения каждого уровня. |
|
Соотношение колонок для каждого разбиения |
Ручной ввод |
Данный параметр задает долю подвыборки признаков, которые будут использованы для каждого разделения (узла). |
|
Минимальный вес для потомка |
Ручной ввод |
Данный параметр задает минимальный вес потомка, необходимый для разделения. |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Максимальный шаг в листе |
Ручной ввод |
Данный параметр задает максимальный шаг обновления для каждого выходного листа. |
Параметры для Tree Booster и DART (Бустер = gbtree или dart) |
Соотношение случайной подвыборки в обучающей выборке |
Ручной ввод |
Данный параметр задает долю объектов обучающей выборки, используемых на каждой итерации. |
Бэггинг |
Метод сэмплинга |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает метод сэмплинга. Предусмотрены следующие методы:
|
Бэггинг |
L1 регуляризатор |
Ручной ввод |
Регуляризация добавляет ограничения алгоритма относительно аспектов модели, которые не зависят от данных для обучения. Регуляризация обычно используется, чтобы избежать переобучения. |
Регуляризация |
L2 регуляризатор |
Ручной ввод |
Регуляризация L2 ограничивает чрезмерный рост какой-либо отдельной координаты весового вектора. Регуляризация L2 полезна в том случае, если целью является создание модели, имеющей в целом малые значения веса. |
Регуляризация |
Тип сэмплинга |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает тип алгоритма сэмплинга. Предусмотрены следующие:
|
Параметры для DART (Бустер = dart) |
Тип алгоритма нормализации |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает тип алгоритма нормализации. Предусмотрены следующие варианты:
|
Параметры для DART (Бустер = dart) |
Доля отбрасываемых деревьев |
Ручной ввод |
Данный параметр задает долю отбрасываемых деревьев |
Параметры для DART (Бустер = dart) |
Отбрасывать хотя бы одно дерево |
Чекбокс |
Выбор данного чекбокса указывает на то, что по крайней мере одно дерево будет отбрасываться |
Параметры для DART (Бустер = dart) |
Вероятность пропуска отбрасывания деревьев |
Ручной ввод |
Данный параметр задает вероятность пропуска процедуры отбрасывания деревьев. |
Параметры для DART (Бустер = dart) |
Алгоритм |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает алгоритм для обучения линейной модели. Предусмотрены следующие алгоритмы:
|
Параметры для Linear Booster (Бустер = gblinear) |
Метод выбора переменных |
Раскрывающийся список со следующими значениями:
|
Данный параметр задает метод выбора переменных. Предусмотрены следующие методы:
|
Параметры для Linear Booster (Бустер = gblinear) |
Количество отбираемых переменных для жадных алгоритмов |
Числовое значение |
|
Параметры для Linear Booster (Бустер = gblinear) |
Результаты выполнения узла:
Узел «Градиентный бустинг (XGBOOST)» имеет разные результаты в зависимости от решаемой задачи.
Результаты регрессии представлены следующими объектами:
- Тепловые карты обучающей, валидационной и тестовой выборок.
- Таблица с метриками качества модели.
- Таблица со списком переменных, сортированных по важности.
Результаты многоклассовой классификации представлены следующими объектами:
- Таблица с метриками качества модели.
- Таблица с метриками качества модели задачи классификации.
- Таблица со списком переменных, сортированных по важности.
Результаты бинарной классификации представлены следующими объектами:
- График ROC.
- График Lift.
- График Cumulative Lift.
- График Gain.
- График Cumulative Gain.
- Таблица с метриками качества модели.
- Таблица с метриками качества модели задачи классификации.
- Таблица со списком переменных, сортированных по важности.