Интенсивная лекция по интегрированному алгоритму обучения: метод бустинга и AdaBoost, GBDT

машинное обучение искусственный интеллект
Интенсивная лекция по интегрированному алгоритму обучения: метод бустинга и AdaBoost, GBDT

В области машинного обучения глубокое обучение (Deep Learning\text {Deep Learning}) в основном преобладают нейронные сети, а неглубокое обучение (Shallow Learning\text {Shallow Learning}) по-прежнему является областью модели дерева. С одной стороны, хотя глубокое обучение эффективно в больших масштабах, оно плохо работает в малых масштабах; с другой стороны, алгоритмы ансамблевого дерева (RF\text {RF},GBDT\text {GBDT},XGBoost\text {XGBoost}и т. д.) из-за его высокой интерпретации модели, низкой сложности в настройке параметров, высокой скорости работы и почти отсутствия необходимости в разработке признаков, он полностью подавляет глубокое обучение на малых и средних наборах данных, и это трудно для «разнородных данных». (такие как контроль рисков), данные, такие как возраст, доход, город в сцене), модель дерева ансамбля работает лучше, чем глубокое обучение, даже на крупномасштабных наборах данных. В практических приложениях крупные предприятия, такие как Facebook и Alibaba, используют комбинацию LR.GBDT\text {GBDT}В качестве технической поддержки для важных предприятий, таких как оценка рейтинга кликов и рекомендации по рекламе, а такжеXGBoost\text {XGBoost}В последние годы он неоднократно процветал в конкурсе алгоритмов Kaggle.

Эта статья знакомит с ансамблевым обучениемBoosting\text {Boosting}метод и члены его семьиAdaBoost\text {AdaBoost},GBDT\text {GBDT}, если вы мало знаете об основном алгоритме дерева решений, я рекомендую прочитать другой мой пост в блоге:Модель дерева решений:ID3\text {ID3},C4.5\text {C4.5},CART\text {CART}Введение алгоритма



интегрированное обучение

  • Целью традиционного машинного обучения является обучение «сильного ученика» (дерева решений, нейронной сети и т. д.) с максимально возможной точностью прогнозирования, но на практике найти оптимального «сильного ученика» сложно, поэтому «обучение ансамблем "предлагается. «Ансамблевое обучение» предполагает, что для нескольких «слабых учеников» с низкой точностью предсказания (требующей лишь немного более высокой точности предсказания, чем случайное угадывание), если эти несколько «слабых учеников» объединены соответствующим образом, то его можно повысить до «сильный ученик», чтобы получить более высокую точность предсказания. Основываясь на этой идее, в 1990 году Шапир впервые построил алгоритм полиномиального уровня и сделал положительное доказательство этой проблемы. Это оригинальный алгоритм повышения. Позже «обучение ансамбля» стало очень зрелым и широко используемым методом машинного обучения. , в его семейство входят RF, GBDT, XGboost и многие другие превосходные алгоритмы.

  • На сегодняшний день существует три основных типа ансамблевого обучения:Bagging\text {Bagging}(Мешковый метод),Boosting\text {Boosting}(метод подъема),Stacking\text {Stacking}(метод укладки), в этой статье объясняетсяBoosting\text {Boosting}методы и связанные с ними алгоритмы (AdaBoost\text {AdaBoost},GBDT\text {GBDT}).

Boosting\text {Boosting}метод

  • отличается отBagging\text {Bagging}в параллели,Boosting\text {Boosting}Это серия в виде лестницы. Она начинается с первого базового учащегося, и каждый последующий базовый учащийся будет корректировать распределение веса выборок в соответствии с правильностью и ошибкой предсказания предыдущего базового учащегося для каждой выборки. В то же время, в соответствии с самим базовым учеником. Чтобы получить ряд базовых учеников с разными весами, несколько учеников взвешиваются и объединяются для получения окончательного ученика. Конкретные шаги заключаются в следующем:

  • 1. Сначала он заставляет каждую выборку иметь одинаковое значение веса (1/n, используется для расчета частоты ошибок или коэффициента точности, это значение веса не будет меняться в некоторых алгоритмах классификации) и строит слабый классификатор.

  • 2. Измените распределение веса выборки: увеличьте вес неправильного образца, уменьшите вес правильного образца, измените вес классификатора: рассчитайте правильный показатель классификатора, чем выше правильный показатель, тем больше его весовое значение;

  • 3. Построить новый слабый классификатор по выборочным данным после изменения распределения веса.

  • 4. Повторяйте шаги 2 и 3 до тех пор, пока не будет достигнуто заданное количество учащихся или заданная точность предсказания.

  • Интуитивное понимание:

    • Boosting\text {Boosting}Каждый шаг всегда больше ориентирован на неправильно классифицированные образцы, что упрощает их правильную классификацию на следующем этапе;
    • Boosting\text {Boosting}Вес классификатора с более высокой степенью точности больше, так что лучший классификатор после окончательной линейной комбинации имеет большее право голоса, в отличие от классификатора.Bagging\text {Bagging}Каждый классификатор в методе имеет одинаковый вес.

