Начни отсюда
Вся лаба на пальцах
Если в лабе непонятно вообще ничего, прочитай эту страницу. Здесь нет кода и формул: только что мы делаем и зачем, на одном примере с банком.
1. Задача
Банк хочет заранее знать, какие клиенты скоро уйдут, чтобы успеть им позвонить. У банка есть таблица про 10 000 прошлых клиентов: возраст, сколько продуктов (карта, вклад, кредит), активен ли, из какой страны, и главное: ушёл он в итоге или нет.
2. Дерево решений = анкета из вопросов
Компьютер сам придумывает цепочку вопросов. Например (выдуманное дерево для примера):
Ты пишешь такое дерево сам: оно должно уметь придумать вопросы по таблице (задание 1).
3. Как дерево придумывает вопросы
Оно пробует все возможные вопросы («возраст больше 30? больше 31? ... активен?») и выбирает тот, после которого кучки клиентов стали самыми «однородными»: в одной почти все ушли, в другой почти все остались. Однородность меряем числом «беспорядка» (энтропия или Джини). Это функционалы, первое, что пишется в лабе.
4. Когда остановиться
Если задавать вопросы бесконечно, дерево дойдёт до листа «клиент №4817» и просто запомнит всю таблицу. На новых клиентах оно будет ошибаться: это переобучение. Поэтому дереву ставят ограничения (критерии остановки): не больше 5 вопросов подряд, не меньше 5 клиентов в листе и т.п.
5. Как проверить, что модель хорошая
Часть таблицы (например, 20%) прячем. Учим модель на остальном, а потом проверяем на спрятанном: модель этих клиентов не видела, как ученик не видел задач экзамена. Насколько хорошо она угадала, меряют метрикой (accuracy, ROC-AUC, ошибка в годах и т.д.).
6. Лес = совет из 200 деревьев
Одно дерево капризное: чуть поменяй данные, и вопросы будут другие. Поэтому строим 200 деревьев, каждое на своей случайной версии таблицы, и устраиваем голосование. Это случайный лес (задание 2). Он почти всегда точнее одного дерева.
7. Бустинг = команда, где каждый исправляет предыдущего
Первое маленькое дерево делает грубый прогноз. Второе дерево смотрит, где первое ошиблось, и учится исправлять именно эти ошибки. Третье исправляет ошибки первых двух, и так далее. Это градиентный бустинг (задание 3). Важная деталь: насколько сильно доверять каждому исправлению (шаг ρ). Слишком большой шаг, и прогноз прыгает туда-обратно.
8. Что же ты сделал в лабе
| Задание | Простыми словами |
|---|---|
| Функционалы | научил компьютер мерить беспорядок в кучке |
| 1.1 | своё дерево угадывает вид цветка по размерам лепестков |
| 1.2 | то же дерево угадывает число: сколько лет живут в стране |
| 2.1 | свой лес угадывает, уйдёт ли клиент банка |
| 2.2 | выяснил, по каким признакам лес это понимает |
| 2.3 | лес вместо дерева для продолжительности жизни: точнее |
| 3.1 | свой бустинг: деревья, исправляющие друг друга |
| 3.2 | показал, что подбирать шаг ρ обязательно |
Зачем прятать часть данных (test)?
Модель могла просто запомнить обучающие примеры. Честная проверка возможна только на новых данных, как экзамен на новых задачах.
Чем лес лучше одного дерева?
Каждое дерево ошибается по-своему (видело свою случайную версию данных), и при голосовании случайные ошибки взаимно компенсируются.
Что делает каждое новое дерево в бустинге?
Новое дерево учится предсказывать текущую ошибку (остатки), и его ответ прибавляется к общему прогнозу.
Как идти по гайду
- Эта страница: общая картина.
- «Как измерить беспорядок»: поиграй с корзиной носков.
- «Своё дерево»: проведи цветок по дереву и подвигай порог.
- Дальше по порядку, в каждой теме есть игрушка и «Проверь себя».
- Перед защитой: шпаргалка и «Рассказ на защите».