1. Объясните процесс алгоритма GBDT
GBDT (Gradient Boosting Decision Tree), полное название которого — Gradient Boosting Decision Tree, используетBoostingподумал о.
1.1 Прокачка идеи
Метод Boosting обучает базовые классификаторы последовательно, и каждый базовый классификатор имеет зависимости. Его основная идея состоит в том, чтобы складывать базовые классификаторы слой за слоем, и когда каждый слой обучается, он будет присваивать более высокие веса образцам, неправильно классифицированным предыдущим слоем базового классификатора. При тестировании конечный результат получается по взвешиванию результатов каждого слоя классификаторов.
Методы последовательного обучения Bagging и Boosting отличаются друг от друга.В процессе обучения метода Bagging нет сильной зависимости между каждым базовым классификатором, и можно проводить параллельное обучение.
1.2 ГБДТ оказалось делом
Принцип GBDT очень прост, то есть сумма результатов всех слабых классификаторов равна предсказанному значению, а затем следующий слабый классификатор должен подогнать невязку функции ошибок к предсказанному значению (эта невязка равна ошибка между предсказанным значением и истинным значением). Разумеется, слабые классификаторы в нем представлены деревьями.
Чтобы привести очень простой пример, например, мне 30 лет в этом году, но компьютер или модель GBDT не знает, сколько мне лет, так что насчет GBDT?
- Он будет соответствовать случайному возрасту, например 20, в первом слабом классификаторе (или в первом дереве) и обнаружит, что ошибка составляет 10 лет;
- Затем во втором дереве используйте 6 лет, чтобы соответствовать оставшейся потере, и обнаружите, что промежуток все еще составляет 4 года;
- Затем поместите оставшийся промежуток в 3 года в третьем дереве и обнаружите, что промежуток составляет всего 1 год;
- Наконец, подогнал оставшиеся остатки с 1-летним ребенком в четвертом дереве уроков, отлично.
- В итоге сумма выводов четырех деревьев и есть реальный возраст 30 лет (в реальной инженерии gbdt вычисляет отрицательный градиент и аппроксимирует остаток отрицательным градиентом).
Почему gbt может аппроксимировать остатки отрицательными градиентами?
В задаче регрессии GBDT будет иметь прогнозируемое значение для каждой выборки в каждом раунде итерации, а функция потерь в это время представляет собой функцию потерь среднеквадратичной ошибки,
Затем отрицательный градиент в это время рассчитывается следующим образом.
Следовательно, когда функция потерь использует среднеквадратичную функцию потерь, значение каждой подгонки равно (истинное значение — значение, предсказанное текущей моделью), то есть остаток. В это время переменная, что является «значением текущей модели прогнозирования», то есть взять над ней отрицательный градиент.
тренировочный процесс
Для простоты предположим, что в обучающей выборке всего 4 человека: A, B, C, D, и их возраст 14, 16, 24 и 26 лет соответственно. Среди них A и B — учащиеся первого и третьего курсов средней школы соответственно; C и D — недавние выпускники и сотрудники, проработавшие два года. Если вы тренируетесь с традиционным деревом решений регрессии, вы получите результаты, показанные на следующем рисунке:
Теперь для этого мы используем GBDT.Поскольку данных слишком мало, мы ограничиваем количество листовых узлов двумя, то есть каждое дерево имеет только одну ветвь и изучаем только два дерева. Мы получим результат, как показано ниже:
Первая ветвь дерева такая же, как на рисунке 1. Поскольку A и B относительно близки по возрасту, C и D относительно близки по возрасту, их делят на левую и правую группы, и средний возраст каждой группы используется как прогнозируемое значение.
- В этот момент вычисляется остаток (остаток означает: фактическое значение A - прогнозируемое значение A = остаток A), поэтому остаток A равен фактическому значению 14 - прогнозируемому значению 15 = остаточное значение -1.
- Обратите внимание, что прогнозируемое значение A относится к накопленной сумме всех предыдущих деревьев.Перед ним находится только одно дерево, поэтому оно равно 15. Если деревья еще есть, их необходимо суммировать как прогнозируемое значение А.
Затем используйте их остатки -1, 1, -1, 1, чтобы заменить исходные значения ABCD, и перейдите ко второму дереву для обучения.Второе дерево имеет только два значения 1 и -1, которые делятся напрямую на два узла, а именно оценки A и C слева, оценки B и D справа, после расчета (например, A, фактическое значение -1 - прогнозируемое значение -1 = остаток 0, например, C, фактическое значение -1 - прогнозируемое значение -1 = 0), это Остатки для всех равны 0. Остаточные значения все равны 0, это означает, что предсказанное значение второго дерева равно их фактическому значению, тогда вам нужно только добавить выводы второго дерева к первому дереву, чтобы получить реальный возраст, то есть , каждый человек получил верные предсказания.
Другими словами, предсказанные значения A, B, C и D теперь соответствуют фактическому возрасту. Идеально!
- A: 14-летний старшеклассник, меньше ходит по магазинам, часто задает вопросы старшим, предполагаемый возраст A = 15 – 1 = 14 лет.
- B: 16-летний старшеклассник, учится в старшей школе, меньше ходит по магазинам, младшие школьники часто задают вопросы, предполагаемый возраст B = 15 + 1 = 16.
- C: 24-летний выпускник, много ходит по магазинам, часто задает вопросы старшему поколению, предполагаемый возраст C = 25 – 1 = 24.
- D: 26-летний сотрудник, который проработал два года, много ходит по магазинам, ему часто задают вопросы младшие школьники и учителя Прогнозируемый возраст D = 25 + 1 = 26
Следовательно, GBDT необходимо накапливать оценки нескольких деревьев, чтобы получить окончательную оценку прогноза, и каждая итерация добавляет дерево, чтобы соответствовать остатку между результатом прогнозирования предыдущего дерева и реальным значением на основе существующего дерева.
2. В чем разница и связь между повышением градиента и градиентным спуском?
В следующей таблице представлено сравнение алгоритма повышения градиента и алгоритма градиентного спуска. Можно обнаружить, что на каждой итерации текущая модель обновляется с использованием информации функции потерь относительно направления отрицательного градиента модели, но при градиентном спуске модель выражается в параметризованной форме, так что модель Обновление эквивалентно обновлению параметра. При повышении градиента модель не нужно параметризовать, она определяется непосредственно в функциональном пространстве, что значительно расширяет типы моделей, которые можно использовать.
3. Каковы преимущества и ограничения GBDT?
3.1 Преимущества
- Скорость расчета на этапе прогнозирования высокая, и расчет можно распараллелить между деревьями.
- В плотно распределенных наборах данных способность к обобщению и выразительности очень хороша, что делает GBDT часто первым в списке во многих соревнованиях Kaggle.
- Использование дерева решений в качестве слабого классификатора делает модель GBDT более понятной и надежной, позволяет автоматически обнаруживать отношения высокого порядка между функциями и не требует специальной предварительной обработки данных, такой как нормализация.
3.2 Ограничения
- GBDT не так хорошо работает, как поддержка векторных машин или нейронных сетей в многомерных и разреженных наборах данных.
- Преимущество GBDT перед другими моделями при работе с признаками классификации текста не так очевидно, как при работе с числовыми признаками.
- Процесс обучения требует последовательного обучения, и только некоторые локальные параллельные методы могут использоваться внутри дерева решений для повышения скорости обучения.
4. Разница и связь между RF (Random Forest) и GBDT
Та же точка:
Все они состоят из нескольких деревьев, и конечный результат определяется несколькими деревьями вместе.
разница:
- Деревья, составляющие случайный лес, могут быть либо деревом классификации, либо деревом регрессии, в то время как GBDT состоит только из деревьев регрессии.
- Деревья, составляющие случайный лес, могут генерироваться параллельно, а GBDT — последовательно.
- Результатом случайного леса является большинство голосов, а GBDT — это кумулятивная сумма нескольких деревьев.
- Случайный лес не чувствителен к выбросам, в то время как GBDT более чувствителен к выбросам.
- Случайный лес должен уменьшить дисперсию модели, а GBDT - уменьшить смещение модели.
- Случайные леса не требуют нормализации признаков. GBDT требует нормализации признаков
5. Реализация кода
Гитхаб:GitHub.com/NLP-love/ml…
【Машинное обучение легко понять серия статей】
автор:@mantchs
Гитхаб:GitHub.com/NLP-love/ml…
Приглашаются все желающие присоединиться к обсуждению! Улучшайте этот проект вместе! Номер группы QQ: [541954936]