В этом видео мы поговорим о том как использовать градиентный бустинг для решения задач классификации и регрессии. И давайте сначала вспомним, как выглядит общий алгоритм градиентного бустинга. На каждой итерации мы строим новый базовый алгоритм. Для этого мы сначала вычисляем вектор сдвигов s, который показывает насколько надо изменить прогноз уже построенной композиции на каждом объекте обучающей выборки, чтобы уменьшить ошибку на этой обучающей выборке. После того как вектор сдвигов s вычислен, мы настраиваем базовый алгоритм b n-ное так, чтобы его ответы на обучающей выборке были как можно ближе к этим сдвигам, причем близость мы измеряем с помощью квадрата отклонения. Итак, градиентный бустинг, как правило, используется для решающих деревьев, то есть в качестве базовых алгоритмов используются решающие деревья, это наиболее популярный выбор. При этом решающие деревья выбираются не очень глубокими. Глубина обычно варьируется от двух до восьми, при этом, как правило, ближе к двум. То есть деревья очень неглубокие, и этого достаточно, чтобы восстанавливать сложные закономерности, поскольку бустинг строит направленную композицию. Чтобы он не переобучался, нужно использовать оба подхода к борьбе с переобучением, который мы обсуждали в прошлом видео. Это сокращение шага и обучение каждого базового алгоритма по случайной подвыборке объектов. Давайте посмотрим, как выглядят формулы для сдвигов в конкретных задачах, конкретных функционалах ошибки, и начнем с регрессии. Типичный функционал ошибки в регрессии — это среднеквадратичная ошибка, или MSE, которая выглядит вот так. При этом функция потерь L, которая измеряет ошибку для одного объекта, будет выглядеть как (z- y)², где z — это прогноз нашего алгоритма, а y — истинный ответ на данном объекте. Легко посчитать производную по z этой функции потерь. Она будет выглядеть как 2(z − y). Соответственно, вектор сдвигов будет выглядеть вот так. Каждая его компонента показывает, как нужно модифицировать ответ на каждом объекте обучающей выборки, чтобы уменьшить среднеквадратичную ошибку. Например, для... для первого объекта этот сдвиг будет выглядеть как разность прогноза уже построенной композиции и истинного ответа, умноженное на −2. Перейдем к классификации. Будем говорить про бинарную классификацию, в которой метки имеют значение −1 и +1. Популярным выбором для функции потерь в случае с классификацией является логистическая функция потерь. Например, вы уже её использовали, чтобы строить логистическую регрессию, линейный метод. Логистическая ошибка выглядит вот так. Здесь стоит суммирование по всем объектам, и обратите внимание, здесь мы считаем, что a(x) — это алгоритм, который возвращает не бинарные ответы, а вещественные числа, которые оценивают принадлежность объекта к положительному классу. Если a(x) больше 0, то классификатор относит объект к классу +1, если a(x) меньше 0 то к классу −1. И при этом чем больше по модулю от x, тем больше классификатор уверен в своём выборе. Итак, функция потерь L в этом случае записывается вот так. Это логарифм от 1 + экспонента, и в экспоненте стоит (−yz). От этой функции тоже довольно легко посчитать производную по z. Она будет выглядеть как дробь, где в числителе стоит y, а в знаменателе — 1 + экспонента от (yz), и вся эта дробь с минусом. Соответственно, вектор сдвигов s будет выглядеть вот так. Мы будем настраивать новый базовый алгоритм, так чтобы его ответы на объектах обучающей выборки были как можно ближе вот к этим числам. После того как мы нашли алгоритм от x, мы сможем захотеть классифицировать объекты. Тогда нужно смотреть на знак числа, которое возвращает a от x. Если же мы хотим посчитать вероятность принадлежности объекта x к классу +1, то нужно взять сигмоиду от a от x. То есть посчитать дробь: 1 / 1 + экспонента, от минус ответа алгоритма. Соответственно, вероятность класса −1 вычисляется так же, только в экспоненте не будет знака минуса. Итак, мы вспомнили, что такое градиентный бустинг и обсудили какие именно деревья в нем, как правило, используются. И посмотрели на конкретные формулы, которые получаются при среднеквадратичной функции потерь и логистической функции потерь. А в следующем видео мы обсудим одну особенность, которая возникает при применении градиентного бустинга к решающим деревьям.