В основе узла «LightGBM» лежит реализация алгоритма градиентного бустинга на деревьях поиска решений, который включает в себя две ключевые идеи: GOSS и EFB.
Используется для решения задач классификации и регрессии.
Алгоритм работы градиентного бустинга:
Градиентный бустинг – алгоритм машинного обучения, который строит модель предсказания в виде ансамбля слабых предсказывающих моделей (в основном Дерево решений). На каждой итерации вычисляется отклонение предсказаний уже обученного ансамбля на обучающей выборке. Следующая добавляемая в ансамбль модель будет сводить среднее отклонение предыдущей к минимуму.
Новые деревья добавляются в ансамбль до тех пор, пока ошибка уменьшается, либо пока не выполняется одно из правил «ранней остановки».
Особенности реализации LightGBM:
- Используется алгоритм роста дерева по листьям (в каждом узле рассчитывается дает ли разделение листа прирост информации – inf gain), поэтому также необходимо ограничивать построение дерева максимальной глубиной для предотвращения переобучения.
- LightGBM использует алгоритмы на основе гистограмм, которые разбивают значения непрерывных признаков (атрибутов) на дискретные ячейки.
- Градиентная односторонняя выборка (Gradient-based One-Side Sampling - GOSS)
Для расчета берутся не все наблюдения, а лишь с большой ошибкой и небольшая часть наблюдений с маленькой ошибкой. Данный подход позволяет уменьшить расчетную часть алгоритма, за счет чего растет скорость расчета.
При расчете прироста информации GOSS вводит постоянный множитель для экземпляров данных с небольшими градиентами. Т. е. GOSS сначала сортирует наблюдения в соответствии с абсолютными значениями их градиентов и выбирает верхние экземпляры a*100% (a - коэффициент сохранения большого градиента). Затем он случайным образом отбирает наблюдения b*100% (b - коэффициент сохранения большого градиента) из остальных данных. После этого GOSS усиливает выборочные данные с небольшими градиентами на константу (1-a)/b при расчете прироста информации. Это позволяет учитывать исходное распределение данных.
- Встроенная кодировка категориальных переменных:
Считается сумма градиентов по каждой категории и категории объединяются в группы.
- Объединение взаимоисключающих признаков (Exclusive Feature Bundling - EFB)
Данный подход подразумевает объединение разреженных (в основном нулевых взаимоисключающих признаков, таких как категориальные переменные, закодированные унитарным кодированием.
Переменные, которые не принимают одновременно ненулевые значения, можно «связать». Уменьшаем количество переменных, объединяя взаимоисключающие в 1 переменную, увеличивается скорость расчета.
Список параметров узла представлен в таблице ниже.
Параметр | Возможные значения и ограничения | Описание | Группа параметров |
---|---|---|---|
Название | Ручной ввод | Название узла, которое будет отображаться в интерфейсе | Общий параметр |
Описание | Ручной ввод | Описание узла | Общий параметр |
Бустер | Раскрывающийся список со следующими значениями:
| Данный параметр задает тип базового алгоритма для бустинга. Предусмотрены следующие типы:
| Общий параметр |
Линейные модели в листах | Чекбокс | Выбор данного чекбокса указывает на необходимость обучения линейных моделей в листах каждого дерева | Общий параметр |
Количество оценочных функций | Ручной ввод | Данный параметр задает число итераций градиентного бустинга | Общий параметр |
Скорость обучения | Ручной ввод | Данный параметр задает скорость обучения модели и контролирует, с каким весом предсказания каждой следующей модели суммируются с предсказаниями ансамбля. | Общий параметр |
Цель обучения для регрессии | Раскрывающийся список со следующими значениями:
| Данный параметр задает используемую при обучении функцию потерь. Предусмотрены следующие:
| Общий параметр |
Цель обучения для классификации | Раскрывающийся список со следующими значениями:
| Данный параметр задает используемую при обучении функцию потерь. Предусмотрены следующие:
| Общий параметр |
Метрика для валидации регрессии | Раскрывающийся список со следующими значениями: | Данный параметр задает метрику качества на валидационной выборке. Предусмотрены следующие метрики:
| Общий параметр |
Метрика для валидации классификации | Раскрывающийся список со следующими значениями:
| Данный параметр задает метрику качества на валидационной выборке. Предусмотрены следующие метрики:
| Общий параметр |
Количество итераций до ранней остановки | Ручной ввод | Данный параметр задает количество итераций до ранней остановки | Общий параметр |
Размер (%) валидационной выборки для ранней остановки | Ручной ввод Число больше 0 и меньше 1 | Данный параметр задает размер (%) валидационной выборки для ранней остановки | Общий параметр |
Seed | Ручной ввод числового значения | Начальное числовое значение для генератора случайных чисел | Общий параметр |
Количество параллельных потоков | Ручной ввод | Данный параметр задает количество параллельных потоков, используемых для запуска | Общий параметр |
Максимальная глубина дерева | Ручной ввод | Данный параметр задает максимальную глубину дерева. | Построение дерева |
Максимальное количество листов | Ручной ввод | Данный параметр задает максимальное количество листов в дереве | Построение дерева |
Минимальное количество наблюдений для создания бина | Ручной ввод | Данный параметр задает количество наблюдений для создания бина | Построение дерева |
Максимальное количество бинов | Ручной ввод | Данный параметр задает максимальное количество бинов, в которые будут группироваться значения признаков | Построение дерева |
Минимальное количество наблюдений в бине | По умолчанию – 3 | Данный параметр задает минимальное число наблюдений в бине | Построение дерева |
Использовать EFB | Чекбокс | Выбор данного чекбокса указывает на необходимость использовать EFB | Построение дерева |
Минимальный gain для разбиения | Ручной ввод | Данный параметр задает минимальное снижение потерь, необходимое для создания дальнейшего раздела на листовом узле дерева | Построение дерева |
Минимальный вес для разбиения | По умолчанию – 0,0001 | Данный параметр задает минимальную сумма весов экземпляров (Гессиан), необходимую для дочернего элемента (листа) | Построение дерева |
Минимальное количество наблюдений в листе | По умолчанию – 20 | Данный параметр задает минимальное количество наблюдений в листе | Построение дерева |
Доля выборки признаков в каждой итерации | По умолчанию – 1 | Данный параметр задает долю переменных, используемых на каждой итерации (при построении каждого дерева). | Построение дерева |
Доля выборки признаков в каждом узле дерева | По умолчанию – 1 | Данный параметр задает долю подвыборки признаков, которые будут использованы для каждого разделения (узла). | Построение дерева |
Использовать экстремально рандомизированные деревья | Чекбокс | Выбор данного чекбокса указывает на необходимость использования экстремально рандомизированных деревьев. | Построение дерева |
Доля отбрасываемых деревьев | Ручной ввод | Данный параметр задает долю отбрасываемых деревьев | Параметры для DART (Бустер = dart) |
Максимальное количество отбрасываемых деревьев | По умолчанию – 50 | Данный параметр задает максимальное число отбрасываемых деревьев | Параметры для DART (Бустер = dart) |
Вероятность отсутствия отбрасывания | Ручной ввод | Данный параметр задает вероятность пропуска процедуры отбрасывания деревьев. | Параметры для DART (Бустер = dart) |
Использовать XGBoost DART | Чекбокс | Выбор данного чекбокса указывает на необходимость использования XGBoost DART | Параметры для DART (Бустер = dart) |
Использовать uniform drop | Чекбокс | Выбор данного чекбокса указывает на то, что отбрасываемые деревья выбираются равномерно. | Параметры для DART (Бустер = dart) |
Коэффициент сохранения большого градиента | Ручной ввод | Данный параметр задает коэффициент сохранения наблюдений с большим градиентом | Параметры для GOSS (Бустер = GOSS) |
Коэффициент сохранения маленького градиента | Ручной ввод | Данный параметр задает коэффициент сохранения наблюдений с маленьким градиентом | Параметры для GOSS (Бустер = GOSS) |
Соотношение случайной подвыборки в обучающей выборке | Ручной ввод | Данный параметр задает соотношение случайной подвыборки в обучающей выборке. | Параметры бэггинга |
Частота случайной подвыборки | Ручной ввод целочисленного значения | Данный параметр задает выполнение бэггинга на каждой k (заданной значением) итерации. Каждая k-я итерация LightGBM будет случайным образом отбирать 'Соотношение случайной подвыборки в обучающей выборке'*100% данных для использования в следующих k итерациях. | Параметры бэггинга |
L1 регуляризатор | По умолчанию – 0 | Регуляризация добавляет ограничения алгоритма относительно аспектов модели, которые не зависят от данных для обучения. Регуляризация обычно используется, чтобы избежать переобучения. | Параметры регуляризации |
L2 регуляризатор | По умолчанию – 1 | Регуляризация L2 ограничивает чрезмерный рост какой-либо отдельной координаты весового вектора. Регуляризация L2 полезна в том случае, если целью является создание модели, имеющей в целом малые значения веса | Параметры регуляризации |
L2 регуляризатор для линейной регрессии | По умолчанию – 0 | Данный параметр задает линейную регуляризацию дерева | Параметры регуляризации |
L2 регуляризатор в категориальном разбиении | Ручной ввод | Данный параметр используется для задания регуляризации категориального разделения (сплита) | Параметры регуляризации |
Минимальное количество наблюдений в категориальной переменной | Ручной ввод | Данный параметр задает минимальное количество наблюдений в категориальной переменной | Параметры для обработки категориальных признаков |
Лимит количества разбиений для категориальной переменной | По умолчанию – 32 | Данный параметр задает ограничение на количество разбиений (сплитов) для категориальной переменной | Параметры для обработки категориальных признаков |
Псевдосчет в сглаживании Лапласа | Ручной ввод | Данный параметр позволяет уменьшить влияние шумов на категориальные переменные, особенно для категорий с небольшим количеством данных. | Параметры для обработки категориальных признаков |
Максимальное количество категории для One-Hot Encoding | Ручной ввод | Когда количество категорий одной переменной меньше или равно данному значению, будет использоваться алгоритм разделения one-vs-other («один против другого») | Параметры для обработки категориальных признаков |
Результаты выполнения узла:
Узел «LightGBM» имеет разные результаты в зависимости от решаемой задачи.
Результаты регрессии представлены следующими объектами:
- Тепловые карты обучающей, валидационной и тестовой выборок.
- Таблица с метриками качества модели.
- Таблица со списком переменных, сортированных по важности.
Результаты многоклассовой классификации представлены следующими объектами:
- Таблица с метриками качества модели.
- Таблица с метриками качества модели задачи классификации.
- Таблица со списком переменных, сортированных по важности.
Результаты бинарной классификации представлены следующими объектами:
- График ROC.
- График Lift.
- График Cumulative Lift.
- График Gain.
- График Cumulative Gain.
- Таблица с метриками качества модели.
- Таблица с метриками качества модели задачи классификации.
- Таблица со списком переменных, сортированных по важности.