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: разделение непрерывного объекта на дискретные интервалы. меньшее значение ускоряет обучение и предотвращает переоснащение, большее значение будет более точным.