AdaBoost\text {AdaBoost}(адаптивное улучшение)

  • AdaBoost(Adaptive Boosting)\text {AdaBoost(Adaptive Boosting)}даBoosting\text {Boosting}Алгоритмы начального уровня в методах. Оригинальный алгоритм Adaboost использовался для решения задач бинарной классификации, поэтому для обучающей выборки
T={(x1,y1),(x2,y2),,(xn,yn)}T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{n}, y_{n}\right)\right\}
  • вxiеXRn,yiеY={1,+1}x_{i} \in \mathcal{X} \subseteq \mathbb{R}^{n}, y_{i} \in \mathcal{Y}=\{-1,+1\}, сначала инициализируйте веса тренировочного набора
D1=(w11,w12,,w1n)w1i=1n,i=1,2,,n\begin{aligned} D_{1} &=\left(w_{11}, w_{12}, \ldots, w_{1 n}\right) \\ w_{1 i} &=\frac{1}{n}, i=1,2, \ldots, n \end{aligned}
  • В зависимости от веса каждого раунда тренировочного набораDmD_{m}, выборка данных обучающего набора, чтобы получитьTmT_{m}, а затем согласноTmT_{m}Тренируйтесь, чтобы получить базового ученика для каждого раундаhmh_{m }. Базовый учащийся может быть получен расчетным путемhmh_{m}Ошибкаϵm\epsilon_{m}, по ошибке базового обучаемого рассчитывается весовой коэффициент базового обучаемого в конечном обучаемом.
αm=12ln1ϵmϵm\alpha_{m}=\frac{1}{2} \ln \frac{1-\epsilon_{m}}{\epsilon_{m}}
  • Обновите веса тренировочного набора
Dm+1=(wm+1,1,wm+1,2,,wm+1,n)wm+1,i=wm,iZmexp(αmyihm(xi))\begin{aligned} D_{m+1} &=\left(w_{m+1,1}, w_{m+1,2}, \ldots, w_{m+1, n}\right) \\ w_{m+1, i} &=\frac{w_{m, i}}{Z_{m}} \exp \left(-\alpha_{m} y_{i} h_{m}\left(x_{i}\right)\right) \end{aligned}
  • вZmZ_{m}нормировочный коэффициент
Zm=i=1nwm,iexp(αmyihm(xi))Z_{m}=\sum_{i=1}^{n} w_{m, i} \exp \left(-\alpha_{m} y_{i} h_{m}\left(x_{i}\right)\right)
  • тем самым гарантируяDm+1D_{m+1}является распределением вероятностей. наконец построен в соответствии сMMбазовые учащиеся, чтобы получить окончательного учащегося:
hf(x)=sign(m=1Mαmhm(x))h_{f}(x)=\operatorname{sign}\left(\sum_{m=1}^{M} \alpha_{m} h_{m}(x)\right)
  • Следующие диаграммы используются для интуитивного пониманияAdaBoost\text {AdaBoost}:

  • 1. Слева в начале все точки данных имеют одинаковый вес (положительные и отрицательные знаки имеют одинаковый размер), и первый базовый обучаемый делит выборку данных на две части. Как видно, три точки данных, отмеченные положительным знаком, неправильно классифицированы, поэтому мы придаем этим трем точкам больший вес. В то же время учащемуся присваивается весовое значение в соответствии с показателем точности классификации.

  • 2. На среднем рисунке, второй базовый обучаемый, вы можете видеть, что веса трех (+) баллов, которые не были правильно классифицированы предыдущим обучающимся, увеличились.В это время второй базовый обучаемый меняет распределение веса в соответствии После обучения получается вторая классификационная модель, поскольку ее классификация неправильно идентифицирует точки, отмеченные тремя (-) знаками, в следующей классификации точкам, отмеченным тремя (-) знаками, присваивается больший вес. В то же время учащемуся присваивается весовое значение в соответствии с показателем точности классификации.

  • 3. На правом рисунке третий базовый ученик повторите те же шаги.

  • 4. Наконец, взвешенная линейная комбинация первых трех базовых обучаемых будет использоваться в качестве окончательного сильного обучаемого, который будет работать лучше, чем любой из предыдущих слабых классификаторов.


GBDT\text {GBDT}(дерево с градиентным усилением)


Алгоритм прямого шага и повышение градиента

  • GBDT(Gradient Boosting Decision Tree)\text {GBDT(Gradient Boosting Decision Tree)}И другие типы моделей повышенного дерева основаны на «алгоритме прямого шага». Пошаговый алгоритм вперед можно понять следующим образом: Предположим, мы хотим использовать дерево решений для прогнозирования возраста человека.В начале инициализация модели напрямую даст прогнозируемое значениеf0(x)f_{0}(x), Обратите внимание, что это прогнозируемое значение не нужно обучать с помощью дерева решений, и оно не обязательно является точным (например, начальный прогноз модели в начале составляет 0 лет, или относительно разумное значение дается в соответствии с возрастной состав населения). Затем обучите первое дерево решений на основе прогноза, данного на предыдущем шаге модели, В это время выходом модели является прогнозируемое значение инициализации модели плюс выходное значение первого дерева решений, а затем продолжаем добавлять второе дерево решений дерево, чтобы второе дерево решений могло минимизировать общие потери на основе ранее построенной модели, и продолжаем этот процесс до тех пор, пока количество построенных деревьев решений не будет удовлетворять требованиям или общие потери не будут меньше порога.

  • Текущий пошаговый алгоритм переходит кmmшаг, функция предсказания может быть выражена как:

    fm(x)=fm1(x)+βmT(x;Θm)f_{m}(x)=f_{m-1}(x)+\beta_{m} T\left(x ; \Theta_{m}\right)
  • вfm1(x)f_{m-1}(x)первыйm1m-1функция предсказания шага, иT(x;Θm)T\left(x ; \Theta_{m}\right)это первое, что нам нужно построитьmmДрево решений,βm\beta_{m}Представляет скорость обучения (также называемую размером шага). из-за предыдущегоm1m-1Дерево решений обучено, параметры зафиксированы.βm\beta_{m}, то вmmшаг, нам нужно только обучитьmmпараметры дереваΘm\Theta_{m}чтобы минимизировать текущие общие потери:

Θ^m=argminΘmi=1NL(yi,fm1(xi)+βmT(xi;Θm))\hat{\Theta}_{m}=\underset{\Theta_{m}}{\arg \min } \sum_{i=1}^{N} L\left(y_{i}, f_{m-1}\left(x_{i}\right)+\beta_{m} T\left(x_{i} ; \Theta_{m}\right)\right)
  • вNNпредставляет собой общее количество образцов,LLпредставляет собой функцию потерь. После того, как алгоритм прямого шага ясен, давайте рассмотрим, как минимизировать функцию потерь в машинном обучении.
  • Предположим, что существует функция потерьJ(θ)J(\theta), когда нам нужно установить этот параметр вθ\thetaПри нахождении минимального значения функции потерь просто отрегулируйте параметры в соответствии с отрицательным направлением градиента функции потерь.θ\thetaТо есть, потому что направление градиента — это направление, которое заставляет функцию расти быстрее всего, а противоположное направление градиента, то есть отрицательное направление градиента, заставит функцию уменьшаться быстрее всего.ρ\rhoВремя,θ\thetaСпособ обновления следующий:
θi:=θiρJθi\theta_{i}:=\theta_{i}-\rho \frac{\partial J}{\partial \theta_{i}}
  • Тогда так же, в алгоритме переднего этапа, общая потеря потери должна бытьJ=iL(yi,fm1(xi))J=\sum_{i} L\left(y_{i}, f_{m-1}\left(x_{i}\right)\right)меньше, надоfm1(x)f_{m-1}(x)вывод, иfm1(x)f_{m-1}(x)направлен наNNвыборки, поэтому частная производная вычисляется для каждого предсказанного значения выборки:
fm(xi):=ρJfm1(xi)f_{m}\left(x_{i}\right):=-\rho \frac{\partial J}{\partial f_{m-1}\left(x_{i}\right)}
  • здесьρ\rhoи только что упомянулβm\beta_{m}Эффект тот же, количество разρ=1\rho=1. во-первыхmmДля дерева решений его подгонка больше не является исходными данными.(xi,yi)\left(x_{i}, y_{i}\right)итоговое значениеyiy_{i}, но с отрицательным градиентом, потому что это заставляет общую функцию потерь падать быстрее всего. Итак, для первогоmmДерево решений, образец набора данных, который необходимо подобрать, обновляется до:
{(x1,Jfm1(x1)),(x2,Jfm1(x2)),,(xn,Jfm1(xn))},m=1,2,,M\left\{\left(x_{1},-\frac{\partial J}{\partial f_{m-1}\left(x_{1}\right)}\right),\left(x_{2},-\frac{\partial J}{\partial f_{m-1}\left(x_{2}\right)}\right), \cdots,\left(x_{n},-\frac{\partial J}{\partial f_{m-1}\left(x_{n}\right)}\right)\right\}, m=1,2, \cdots, M
  • Таким образом, он повторяется до определенного шага, функция потерь достаточно мала, и, наконец,GBDT\text {GBDT}Прогнозируемое значение вывода представляет собой сумму всех предыдущих деревьев, оно будет очень близкимyyценность.

