По сравнению с классическим деревом решений GBDT является относительно зрелым и практичным алгоритмом дерева решений. Если мы хотим понять дерево решений, такое как GBDT, мы должны сначала понять, как это дерево работает с точки зрения восприятия.
Прежде всего, нам нужно понять, что DBDT — это дерево регрессии (Regression Decision Tree). См. мою статью о разрыве между деревом регрессии и деревом классификации.«Классический алгоритм дерева регрессии».
мы знаем,дерево классификацииНа каждой ветви исчерпывается каждый порог каждого признака, а затем они отделяются друг от друга на величину больше или меньше порога. Это алгоритм для деревьев классификации.
идерево регрессииТоже очень похоже, но в каждом узле вы получаете предсказанное значение.
Взяв в качестве примера возраст, прогнозируемое значение равно среднему возрасту всех людей, принадлежащих к этому узлу. При ветвлении каждый порог каждого признака исчерпывается, чтобы найти наилучшую точку сегментации, но лучшим критерием является уже не максимальная энтропия, а минимальная среднеквадратическая ошибка - то есть (возраст каждого человека - прогнозируемый возраст) ^ Сумма 2 /N, или сумма квадратов ошибок предсказания для каждого человека, деленная на N. Это легко понять. Чем больше людей прогнозируется неправым, тем более возмутительной будет ошибка и тем больше будет среднеквадратическая ошибка. Минимизируя среднеквадратичную ошибку, можно найти наиболее надежный базис ветвления. Ветвление до тех пор, пока возраст человека на каждом листовом узле не станет уникальным (это слишком сложно) или не достигнет заданного условия завершения (например, верхнего предела количества листьев). В качестве прогнозируемого возраста используется средний возраст всех людей. листового узла.
BDT (Дерево принятия решений о повышении)
На самом деле это хороший способ мышления.
Повышение, усиление. Это включает в себя ансамблевое обучение в машинном обучении. Принцип состоит в том, чтобы сгенерировать несколько деревьев с помощью нескольких функций, чтобы решить одну вещь. Это принцип «три марионетки, один Чжугэ Лян». Как это достигается? Возьмем простой пример. Суть BDT заключается в том, что каждое дерево изучает остаток выводов всех предыдущих деревьев, который представляет собой накопление истинного значения после добавления прогнозируемого значения. Например реальный возраст А 18 лет.При обучении предсказанный возраст первого дерева после подгонки 12 лет.Нам 6 лет по сравнению с реальными данными,то есть остаток 6 лет Старый. Затем во втором дереве мы устанавливаем возраст A равным 6 годам, чтобы соответствовать и учиться.Если второе дерево действительно может разделить A на 6-летние листовые узлы, вывод о накоплении двух деревьев является истинностью A. Возраст; если вывод второго дерева составляет 5 лет, у А все еще есть 1-летний остаток, а возраст А в третьем дереве становится 1-летним, и продолжайте учиться.
Если вы сомневаетесь, взгляните на этот пример:
Это все еще предсказание возраста.Для простоты в обучающей выборке всего 4 человека, A, B, C и D, и их возраст составляет 14, 16, 24 и 26 лет соответственно. Среди них A и B — учащиеся первого и третьего курсов средней школы соответственно; C и D — недавние выпускники и сотрудники, проработавшие два года. Если вы используете традиционное дерево решений регрессии для обучения, вы получите результаты, показанные на рисунке 1 ниже:
Это нормальное дерево регрессии, и мы видим, что мы разделяем подростков и молодежь по среднему возрасту.
, а затем использовать время Интернета для разделения каждой ветви до тех пор, пока она не будет разделена или не будет соответствовать требованиям.
Далее рассмотрим реализацию BDT:
Первая ветвь дерева такая же, как на рис. 1. Поскольку A и B относительно близки по возрасту, а C и D относительно близки по возрасту, их делят на две группы, и средний возраст каждой группы используется в качестве прогнозируемое значение. В этот момент вычисляется остаток (значение остатка: прогнозируемое значение A + остаток A = фактическое значение A), поэтому остаток A равен 16-15=1 (обратите внимание, что прогнозируемое значение A относится к ко всем предыдущим Накопленная сумма деревьев, здесь впереди только одно дерево, так что прямо 15. Если деревья еще есть, их нужно суммировать как предсказанное значение А). Тогда остатки A, B, C и D равны -1, 1, -1, 1 соответственно. Затем мы заменяем исходные значения A, B, C и D остатками и переходим ко второму дереву для обучения.Если наши прогнозируемые значения равны их остаткам, нам нужно только накопить выводы второе дерево к первому дереву.Настоящий возраст можно получить из дерева. Данные здесь, очевидно, то, что я могу сделать, второе дерево имеет только два значения 1 и -1, прямо разбитых на два узла. В этот момент остатки для всех равны 0, то есть все получают истинное прогнозируемое значение.
Другими словами, теперь предсказанные значения A, B, C, D согласуются с реальным возрастом:
- 14-летний старшеклассник, меньше ходит по магазинам, часто задает вопросы старшеклассникам; предполагаемый возраст A = 15 – 1 = 14 лет.
- 16-летний старшеклассник; меньше ходит по магазинам, младшие школьники часто задают вопросы; предполагаемый возраст B = 15 + 1 = 16
- 24-летний выпускник, много ходит по магазинам, часто задает вопросы старшим, предполагаемый возраст C = 25 – 1 = 24
- Сотрудник 26 лет, проработавший два года, много ходит по магазинам, ему часто задают вопросы учителя и младшие братья, прогнозируемый возраст D = 25 + 1 = 26
Основная идея GBDT такова, но поскольку обычное дерево и результат GBDT одинаковы, зачем вам нужен GBDT?
Причина - переобучение. Переобучение означает, что модель слишком хорошо работает с обучающим набором данных, а оценки слишком хороши. Так что отказоустойчивость очень низкая, ее также можно назвать «способностью к обобщению». Это приводит к значительному ухудшению производительности на реальных тестовых данных. Мы обнаружили, что на рисунке 1 для достижения 100% точности используются 3 признака (длительность интернета, период времени, сумма онлайн-покупок), из которых ветвь «длительность интернета > 1,1 часа» явно завышена, а A и B могут быть на этом наборе данных Бывает, что A сидит в Интернете 1,09 часа в день, а B сидит в Интернете 1,05 часа, но очевидно, что против здравого смысла судить о возрасте каждого по тому, что время в Интернете > 1,1 часа;
Условно говоря, хотя бустинг на рисунке 2 использует два дерева, фактически он выполняется только с двумя признаками.Последний признак - соотношение вопросов и ответов.Очевидно, что основа рисунка 2 более надежна (это сфабрикованные данные, чтобы показать, что эффект преувеличен, на самом деле есть эксперименты, подтверждающие приведенные выше аргументы).
GB (Gradient Boosting Gradient Boosting)
Ранее мы уже обсуждали основные принципы GBDT, и у нас есть перцептивное понимание этого алгоритма с точки зрения макроэкономики. Но если мы хотим глубже понять GBDT, нам нужно знать аппроксимацию отрицательного градиента, или мы также называем повышение градиента.
Все мы знаем, что в алгоритмах машинного обучения для уменьшения функции ошибки у нас будет метод, называемый градиентным спуском. Метод заключается в том, что в функции ошибок каждый шаг следует текущему направлению градиента, то есть направлению наискорейшего спуска, так что после нескольких шагов итерации функция ошибок упадет до точки локального минимума (выпуклая функция также глобальная — нижняя точка), и получается наименьшая функция ошибки.
Мы пытаемся использовать этот метод для обучения дерева регрессии, а точнее, ТЕЛЕГИ, Если вы не знакомы с ТЕЛЕГОЙ, пожалуйста, прочитайте мою предыдущую статью"ТЕЛЕЖКА". Как упоминалось ранее, каждый раз, когда наш GBDT обучается, мы подбираем остаток предыдущего дерева, а затем используем функцию потерь для подгонки этого дерева:
Используйте отрицательный градиент функции потерь, чтобы соответствовать ее остаткам:
Это суммирует все отрицательные градиенты, чтобы получить общий градиентный спуск. Функция ошибки всей системы сведена к минимуму.
Я опубликовал алгоритм повышения градиента, чтобы помочь понять, содержание взято из «Статистического метода обучения» Ли Ханга:
Давайте посмотрим на поток этого алгоритма повышения градиента:
- Сначала мы инициализируем первое дерево регрессии, чтобы эта точка отсечки минимизировала общую ошибку. Подробнее о том, почему он инициализируется именно в такой форме, см. в статье «ТЕЛЕЖКА», которую я написал ранее;
- После создания дерева мы вычисляем градиент функции потерь для каждой части данных в дереве; функция потерь обычно записывается как среднеквадратическая ошибка, а среднеквадратическая ошибка между каждыми данными и точкой разделения — это потеря функция ;
- После нахождения отрицательного градиента каждых данных мы создаем новое дерево на основе существующих данных и отрицательного градиента каждых данных.Сначала мы рассматриваем отрицательный градиент каждых данных как yi новых данных, поэтому мы получаем новый набор данных также определяет пространственное разделение новых данных. Затем вычислить функцию ошибки каждого фрагмента данных и взять точку с наименьшей функцией ошибки в качестве следующей точки разделения ветвления, которая также генерирует новое дерево;
- Мы добавляем новое дерево к исходному дереву;
- Итоговая сумма получает дерево;
Если вы недостаточно понимаете, пожалуйста, приведите остаток этого отрицательного градиента непосредственно к остаточным данным в примере предыдущей статьи «CART», чтобы был пример для справки, чтобы помочь понять.