Читаю A Survey of Causal Inference Applications at Netflix



Встретил там незнакомое слово double machine learning

Решил поискать что это такое, наткнулся на статью и документацию к библиотеке



Попробуем разобрать что же это такое

Наша цель оценить каузальный эффект воздействия Т, на целевую переменную Y



Введем понятия:

Y - целевая переменная

T - флаг Treatment 1/0

X - вектор признаков



Делаем регрессию/классификацию Y на X

Делаем регрессию/классификацию T на X



Отбираем самые важные/полезные фичи (feature importance, shapley value, зануление через L1 регуляризацию - как угодно)



Теперь у наc есть Y_X- самые важные фичи для Y и T_X - самые важные фичи для T



Бьем датасет на K фолдов, допустим K= 5 (ниже условный пример)



На k_1 учим модель M_Y_X - предиктить Y, используем k_2 как валидацию. Используем фичи Y_X

На k_1 учим модель M_T_X - предиктить T, используем k_2 как валидацию. Используем фичи T_X



На k_3,4,5 применяем M_Y_X и M_T_X -> получаем предикты для Y, Y_k_3,4,5_hat. Для T получаем T_k_3,4,5_hat

Вычитаем Y_k_3,4,5_hat из истинных значений Y_k_3,4,5 и тоже самое делаем для T_k_3,4,5_hat

Получаем Y_k_3,4,5_residuals = (Y_k_3,4,5 - Y_k_3,4,5_hat), также получаем T_k_3,4,5_residuals



Теперь обучаем модель регрессии/классификации Y_k_3,4_residuals на T_k_3,4_residuals, используя 5 фолд как валидацию (можно и не использовать, просто обучить линейную/логистическую регрессию на одной фиче)



Получаем коэффициент Тета

Делаем так K раз

Усредняем Тета и получаем каузальный эффект T на Y



Чуть ниже и чуть позже разберем почему и как это работает



#ArticleReview