Читаю 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
Встретил там незнакомое слово 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