Градиентный бустинг

Пост про градиентный бустинг (Gradient Boosting), но не совсем обычный. Вместо текста прикрепляю pdf. Вопрос к читателям блога: будет ли полезно, если я подготовлю книжку в таком стиле по основным темам машинного обучения?

boosting.jpg

Сейчас очень много материалов про машинное обучение и анализ данных. Просто плодить их, наверное, смысла не имеет. Все соображения / замечания / предложения — прошу в комментарии.

На всякий случай, современные реализации градиентного бустинга над деревьями для языка Python:

  1. sklearn.ensemble. GradientBoostingRegressor / GradientBoostingClassifier
  2. XGBoost (eXtreme Gradient Boosting)
  3. LightGBM, Light Gradient Boosting Machine

Последние две существенно быстрее и лучше (по качеству), кроме того, постоянно пополняются новыми фишками.

 

 

 

Градиентный бустинг: 37 комментариев

      • Здравствуйте! А книжка уже есть? Спасибо за интересную подачу материала. Сейчас читаю для устранения пробелов в знаниях ML и повторения уже изученного. Книжка была бы очень полезна в случаях, когда, например, нужно быстро подготовиться к какому-то собеседованию или накидать некую скелетную модель ML, которой пользуешься редко (например, когда последние год-два работаешь с нейронками, а тут резко случайного леса захотелось).

  1. Добрый день. Литературы с одной стороны много…но в ней мало примеров как теорию реализовать на практике. Было бы неплохо, если бы в такой книге содержались простые примеры и алгоритмы к ним. Чтобы можно было самому все реализовать и «прочувствовать» суть. Мне так кажется. Тогда польза будет вдвойне.

  2. Мне нравится стиль изложения / объяснения, с удовольствием почитал бы книгу.

  3. Спасибо! Отличная статья, хочется книгу целиком, пишите, обязательно куплю в свою библиотеку!!!

    • Хороший вопрос… Я планировал уже закончить, но погряз в делах и сейчас пока есть только 30%, т.е. работа только начата:(

  4. У вас опечатка в pdf документе страница 4, производная Adaboost лосс функции. Там нет знака дифференциала или запятой сверху)
    Так же нет номеров рисунков в тексте, т.е. хоть это и является достаточно очевидным, то к примеру когда два рисунка подряд, может быть путаница, на какой именно вы ссылаетесь в тексте.

    • Ну, как-то она идёт… просто медленно. И параллельно много над чем идёт: я сейчас курс по МО готовлю, плюс там большая часть по DL. Скорее всего, это материал, который не будет пересекаться с книгой…

  5. Спасибо за статью. В конце говорится про то, что ответы переобученного gb могут быть больше единицы. Не могли бы Вы объяснить почему так происходит или хотя бы навести на мысль?

    • RF усредняет метки объектов обучения, которые попали в один лист, поэтому усреднение не может вылезти за пределы отрезка [min, max]. А при бустинге каждый следующий алгоритм настраивается на разницу «истина — ответ текущей композиции», поэтому гарантии, что мы останемся внутри этого отрезка нет.

  6. Добрый день, кажется, ошибка в производной логистической ошибки: в знаменателе, мне кажется, должна быть экспонента с положительной степенью.

  7. Александр, добрый день!
    Очень понравилась ваша версия начала рассказа про градиентные бустинги.
    Можете подсказать где можно найти что-нибудь похожее на ваше видение?
    Меня интересует практика настройки параметров бустинга — хотелось бы подробнее почитать.

  8. Здравствуйте. Я самоучка. В свободное время обучаю модели, участвую в соревнованиях. Сейчас выбрал соревнование по предсказанию временных рядов, но это первый раз. В интернете не могу найти учебные материалы о том, как делается предсказание моделями градиентного бустинга для предсказания будущего значения. Не могли бы Вы порекомендовать что-нибудь для того чтобы научится готовить временной ряд для подачи в модель, как обрабатывать полученные значения, что-нибудь практическое?

  9. Добрый вечер! Спасибо за материал, очень интересно. Правильно ли я понимаю. что в разделе про продвинутые методы оптимизации, когда лосс раскладывается в р. Тейлора до 2-го члена + навешиваются два дополнительных слагаемых для регуляризации, их смысл таков:
    — gamma*T — ограничивает сложность/глубину дерева. Чтобы не переобучались базовые модели;
    — lambda * sum( bi**2 )- ограничение значений ответов в листьях. Т.к раскладываем в р. Тейлора по этим bi, а разложение в ряд тем точнее, чем ближе т. X(a(x) + b(x)) к начальной т. Х0(a(x)). Следовательно, наше разложение точнее приближает исходный лосс L(yj, a(xj) + b(xj) )?

    • Да, lambda * sum( bi**2 ) скорее немного замедляет обучение, поскольку запрещает точнее настраиваться на выборку — что и создаёт эффект регуляризации.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s