GBDT\text {GBDT}алгоритм регрессии

  • Для задач регрессии мы берем в качестве примера функцию квадратичной ошибки, чтобы представить метод обработки GBDT. Функция потери квадратичной ошибки:
L(y,f(x))=12(yf(x))2L(y, f(x))=\frac{1}{2} \cdot(y-f(x))^{2}
  • во-первыхm1m-1дерево решений, каждый образецiiФункция потерь:J=L(yi,fm1(xi))J=L\left(y_{i}, f_{m-1}\left(x_{i}\right)\right), что примерно соответствует прогнозируемому значениюfm1(xi)f_{m-1}\left(x_{i}\right)Градиент (частная производная) равен:
Jfm1(xi)=iL(yi,fm1(xi))fm1(xi)=L(yi,fm1(xi))fm1(xi)=fm1(xi)yi\frac{\partial J}{\partial f_{m-1}\left(x_{i}\right)}=\frac{\partial \sum_{i} L\left(y_{i}, f_{m-1}\left(x_{i}\right)\right)}{\partial f_{m-1}\left(x_{i}\right)}=\frac{\partial L\left(y_{i}, f_{m-1}\left(x_{i}\right)\right)}{\partial f_{m-1}\left(x_{i}\right)}=f_{m-1}\left(x_{i}\right)-y_{i}
  • Затем соответствующий отрицательный градиент:
Jfm1(xi)=yifm1(xi)-\frac{\partial J}{\partial f_{m-1}\left(x_{i}\right)}=y_{i}-f_{m-1}\left(x_{i}\right)

yifm1(xi)y_{i}-f_{m-1}\left(x_{i}\right)Это остаток, который должен соответствовать текущему дереву решений.Поэтому для форсированной древовидной модели задачи регрессии каждое дерево решений должно соответствовать только остатку остатка.

Уведомление:fm1(x)f_{m-1}\left(x\right)не первыйm1m-1Дерево решений, но в первомm1m-1Функция предсказания этого шага дерева решений, то же верноfm1(xi)f_{m-1}\left(x_{i}\right)Указывает, что функция предсказания находится в выборкеxix_iпо прогнозируемому значению. первоеm1m-1Дерево решений соответствует только отрицательным градиентам, а функция предсказанияfm1(x)f_{m-1}\left(x\right)представляет собой отрицательный градиент подгонки плюс предсказанное значение предыдущего дерева.

  • Поток метода GBDT для задачи регрессии:

    • Вход: обучающий набор данныхT={(x1,y1),(x2,y2),,(xN,yN)},xiеXRn,yiеYRT=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}, x_{i} \in \mathcal{X} \subseteq \mathbf{R}^{\mathrm{n}}, \mathbf{y}_{\mathbf{i}} \in \mathcal{Y} \subseteq \mathbf{R} \quadи скорость обученияβm\beta_{m}(также называется размером шага)

    • вывод: усиленное деревоfM(x)f_{M}(x)

    1. инициализацияf0(x)=1NiNyif_{0}(x)=\frac{1}{N} \sum_{i}^{N} y_{i}

    2. Древо решенийm=1,2,,Mm=1,2, \cdots, M

      (a) Рассчитайте невязку для каждого образца i:

      rmi=yifm1(xi),i=1,2,,Nr_{m i}=y_{i}-f_{m-1}\left(x_{i}\right), i=1,2, \cdots, N

      (b) Сопоставьте невязку r_{m i}, чтобы изучить дерево регрессии и получить площадь листового узла m-го дереваRmj,j=1,2,,JR_{m j}, j=1,2, \cdots, J. Примечание. Деревья решений (CART\text {CART}Дерево регрессии) также разбито по квадрату ошибки в качестве функции потерь.

      (c) Противоположный листовой узелj=1,2,,Jj=1,2, \cdots, J, чтобы вычислить оптимальное выходное значение:

      cmj=argmincxiеRmjL(yi,fm1(xi)+c)c_{m j}=\arg \min _{c} \sum_{x_{i} \in R_{m j}} L\left(y_{i}, f_{m-1}\left(x_{i}\right)+c\right)

      Этот шаг заключается в расчете того, как присвоить значения образцам в области листового узла, чтобы минимизировать потери модели.Поэтому этот шаг необходимо рассчитать в соответствии с функцией потерь текущего дерева решений и функцией потерь дерева регрессии \text {CART} является Квадрат ошибки ошибки, поэтому результат расчета на этом шаге:

      cmj=1NmjxiеRmjrmic_{m j}=\frac{1}{N_{m j}} \sum_{x_{i} \in R_{m j}} r_{m i}

      То есть среднее значение остатков каждой области конечного узла.

      (d) Обновление дерева решенийfm(x)=fm1(x)+βmj=1JcmjI(xеRmj)f_{m}(x)=f_{m-1}(x)+\beta_{m} \sum_{j=1}^{J} c_{m j} I\left(x \in R_{m j}\right).

    3. Наконец, мы получаем дерево повышения градиента для задачи регрессии:

      fM(x)=m=1Mβmj=1JcmjI(xеRmj)f_{M}(x)=\sum_{m=1}^{M} \beta_{m} \sum_{j=1}^{J} c_{m j} I\left(x \in R_{m j}\right)

      Примечание. Диапазон \beta_{m} равен (0,1), и его функция такая же, как скорость обучения (также называемая размером шага) в алгоритме градиентного спуска, который может заставить функцию потерь сходиться к меньшему значению. , поэтому это может быть корректировка \beta_{m}, а меньшая скорость обучения заставит модель обучать больше деревьев решений, что сделает модель более стабильной и не будет переобучать, поэтому \beta_{m} в GBDT также можно использовать как Параметр регуляризации.


GBDT\text {GBDT}алгоритм бинарной классификации

  • так какGBDT\text {GBDT}Базовое дерево решений использует дерево регрессии CART с квадратом ошибки в качестве критерия разбиения, а выход его листовых узлов представляет собой весь диапазон действительных чисел.Поэтому при классификации мы можем обратиться к алгоритму логистической регрессии для вложения на основе выражений линейной регрессии.SigmoidSigmoidФункция (функция логистической регрессии), позволяющая GBDT решать проблемы классификации. Давайте сначала обсудимGBDT\text {GBDT}обработка бинарной классификацией.

  • Мы можем определить функцию потерь бинарного GBDT как:

L(y,f(x))=ylogy^(1y)log(1y^)y^=11+ef(x)L(y, f(x))=-y \log \hat{y}-(1-y) \log (1-\hat{y}) \\ \hat{y}=\frac{1}{1+e^{-f(x)}}
  • вy^\hat{y}ЯвляетсяSigmoidSigmoidфункция, которую мы используем для представления вероятности того, что дерево решений предскажет класс выборки как 1P(y=1x)P(y=1 \mid x);yyявляется фактическим значением (0 и 1) класса выборки.

  • Тогда для первогоm1m-1дерево решений, функция потерьJ=iL(yi,fm1(xi))J=\sum_{i} L\left(y_{i}, f_{m-1}\left(x_{i}\right)\right), его градиент по отношению к прогнозируемому значению выборки рассчитывается как:

    Jfm1(xi)=L(yi,fm1(xi))fm1(xi)=[yilog11+efm1(xi)(1yi)log(111+efm1(xi)))fm1(xi)=[yilog(1+efm1(xi))+(1yi)[fm1(xi)+log(1+efm1(xi))]]fm1(xi)=[(1yi)fm1(xi)+log(1+efm1(xi))]fm1(xi)=11+efm1(xi)yi=yi^yi\begin{aligned} \frac{\partial J}{\partial f_{m-1}\left(x_{i}\right)} &=\frac{\partial L\left(y_{i}, f_{m-1}\left(x_{i}\right)\right)}{\partial f_{m-1}\left(x_{i}\right)} \\ &=\frac{\partial\left[-y_{i} \log \frac{1}{1+e^{-f_{m-1}\left(x_{i}\right)}}-\left(1-y_{i}\right) \log \left(1-\frac{1}{\left.1+e^{-f_{m-1}\left(x_{i}\right)}\right)}\right)\right.}{\partial f_{m-1}\left(x_{i}\right)} \\ &=\frac{\partial\left[y_{i} \log \left(1+e^{-f_{m-1}\left(x_{i}\right)}\right)+\left(1-y_{i}\right)\left[f_{m-1}\left(x_{i}\right)+\log \left(1+e^{-f_{m-1}\left(x_{i}\right)}\right)\right]\right]}{\partial f_{m-1}\left(x_{i}\right)} \\ &=\frac{\partial\left[\left(1-y_{i}\right) f_{m-1}\left(x_{i}\right)+\log \left(1+e^{-f_{m-1}\left(x_{i}\right)}\right)\right]}{\partial f_{m-1}\left(x_{i}\right)} \\ &=\frac{1}{1+e^{-f_{m-1}\left(x_{i}\right)}}-y_{i} \\ &=\hat{y_{i}}-y_{i} \end{aligned}
  • Вычисленный результат представляет собой разницу между прогнозируемым значением вероятности категории дерева решений и фактическим значением категории, тогда отрицательный градиент равен:

