Gradient Boost, часть 2 (из 4): подробности регрессии
StatQuest with Josh Starmer
0:00 / 0:00
Gradient Boost, часть 2 (из 4): подробности регрессии
378 156 просмотров · 7 лет назад
StatQuest with Josh Starmer
1,71 млн подписчиков
378 156 просмотров · 7 лет назад
Градиентный бустинг — один из самых популярных алгоритмов машинного обучения. И, представьте себе, он совсем не сложный! Это видео — вторая часть серии, в которой мы шаг за шагом разбираем его работу. В этом видео мы сосредоточимся на оригинальном алгоритме градиентного бустинга, используемом для прогнозирования непрерывного значения, например, веса человека. Мы называем это «использованием градиентного бустинга для регрессии». В третьей части мы рассмотрим, как градиентный бустинг классифицирует образцы на две разные категории, а в четвёртой части мы снова разберёмся с математикой, на этот раз сосредоточившись на классификации.
Этот StatQuest предполагает, что вы уже посмотрели Часть 1:
• Gradient Boost Part 1 (of 4): Regression M...
...он также предполагает, что вы знакомы с деревьями регрессии:
• Regression Trees, Clearly Explained!!!
...и, хотя это и необходимо, вам может быть полезно, если вы понимаете градиентный спуск: • Gradient Descent, Step-by-Step
Этот StatQuest основан на следующих источниках:
Рукопись Джерома Фридмана 1999 года, в которой представлен стохастический градиентный бустинг: https://jerryfriedman.su.domains/ftp/...
Статья Википедии о градиентном бустинге: https://en.wikipedia.org/wiki/Gradien...
ПРИМЕЧАНИЕ: Ключ к пониманию связи статьи Википедии с этим видео — продолжить чтение после раздела «псевдоалгоритм». В следующем разделе статьи, озаглавленном «Градиентный бустинг деревьев», показано, как работает алгоритм для деревьев (это практически единственный слабый классификатор, который когда-либо используется в градиентном бусте, поэтому я и уделяю ему особое внимание в видео). В этом разделе вы увидите, как уравнение модифицируется таким образом, чтобы каждый лист дерева мог иметь различное выходное значение, а не весь «слабый классификатор» имел одно выходное значение — и это то же самое уравнение, которое я использую в видео.
Далее в статье, в разделе «Сжатие», показано, как можно включить скорость обучения. Поскольку это также практически всегда используется в градиентном бусте, я просто включил это в базовый алгоритм, который я описываю.
Реализация градиентного бустинга в scikit-learn: https://scikit-learn.org/stable/modul...
Полный список всех видеороликов StatQuest можно найти здесь:
https://statquest.org/video-index/
Если вы хотите поддержать StatQuest, пожалуйста, рассмотрите следующие варианты:
Patreon: / statquest
...или...
Подписка на YouTube: / @statquest
...покупка одной из моих книг, учебного пособия, футболки или толстовки, или песни в магазине StatQuest...
https://statquest.org/statquest-store/
...или просто пожертвование StatQuest!
https://www.paypal.me/statquest
И наконец, если вы хотите следить за моими исследованиями и созданием новых StatQuest, подпишитесь на меня в Твиттере:
/ joshuastarmer
0:00 Отличная песня и вступление
0:00 Шаг 0: Данные и функция потерь
6:30 Шаг 1: Инициализация модели постоянным значением
9:10 Шаг 2: Построение M деревьев
10:01 Шаг 2.A: Вычисление остатков
12:47 Шаг 2.B: Построение дерева регрессии по остаткам
14:50 Шаг 2.C: Оптимизация выходных значений листьев
20:38 Шаг 2.D: Обновление прогнозов с помощью нового дерева
23:19 Шаг 2: Краткое изложение шага 2
24:59 Шаг 3: Вывод окончательного прогноза
Исправления:
4:27 Сумма слева должна быть в скобках для большей ясности что вся сумма умножается на 1/2, а не только первый член.
15:47. Должно быть R_jm, а не R_ij.
16:18, лист в скрипте — R_1,2, а должно быть R_2,1.
21:08. В деревьях регрессии выборка доходит только до одного листа, и это суммирование просто выделяет одно интересующее выходное значение из всех остальных. Однако, когда я впервые делал это видео, я думал, что, поскольку градиентный бустинг должен работать с любым «слабым классификатором», а не только с небольшими деревьями регрессии, это суммирование было способом добавить гибкости алгоритму.
24:15, заголовок для столбца остатков должен быть r_i,2.
#statquest #gradientboost