Пост про градиентный бустинг (Gradient Boosting), но не совсем обычный. Вместо текста прикрепляю pdf. Вопрос к читателям блога: будет ли полезно, если я подготовлю книжку в таком стиле по основным темам машинного обучения?
Сейчас очень много материалов про машинное обучение и анализ данных. Просто плодить их, наверное, смысла не имеет. Все соображения / замечания / предложения — прошу в комментарии.
На всякий случай, современные реализации градиентного бустинга над деревьями для языка Python:
- sklearn.ensemble. GradientBoostingRegressor / GradientBoostingClassifier
- XGBoost (eXtreme Gradient Boosting)
- LightGBM, Light Gradient Boosting Machine
Последние две существенно быстрее и лучше (по качеству), кроме того, постоянно пополняются новыми фишками.
Будет полезно, ждем книжку!
Что-то Вы подозрительно быстро дали отзыв… через несколько минут после выхода поста.
Здравствуйте! А книжка уже есть? Спасибо за интересную подачу материала. Сейчас читаю для устранения пробелов в знаниях ML и повторения уже изученного. Книжка была бы очень полезна в случаях, когда, например, нужно быстро подготовиться к какому-то собеседованию или накидать некую скелетную модель ML, которой пользуешься редко (например, когда последние год-два работаешь с нейронками, а тут резко случайного леса захотелось).
Здравствуйте! Пока нет… нет времени.
Из современных реализаций бустинга еще H2O, они сейчас быстрее остальных развивают обучение на GPU, в частности, в рамках фреймворка H2O реализован Xgboost на GPU. https://www.youtube.com/watch?v=NkeSDrifJdg
Да, я слышал. Но пока не пробовал.
Если нужен какой-то дополнительный материал по H2O, обращайтесь. Сам недавно рассматривал этот фреймворк для книжки по лесу.
Отлично, пустил на печать. Жду продолжения!
Будет полезно!
Добрый день. Литературы с одной стороны много…но в ней мало примеров как теорию реализовать на практике. Было бы неплохо, если бы в такой книге содержались простые примеры и алгоритмы к ним. Чтобы можно было самому все реализовать и «прочувствовать» суть. Мне так кажется. Тогда польза будет вдвойне.
На эту тему есть пара отличных постов
— http://xgboost.readthedocs.io/en/latest/model.html
— https://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
Мне нравится стиль изложения / объяснения, с удовольствием почитал бы книгу.
Добрый день.
Отличная подача материала, было бы здорово почитать книгу по основным темам машинного обучения.
Спасибо! Отличная статья, хочется книгу целиком, пишите, обязательно куплю в свою библиотеку!!!
Формат хороший.
Но если бы было в латехе.. Было бы еще круче)
Осталось только мотивировать ведущие российские издания принимать рукописи в LaTeX-е… а то, что мне потом из ТеХа в Word специально для публикации переделывать?!
См., например,
http://dmkpress.com/authors/documents/
[…] Градиентный бустинг (3517) […]
[…] вероятностей) двух алгоритмов: градиентного бустинга (lightgbm) и случайного леса (random […]
Когда можно ожидать книгу?
Хороший вопрос… Я планировал уже закончить, но погряз в делах и сейчас пока есть только 30%, т.е. работа только начата:(
У вас опечатка в pdf документе страница 4, производная Adaboost лосс функции. Там нет знака дифференциала или запятой сверху)
Так же нет номеров рисунков в тексте, т.е. хоть это и является достаточно очевидным, то к примеру когда два рисунка подряд, может быть путаница, на какой именно вы ссылаетесь в тексте.
надеюсь, работа над книжкой идет. Очень хотелось бы иметь!
Ну, как-то она идёт… просто медленно. И параллельно много над чем идёт: я сейчас курс по МО готовлю, плюс там большая часть по DL. Скорее всего, это материал, который не будет пересекаться с книгой…
Спасибо за статью. В конце говорится про то, что ответы переобученного gb могут быть больше единицы. Не могли бы Вы объяснить почему так происходит или хотя бы навести на мысль?
RF усредняет метки объектов обучения, которые попали в один лист, поэтому усреднение не может вылезти за пределы отрезка [min, max]. А при бустинге каждый следующий алгоритм настраивается на разницу «истина — ответ текущей композиции», поэтому гарантии, что мы останемся внутри этого отрезка нет.
Александр, добрый день. Хотел уточнить где можно ваш курс посмотреть?
пока его нигде нет, материалы по некоторым моим курсам выложены здесь:
https://github.com/Dyakonov/PZAD
https://github.com/Dyakonov/IML
[…] практически не используется, поскольку его вытеснил градиентный аналог. На рис. 5 показано (верхний ряд), как меняются веса […]
Добрый день, кажется, ошибка в производной логистической ошибки: в знаменателе, мне кажется, должна быть экспонента с положительной степенью.
Да, спасибо
Александр, добрый день!
Очень понравилась ваша версия начала рассказа про градиентные бустинги.
Можете подсказать где можно найти что-нибудь похожее на ваше видение?
Меня интересует практика настройки параметров бустинга — хотелось бы подробнее почитать.
Здравствуйте!
Можно здесь посмотреть видео: https://youtu.be/Xrm_evAhDeU
Спасибо! Это видео я уже нашел 🙂
Здравствуйте. Я самоучка. В свободное время обучаю модели, участвую в соревнованиях. Сейчас выбрал соревнование по предсказанию временных рядов, но это первый раз. В интернете не могу найти учебные материалы о том, как делается предсказание моделями градиентного бустинга для предсказания будущего значения. Не могли бы Вы порекомендовать что-нибудь для того чтобы научится готовить временной ряд для подачи в модель, как обрабатывать полученные значения, что-нибудь практическое?
Кроме того, что легко гуглится, боюсь, что нет.
Добрый вечер! Спасибо за материал, очень интересно. Правильно ли я понимаю. что в разделе про продвинутые методы оптимизации, когда лосс раскладывается в р. Тейлора до 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 ) скорее немного замедляет обучение, поскольку запрещает точнее настраиваться на выборку — что и создаёт эффект регуляризации.