Сегодня я хотел бы рассказать вам о том, что такое моделирование аплифта. И на небольшом примере расскажите, как работает простая модель дерева поднятия.
Бизнес-задача
Хотим выбрать оффер для пользователя (или не делать) — Next Best Offer. Например:
Какую скидку дать клиенту?
Какую категорию товаров лучше предложить клиенту?
Все объекты можно разделить на 4 части, как это представлено в матрице. Допустим, мы хотим увеличить количество продаж и можем давать или не давать скидку. Есть те, кто все равно купит. Этой группе, вероятно, не следует давать скидку. Следующая группа, самая интересная, — это те, кто купит только при обнаружении. Остальные 2 группы — это те, кто не будет покупать как с экспозицией, так и без нее.
задача машинного обучения
Что такое подъем?
uplift — изменение целевой переменной при условии W, запишем формулу:
И наша задача - сделать такое предложение, чтобы максимизировать подъем
Дерево поднятия — это модель, которая может прогнозировать поднятие подобно обычному дереву. Конечно, мы можем построить случайный лес uplift. Вы можете найти реализацию здесь. Этот пакет сделал Uber. Causal ML – это пакет Python, предоставляющий набор методов моделирования подъема и причинно-следственных связей с использованием алгоритмов машинного обучения
Основное отличие от обычной реализации дерева заключается в том, как алгоритм выбирает наилучшее разбиение. Вместо Энтропии можно использовать другой критерий. Мы хотим разделить данные таким образом, чтобы прогноз Uplift максимально отличался в листьях.
Для нашего простого примера мы выберем разбиение таким образом, чтобы разница в листьях была максимальной, следующим образом:
усиление = |uplift_leave1 — uplift_leave2| -> Макс,
uplift_leave = среднее (Y (W = 1)) - среднее (Y (W = 1))
Остальная реализация вам уже знакома. Нам нужно выбрать лучший признак для разделения и лучший порог.
_get_thresholds создает массив возможных порогов. _best_split найти лучшую функцию и порог по _gain.
Весь код реализации UpliftTreeRegressor показан ниже. Спасибо за чтение. Мой гитхаб)