Jfm1(xi)=yiy^i-\frac{\partial J}{\partial f_{m-1}\left(x_{i}\right)}=y_{i}-\hat{y}_{i}
  • Следовательно, для GBDT, занимающегося проблемами бинарной классификации, каждое дерево решений соответствует разнице между фактическим значением категории и прогнозируемым значением вероятности категории. Процесс метода GBDT для задачи двух классов выглядит следующим образом:

    • Вход: обучающий набор данныхT={(x1,y1),(x2,y2),,(xN,yN)},xiеXRn,yiе{0,1}\quad T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}, x_{i} \in \mathcal{X} \subseteq \mathbf{R}^{\mathrm{n}}, \mathbf{y}_{\mathbf{i}} \in\{\mathbf{0}, \mathbf{1}\} \quadи скорость обученияβm\beta_{m}
    • вывод: усиленное деревоfM(x)f_{M}(x)
    1. инициализацияf0(x)=logp11p1f_{0}(x)=\log \frac{p_{1}}{1-p_{1}}, вp1p_{1}Представляет долю выборки, где y=1.

    2. правильноm=1,2,,Mm=1,2, \cdots, M

      (a) Вычислите отрицательный градиент для каждого образца i:

      rmi=yiy^i,i=1,2,,Nr_{m i}=y_{i}-\hat{y}_{i}, i=1,2, \cdots, N

      вy^i=11+efm1(xi)\hat{y}_{i}=\frac{1}{1+e^{-f_{m-1}\left(x_{i}\right)}}, представляющий вероятность того, что y_{i}=1.

      (b) Сопоставьте отрицательный градиент r_{m i}, чтобы изучить дерево регрессии и получить площадь листового узла m-го дереваRmj,j=1,2,,JR_{m j}, j=1,2, \cdots, J . Обратите внимание, что этот шаг также разделяет узлы в соответствии с квадратом ошибки ошибки.

      (c) Противоположный листовой узелj=1,2,,Jj=1,2, \cdots, J, рассчитать:

      cmj=argmincxiеRmjL(yi,fm1(xi)+c)c_{m j}=\arg \min _{c} \sum_{x_{i} \in R_{m j}} L\left(y_{i}, f_{m-1}\left(x_{i}\right)+c\right)

      (г) Обновлениеfm(x)=fm1(x)+βmj=1JcmjI(xеRmj)f_{m}(x)=f_{m-1}(x)+\beta_{m} \sum_{j=1}^{J} c_{m j} I\left(x \in R_{m j}\right)

    3. Наконец, получается бинарное дерево бустинга градиента:

      fM(x)=m=1Mβmj=1JcmjI(xеRmj)f_{M}(x)=\sum_{m=1}^{M} \beta_{m} \sum_{j=1}^{J} c_{m j} I\left(x \in R_{m j}\right)
    4. Наконец, логистическая функция также вложена в окончательную функцию прогнозирования, чтобы можно было представить прогнозируемое значение вероятности:

      P(y=1x)=11+efM(x)P(y=1 \mid x)=\frac{1}{1+e^{-f_M(x)}}

