Light GBM — это алгоритм обучения на основе дерева, в котором деревья растут по листам (горизонтально) по сравнению с другими моделями, которые растут по уровням.

  • Высокая точность: он выращивается на листе с наибольшими потерями и сможет уменьшить больше потерь, чем уровневая модель.
  • Быстро: высокая производительность и требует меньше памяти для работы
  • Работает на графическом процессоре
  • Склонен к переоснащению: не подходит для наборов данных ‹10 000
  • Так много гиперпараметров для настройки (>100)…

Параметры

  • цель: регрессия, бинарный, многоклассовый
  • метрика: mae (средняя абсолютная ошибка), use (среднеквадратическая ошибка), binary_logloss (двоичная классификация), multi_logloss (мультиклассовая классификация)
  • повышение: gbdt (традиционное дерево принятия решений, повышающее градиент), rf (случайный лес), dart (выпадения соответствуют множественным деревьям аддитивной регрессии), goss (односторонняя выборка на основе градиента)
  • num_boost_round: количество итераций (обычно 100+). Большое значение увеличивает точность, но снижает скорость обучения
  • Learning_rate: определить вклад каждого дерева для каждой итерации. низкая скорость обучения потребует много итераций (медленных) перед сходимостью, а высокая скорость обучения может сходиться быстро, но с меньшей точностью (обычно 0,1, 0,01 и т. д.)
  • max_depth: максимальная глубина дерева. Скорректировано на меньшее значение, чтобы предотвратить переоснащение
  • min_data_in_leaf: минимальное количество записей в каждом листе для предотвращения переобучения. более высокое значение предотвратит переоснащение, но также может привести к недообучению. более низкие значения для несбалансированных данных класса, так что класс меньшинства может попадать в один и тот же лист (обычно 100–1000 для большого набора данных)
  • num_leaves: общее количество листьев в полном дереве (обычно ‹ 2 ^ максимальная глубина)
  • feature_fraction: подмножество функций, используемых для выращивания дерева на каждой итерации. случайный выбор признаков для каждого дерева снижает мультиколлинеарность и переоснащение (обычно 0,8) и ускоряет обучение
  • bagging_fraction: подмножество данных, которые будут использоваться в каждой итерации. предотвращает переобучение и ускоряет обучение
  • max_bin: разделение непрерывного объекта на дискретные интервалы. меньшее значение ускоряет обучение и предотвращает переоснащение, большее значение будет более точным.