Что такое таргет для деревьев в бустинге и как он формируется
Что проверяют
Понимаете ли вы, что дерево в градиентном бустинге учится не на исходной целевой переменной, а на производной функции потерь по текущему предсказанию. Различие между таргетом модели и таргетом очередного дерева и есть суть вопроса.
Как отвечать
Модель строится последовательно. Первое приближение это константа: среднее для квадратичной ошибки, логарифм шансов для логистической. Дальше на каждой итерации для каждого объекта считается градиент потери по текущему предсказанию, и очередное дерево обучается предсказывать антиградиент.
F = init_const(y)
for _ in range(n_trees):
g = grad(loss, y, F) # для MSE это F минус y
tree = fit(X, -g) # таргет дерева, а не исходный y
F += lr * tree.predict(X)Частный случай и порождает путаницу: для квадратичной ошибки антиградиент совпадает с остатком, отсюда расхожая фраза про обучение на остатках. Для логистической потери, для средней абсолютной ошибки, для квантильной это уже не остаток, а именно градиент.
Ещё одна деталь, которую ждут от сильного кандидата: разбиения дерево ищет по градиентам, а значение в листе подбирается отдельно, минимизацией потери на попавших в лист объектах. В реализациях второго порядка лист считается через суммы градиентов и гессианов с регуляризацией, поэтому при разной функции потерь одно и то же разбиение даёт разные предсказания.
Для классификации исходный таргет это метка, но модель складывает логиты, и вероятность получается преобразованием суммы, а не усреднением ответов деревьев.
Где спотыкаются
Называют остатки универсальным ответом. Для любой потери, кроме квадратичной, это неверно, и на уточняющий вопрос про логистическую потерю ответ рассыпается.
Смешивают таргет модели и таргет дерева. Отсюда растёт убеждение, будто каждое дерево предсказывает целевую переменную, а ответы усредняются, тогда как они складываются с темпом обучения.
Допускают утечку при кодировании категорий средним по целевой переменной. Признак считается по тем же строкам, на которых идёт обучение, на валидации метрика выглядит прекрасно, а в бою качество проседает. Лечится расчётом по отложенным частям выборки или упорядоченным кодированием.