GBDT\text {GBDT}Множественные алгоритмы классификации

  • GBDT\text {GBDT}В задаче бинарной классификации используется метод вложения «функции логистической регрессии» в исходную модель дерева регрессии, в то время какGBDT\text {GBDT}В задаче с несколькими классами «полиномиальная логистическая регрессия» (Softmax Regression\text {Softmax Regression}), ниже приводится краткое введение в полиномиальную логистическую регрессию.

  • «Полиномиальная логистическая регрессия» (Softmax Regression\text {Softmax Regression}) можно рассматривать как логистическую регрессию (Logistic Regression\text {Logistic Regression}), и наоборот, логистическую регрессию также можно рассматривать как частный случай полиномиальной логистической регрессии. существуетLogistic Regression\text {Logistic Regression}Что нужно решить, так это две вероятности:P(y=1x;θ)P(y=1 \mid x ; \theta)иP(y=0x;θ)P(y=0 \mid x ; \theta); пока вSoftmax Regression\text {Softmax Regression}У лейтенанта уже будет не две вероятности, аkkвероятность,kkУказывает количество категорий.Softmax Regression\text {Softmax Regression}Функция предсказания для:

    hθ(x)=P(Y=yix)=[P(Y=1x;θ)P(Y=2x;θ)P(Y=kx;θ)]=1j=1keθjTx[eθ1Txeθ2TxeθkTx]\begin{array}{c} h_{\theta}(x) =P\left(Y=y_{i} \mid x\right)= {\left[\begin{array}{c} P(Y=1 \mid x ; \theta) \\ P(Y=2 \mid x ; \theta) \\ \cdot \\ \cdot \\ \cdot \\ P(Y=k \mid x ; \theta) \end{array}\right]} =\frac{1}{\sum_{j=1}^{k} e^{\theta_{j}^{T} x}}\left[\begin{array}{c} e^{\theta_{1}^{T} x} \\ e^{\theta_{2}^{T} x} \\ \cdot \\ \cdot \\ \cdot \\ e^{\theta_{k}^{T} x} \end{array}\right] \end{array}
  • в,θ1T,θ2T,,θkT\theta_{1}^T, \theta_{2}^T, \ldots, \theta_{k}^Tзаkkпараметры (векторы) для каждой модели и, наконец, умноженные на1j=1keθjTxi\frac{1}{\sum_{j=1}^{k} e^{\theta_{j}^{T} x_{i}}}состоит в том, чтобы сделать вероятность каждого класса в[0,1][0,1]интервал, а сумма вероятностей равна 1.Softmax Regression\text {Softmax Regression}данные будут введеныxix_{i}относятся к категорииjjВероятность:

p(yi=jxi;θ)=eθjTxil=1keθlTxip\left(y_{i}=j \mid x_{i} ; \theta\right)=\frac{e^{\theta_{j}^{T} x_{i}}}{\sum_{l=1}^{k} e^{\theta_{l}^{T} x_{i}}}
  • Приведенную выше формулу можно визуально проанализировать с помощью следующего рисунка:


  • Вообще говоря,Softmax Regression\text {Softmax Regression}Он имеет характеристики избыточности параметров, которая вот-вотθ1T,θ2T,,θkT\theta_{1}^T, \theta_{2}^T, \ldots, \theta_{k}^TРезультат прогноза остается неизменным после добавления и вычитания вектора одновременно, потому чтоP(Y=1x)+P(Y=2x)++P(Y=kx)=1P(Y=1 \mid x)+P(Y=2 \mid x)+\ldots+P(Y=k \mid x)=1,такP(Y=1x)=1P(Y=2x)P(Y=kx)P(Y=1 \mid x)=1-P(Y=2 \mid x)-\ldots-P(Y=k \mid x). Предположим из вектора параметровθjT\theta_{j}^{T}вычесть векторψ\psi, то каждыйθjT\theta_{j}^{T}сталθjTψ(j=1,2,,k)\theta_{j}^{T}-\psi(j=1,2, \ldots, k). В этот момент функция прогнозирования принимает вид:

    P(Y=yjx;θ)=eθjTxi=1keiTix=e(θjTψ)xi=1ke(θiTψ)x=eθjTx×eψxi=1keθiTx×eψx=eθjTxi=1keθiTx\begin{aligned} P\left(Y=y_{j} \mid x ; \theta\right) &=\frac{e^{\theta_{j}^{T} x}}{\sum_{i=1}^{k} e_{i}^{T_{i} x}} \\ &=\frac{e^{\left(\theta_{j}^{T}-\psi\right) x}}{\sum_{i=1}^{k} e^{\left(\theta_{i}^{T}-\psi\right) x}} \\ &=\frac{e^{\theta_{j}^{T} x} \times e^{-\psi x}}{\sum_{i=1}^{k} e^{\theta_{i}^{T} x} \times e^{-\psi x}} \\ &=\frac{e^{\theta_{j}^{T} x}}{\sum_{i=1}^{k} e^{\theta_{i}^{T} x}} \end{aligned}
  • Из приведенного выше уравнения видно, что изθjT\theta_{j}^{T}вычестьψ\psiЭто никак не влияет на результаты предсказания функции гипотезы. В частности, при количестве категорийkkКогда это 2:

    hθ(x)=1eθ1Tx+eθ2Tx[eθ1Txeθ2Tx]h_{\theta}(x)=\frac{1}{e^{\theta_{1}^{T} x}+e^{\theta_{2}^{T} x}}\left[\begin{array}{l} e^{\theta_{1}^{T} x} \\ e^{\theta_{2}^{T} x} \end{array}\right]
  • Воспользовавшись особенностью избыточности параметров, вычтем все параметры из приведенной выше формулыθ1\theta_{1}, приведенная выше формула принимает вид:

