В основе узла "XGBoost" лежит алгоритм градиентного бустинга на деревьях поиска решений или линейных моделях. Используется для решения задач классификации и регрессии.
Алгоритм работы градиентного бустинга:
Градиентный бустинг – алгоритм машинного обучения, который строит модель предсказания в виде ансамбля слабых предсказывающих моделей (в основном Дерево решений, но также есть вариант с линейными моделями). На каждой итерации вычисляется отклонение предсказаний уже обученного ансамбля (всех предыдущих построенных моделей) на обучающей выборке. Следующая добавляемая в ансамбль модель будет сводить среднее отклонение предыдущей к минимуму.
Новые деревья добавляются в ансамбль до тех пор, пока уменьшается ошибка, либо пока не выполнится одно из правил «ранней остановки».
Особенности реализации XGBoost (Extreme Gradient Boosting) в сравнении со стандартным алгоритмом градиентного бустинга:
XGBoost поддерживает как алгоритм предварительной сортировки, так и алгоритм на основе гистограммы.
- В данной реализации каждый лист дерева не проверяется на предмет того, что можно ли его разделить дальше. Здесь заранее задается максимальная глубина дерева, глубже которой узлы и листья не строятся. Далее после построения всех листьев до заданной глубины проверяется дает ли сплит (деление) в конкретном узле прирост информации (Information Gain). Для этого Information Gain сравнивается с заданным порогом, который настраивается экспериментальным путем. Если значение меньше порога, то листья этого узла отсекаются. Таким образом избегается переобучение
- Используется регуляризация для избежания малого количества наблюдений в листе, что также позволяет бороться с переобучением.
Список параметров узла представлен в таблице ниже.
Параметр | Возможные значения и ограничения | Описание | Группа параметров |
---|---|---|---|
Название | Ручной ввод | Название узла, которое будет отображаться в интерфейсе | Общий параметр |
Описание | Ручной ввод | Описание узла | Общий параметр |
Бустер | Раскрывающийся список со следующими значениями:
| Данный параметр задает тип базового алгоритма для бустинга. Предусмотрены следующие типы:
| Общий параметр |
Количество оценочных функций | Ручной ввод | Данный параметр задает число итераций градиентного бустинга | Общий параметр |
Скорость обучения | Ручной ввод | Данный параметр задает скорость обучения модели и контролирует, с каким весом предсказания каждой следующей модели суммируются с предсказаниями ансамбля. | Общий параметр |
Цель обучения для регрессии | Раскрывающийся список со следующими значениями:
| Данный параметр задает используемую при обучении функцию потерь. Предусмотрены следующие:
| Общий параметр |
Цель обучения для классификации | Раскрывающийся список со следующими значениями:
| Данный параметр задает используемую при обучении функцию потерь. Предусмотрены следующие:
| Общий параметр |
Дисперсия распределения Твиди | Ручной ввод | Данный параметр используется для управления дисперсией распределения Твиди. | Параметр актуален при заданных Цели обучения для регрессии = Регрессия Твиди и Метриках для валидации регрессии, связанными с распределением Твиди. |
Размер (%) валидационной выборки для ранней остановки | Ручной ввод | Данный параметр задает размер (%) валидационной выборки для ранней остановки | Общий параметр |
Количество итераций до ранней остановки | Ручной ввод | Данный параметр задает количество итераций до ранней остановки | Общий параметр |
Метрика для валидации регрессии | Раскрывающийся список со следующими значениями:
| Данный параметр задает метрику качества на валидационной выборке. Предусмотрены следующие метрики:
| Общие параметры |
Метрика для валидации классификации | Раскрывающийся список со следующими значениями:
| Данный параметр задает метрику качества на валидационной выборке. Предусмотрены следующие метрики:
| Общие параметры |
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.
- Таблица с метриками качества модели.
- Таблица с метриками качества модели задачи классификации.
- Таблица со списком переменных, сортированных по важности.