TGViewer
Интересное что-то Интересное что-то @youknowds · 623 subscribers
Post #11931 225

Forwarded from DziS Science | Data Science

Привет всем!👋

Как и обещал ранее, сегодня расскажу про интересную штуку, о которой, вы вероятно не знали.

Как известно, основным способом улучшения нейронных сетей является два основных метода: дообучение уже существующей модели (обучение архитектуры с инициированными ненулевыми весами, полученными ранее) или Transfer Learning (ярким примером является дообучение BERT'ов, где мы обучаем поверх уже существующего эмбеддера полносвязный слой 'голову' на нужный нам таргет). И в целом, я тут вам Америку не открыл.

-Но знали ли вы, что аналогичные финты ушами можно проводить с моделями градиентного бустинга?
Если нет, то давайте расскажу.

Прежде всего я хотел бы ответить на вопрос "а зачем такое надо? ". Нередко, особенно в рисках, например в моделях скоринга, модели имеют схожий домен и таргет, но при этом обучаются и значит используются на разных бизнес сегментах. Если в более крупном сегменте по выручке мы имеем недостаток данных или целевых наблюдений (мало компаний, низкий Default Rate), то тогда мы можем взять наработки более мелкого сегмента и переиспользовать на более крупный, путем дообучения.

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

🔸🔠🔠🔠🔠🔠🔠🔠 🔠🔠🔠🔠🔠🔠
Это сценарий, когда ранее была использована модель градиентного бустинга и теперь мы можем дообучить ее, технически добавляя деревьев в уже существующий бустинг.

🔠🔠🔠🔠🔠⬇️
➕Простота вывода. Результат - единая модель бустинга, не требующая дополнительных вызовов базовой модели.
➕Экономия вычислительной мощности. Ваша базовая модель уже с какой-то точностью умеет предсказывать целевую метку, вам не нужно строить модель с нуля.

🔠🔠🔠🔠🔠🔠⬇️
〰️ Ограничение выбираемой реализации. Дообучая XGBoost, вы получите бустинг, написанный на XGBoost. Другого не дано.
〰️Ограничение базовых параметров. Большинство параметров дерева в бустинге, наследуются от базовой модели.
Интересный факт: В Catboost можно изменять learning_rate, но при этом большинство параметров, включая способ кодирования категориальных признаков, наследуется от базовой модели.


🔠🔠🔠🔠🔠🔠🔠⬇️
🔸XGBoost:
xgb.train(data=data, xgb_model=old_model)

🔸LightGBM:
lgb.train(train_set=train_new, init_model=old_model)

🔸Catboost:
model.fit(X_new, y_new, init_model=old_model)


🔸🔠🔠🔠🔠🔠🔠🔠 🔠🔠🔠🔠
Это сценарий, когда вместо базовой модели мы получаем на вход предсказания уже готовой модели и строим уже на них модель бустинга, уточняющую предсказание старой модели.

Важно: Предсказания в случае бинарной классификации должны подаваться не в формате предсказаний вероятности, а именно логитов, т.е предсказания до сигмоидального преобразования!


🔠🔠🔠🔠🔠⬇️
➕Свобода выбора базовой модели. В данной конфигурации мы воспринимаем базовую модель в формате black box, то есть нам не важна ее архитектура.

🔠🔠🔠🔠🔠🔠⬇️
〰️ Сложность вывода. Базовый скор необходимо откалибровать на выборке дообучения, т.е построить простейшую линейную модель. Также нам необходимо в продовом инференсе использование инференса базовой модели, то нам необходимо реализовать где-то рядом с дообученной моделью вызов базовой модели.
〰️Итоговая модель - не финальная. Основной сложностью данного подхода является то, что дообученная модель дает лишь смещение и для получения итоговой вероятности модели нам нужно смешать скоры базовой и дообученной модели и после этого прогнать через сигмоидальное преобразование.

🔠🔠🔠🔠🔠🔠🔠⬇️
🔸XGBoost:
xgb.train(data=data, base_margin=init_logits)

🔸LightGBM:
lgb.train(train_set=train_new, init_score=init_score)

🔸Catboost:
model.fit(X_new, y_new, baseline=init_logits)


На этом все, подробнее познакомится с данными техниками призываю самостоятельно, ставь 🔥, если понравилось!
#ds_лайфхаки
More from @youknowds
  1. Sep 24, 2026https://www.youtube.com/watch?v=ZpL3QsO5A9U Спокойное, неторопливое и глубокое видео для т…
  2. Sep 24, 2026#interview #career
  3. Sep 23, 2026Halo: почти год моей работы в White Circle теперь в опенсорсе Почти год я веду в White Cir…
  4. Sep 23, 2026#llm #gpu
  5. Sep 23, 2026Постоянная рубрика: "блекпилл недели (и как с ним быть)" После предыдущего болезненного оп…
  6. Sep 23, 2026#agents #code
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →