ЛР3
Вся лаба на пальцах

Начни отсюда

Вся лаба на пальцах

Если в лабе непонятно вообще ничего, прочитай эту страницу. Здесь нет кода и формул: только что мы делаем и зачем, на одном примере с банком.

1. Задача

Банк хочет заранее знать, какие клиенты скоро уйдут, чтобы успеть им позвонить. У банка есть таблица про 10 000 прошлых клиентов: возраст, сколько продуктов (карта, вклад, кредит), активен ли, из какой страны, и главное: ушёл он в итоге или нет.

На пальцах. Машинное обучение здесь это опытный менеджер, который посмотрел на тысячи прошлых клиентов и научился «чуять», кто уйдёт. Только вместо чутья у компьютера правила, найденные по таблице.

2. Дерево решений = анкета из вопросов

Компьютер сам придумывает цепочку вопросов. Например (выдуманное дерево для примера):

Клиентке Анне 52 года, у неё 1 продукт, она неактивна.
↓
Вопрос 1: возраст больше 45? Да → идём направо
↓
Вопрос 2: клиент активен? Нет → идём налево
↓
Лист: из похожих клиентов в прошлом ушли 6 из 10 → «скорее уйдёт», звоним.

Ты пишешь такое дерево сам: оно должно уметь придумать вопросы по таблице (задание 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)?

Чем лес лучше одного дерева?

Что делает каждое новое дерево в бустинге?

Как идти по гайду

  1. Эта страница: общая картина.
  2. «Как измерить беспорядок»: поиграй с корзиной носков.
  3. «Своё дерево»: проведи цветок по дереву и подвигай порог.
  4. Дальше по порядку, в каждой теме есть игрушка и «Проверь себя».
  5. Перед защитой: шпаргалка и «Рассказ на защите».
Одна фразаДерево задаёт вопросы по признакам, лес голосует из многих деревьев, бустинг складывает деревья, каждое из которых исправляет ошибку предыдущих.