Notice: file_put_contents(): Write of 3310 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 16384 of 19694 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Artificial stupidity@artificial_stupid P.225
ARTIFICIAL_STUPID Telegram 225
#statistics

Uplift деревья. Что это и зачем нужно?

Итак, что такое uplift деревья?

У нас есть много разных методов оценки uplift-а (про это понятие я ранее писал, как про CATE: Conditional Average Treatment Effect, но вообще это еще может быть и не индивидуальном уровне, то есть ITE: Individual Treatment Effect) для разных ситуаций (ранее я писал про S,T,X,R learners, то есть подходы с использованием meta-learners). Но они имеют свои минусы (к примеру, при использовании двух разных моделей мы получаем двойную ошибку, при разных типах моделей одна может переобучиться, а другая - недообучиться и т.п.). Хочется взять что-то достаточно привычное, что можно было бы использовать напрямую к данной задаче. На выручку к нам приходят решающие деревья (decision tree).

Итак, мы хотим использовать некоторое дерево, которое в узлах будет по некоему критерию разделять наши группы пользователей. Желательно, чтобы этот критерий был как можно ближе к реальности, то есть позволял отделить наш эффект от воздействия на целевую группу.

Какие для этого есть предложения? Предложение следующее - давайте для критерия разделения использовать разницу между нашими распределениями. Чем больше мы разделим распределение в целевой и контрольной группах - тем ближе подберемся к оценке uplift'а.

Здесь у нас есть несколько вариантов:
1. Дивергенция Кульбака-Лейблера (Kullback–Leibler divergence);
2. Евклидово расстояние (Euclidean distance);
3. Дивергенция хи-квадрат (Сhi-squared divergence, отличается от евклидова расстояния тем, что мы вместо (p - q)**2 используем ((p - q)**2 / q)).

Получается, что при разбиении мы хотим максимизировать дивергенцию (или разницу) между нашими распределениями.

Казалось бы, все ок, с задачей справились. Но! Возникает новая проблема: у нас начинают появляться неравномерные разбиения с большим количеством контрольных объектов или объектов с воздействием. Приходится модифицировать наш критерий таким образом, чтобы учитывалось и количество объектов в разных группах при разделении на ветви дерева (подробнее можно посмотреть здесь).

Обновленная метрика позволяет получить лучшие результаты. Правда, тут стоит заметить, что это все еще не прямая оптимизация uplift'а, а лишь некоторое приближение. Ну и, конечно же, указанную проблему постарались решить в более поздних работах. Про то, что же предложили в этих работах, я расскажу позже.

А пока предлагаю посмотреть реализацию uplift tree в библиотеке causalml от Uber.
👍3



tgoop.com/artificial_stupid/225
Create:
Last Update:

#statistics

Uplift деревья. Что это и зачем нужно?

Итак, что такое uplift деревья?

У нас есть много разных методов оценки uplift-а (про это понятие я ранее писал, как про CATE: Conditional Average Treatment Effect, но вообще это еще может быть и не индивидуальном уровне, то есть ITE: Individual Treatment Effect) для разных ситуаций (ранее я писал про S,T,X,R learners, то есть подходы с использованием meta-learners). Но они имеют свои минусы (к примеру, при использовании двух разных моделей мы получаем двойную ошибку, при разных типах моделей одна может переобучиться, а другая - недообучиться и т.п.). Хочется взять что-то достаточно привычное, что можно было бы использовать напрямую к данной задаче. На выручку к нам приходят решающие деревья (decision tree).

Итак, мы хотим использовать некоторое дерево, которое в узлах будет по некоему критерию разделять наши группы пользователей. Желательно, чтобы этот критерий был как можно ближе к реальности, то есть позволял отделить наш эффект от воздействия на целевую группу.

Какие для этого есть предложения? Предложение следующее - давайте для критерия разделения использовать разницу между нашими распределениями. Чем больше мы разделим распределение в целевой и контрольной группах - тем ближе подберемся к оценке uplift'а.

Здесь у нас есть несколько вариантов:
1. Дивергенция Кульбака-Лейблера (Kullback–Leibler divergence);
2. Евклидово расстояние (Euclidean distance);
3. Дивергенция хи-квадрат (Сhi-squared divergence, отличается от евклидова расстояния тем, что мы вместо (p - q)**2 используем ((p - q)**2 / q)).

Получается, что при разбиении мы хотим максимизировать дивергенцию (или разницу) между нашими распределениями.

Казалось бы, все ок, с задачей справились. Но! Возникает новая проблема: у нас начинают появляться неравномерные разбиения с большим количеством контрольных объектов или объектов с воздействием. Приходится модифицировать наш критерий таким образом, чтобы учитывалось и количество объектов в разных группах при разделении на ветви дерева (подробнее можно посмотреть здесь).

Обновленная метрика позволяет получить лучшие результаты. Правда, тут стоит заметить, что это все еще не прямая оптимизация uplift'а, а лишь некоторое приближение. Ну и, конечно же, указанную проблему постарались решить в более поздних работах. Про то, что же предложили в этих работах, я расскажу позже.

А пока предлагаю посмотреть реализацию uplift tree в библиотеке causalml от Uber.

BY Artificial stupidity


Share with your friend now:
tgoop.com/artificial_stupid/225

View MORE
Open in Telegram


Telegram News

Date: |

For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. Among the requests, the Brazilian electoral Court wanted to know if they could obtain data on the origins of malicious content posted on the platform. According to the TSE, this would enable the authorities to track false content and identify the user responsible for publishing it in the first place. "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. Telegram users themselves will be able to flag and report potentially false content. Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.”
from us


Telegram Artificial stupidity
FROM American