hθ(x)=1e0x+e(θ2Tθ1T)x[e0xe(θ2Tθ1T)x]=[11+eTTx111+eθTx]\begin{aligned} h_{\theta}(x) &=\frac{1}{e^{0 \cdot x}+e^{\left(\theta_{2}^{T}-\theta_{1}^{T}\right) x}}\left[\begin{array}{c} e^{0 \cdot x} \\ e^{\left(\theta_{2}^{T}-\theta_{1}^{T}\right) x} \end{array}\right] \\ &=\left[\begin{array}{c} \frac{1}{1+e^{T^{T} x}} \\ 1-\frac{1}{1+e^{\theta T} x} \end{array}\right] \end{aligned}
  • вθ=θ2θ1\theta=\theta_{2}-\theta_{1}. Видно, что отсортированная формула полностью согласуется с логистической регрессией, поэтому логистическую регрессию бинарной классификации фактически можно рассматривать как полиномиальную логистическую регрессию вk=2k=2Частный случай времени.

  • Далее мы видимGBDT\text {GBDT}Конкретный метод мульти-классификации:

    • При применении GBDT к проблеме бинарной классификации необходимо учитывать модель логистической регрессии, а для задачи множественной классификации GBDT необходимо учитывать следующую модель Softmax:
    P(y=1x)=eF1(x)i=1keFi(x)P(y=2x)=eF2(x)i=1keFi(x)P(y=kx)=eFk(x)i=1keFi(x)\begin{array}{c} P(y=1 \mid x)=\frac{e^{F_{1}(x)}}{\sum_{i=1}^{k} e^{F_{i}(x)}} \\ P(y=2 \mid x)=\frac{e^{F_{2}(x)}}{\sum_{i=1}^{k} e^{F_{i}(x)}} \\ \ldots \ldots \\ P(y=k \mid x)=\frac{e^{F_{k}(x)}}{\sum_{i=1}^{k} e^{F_{i}(x)}} \end{array}
    • вF1FkF_{1} \ldots F_{k}даkkАнсамбль различных деревьев регрессии CART. Каждый раунд тренировки на самом деле является тренировкой.kkДерево, соответствующее отрицательному градиенту каждой ветви модели softmax. Функция однократных потерь модели softmax:
     loss =i=1kyilogP(yix)=i=1kyilogeFi(x)j=1keFj(x)\text { loss }=-\sum_{i=1}^{k} y_{i} \log P\left(y_{i} \mid x\right)=-\sum_{i=1}^{k} y_{i} \log \frac{e^{F_{i}(x)}}{\sum_{j=1}^{k} e^{F_{j}(x)}}
    • здесьyi(i=1k)y_{i}(i=1 \ldots k)- значение исходной метки результата выборки после горячего кодирования по k категориям, вkkв категорииiiКатегорияyi=1y_i=1Остальные все 0. Из вышеприведенного выражения нетрудно вывести:
    lossFi=yieFi(x)j=1keFj(x)=yip(yix)-\frac{\partial l o s s}{\partial F_{i}}=y_{i}-\frac{e^{F_{i}(x)}}{\sum_{j=1}^{k} e^{F_{j}(x)}}=y_{i}-p\left(y_{i} \mid x\right)
    • видно, этоkkДерево также соответствует разнице между истинной меткой и предсказанной вероятностью выборки, что очень похоже на процесс бинарной классификации GBDT.

GBDT\text {GBDT}иBDT\text {BDT}

  • BDT(Boosting Decision Tree)\text {BDT(Boosting Decision Tree)}, дерево повышения, хотя дерево повышения градиента является улучшенной версией дерева повышения, мы также можем думать о дереве повышения как о частном случае, когда функция потерь в дереве повышения градиента принимает квадрат ошибки ошибки, поэтому дерево повышения обучает дерево решений каждый раз Просто установите остатки из предыдущего шага.

  • Однако использование остатка в качестве функции потерь на самом деле имеет большие недостатки.Очевидный недостаток заключается в том, что он слишком чувствителен к выбросам. Давайте посмотрим на пример:

  • Очевидно, что последующая модель будет уделять слишком много внимания четвертому значению, что не является хорошим явлением, поэтому функция потерь общего класса регрессии будет использовать абсолютную функцию потерь или функцию потерь Хубера вместо квадратичной функции потерь:

- Видно, что потеря Huber гораздо более устойчив к выбросам. Потеря Huber - это компромисс между средней квадратной ошибкой и абсолютной потерей. Для выбросов далеко от центра используется абсолютная потеря, в то время как средняя квадратная ошибка используется для точек вблизи центра.


Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение.

Наконец, если вы интересуетесь Python, интеллектуальным анализом данных, машинным обучением и т. д., добро пожаловать в мой блог.