Банк запускает активационные кампании по кредитным картам с использованием различных каналов коммуникации. Персональные звонки клиентам - довольно затратный способ коммуникации, при этом не все клиенты позитивно реагируют на такой формат общения: кому-то будет достаточно СМС или пуш-уведомления.
Ваша задача — помочь банку оптимизировать расходы на коммуникации, научившись предсказывать разницу в эффективности голосовых звонков на основе клиентских данных. В качестве решения необходимо предоставить предсказанный моделью uplift для каждого клиента из тестовой выборки.

Данные:
Используя историю взаимодействий, сессии мобильного приложения, заявки на продукты и другие признаки, вам предстоит создать модель, которая сможет повысить эффективность кампаний за счет персонализированного выбора наиболее подходящего способа общения с каждым клиентом. Признаки, которые содержатся в выборках:
successful_utilization – переменная, которая показывает, воспользовался ли клиент кредитным продуктом
retro_date – дата создания задачи на клиента
treatment – колонка, которая показывает, имела ли место голосовая коммуникация с клиентом. 1 – с клиентом общались по голосовому каналу, 0 – с клиентом в этот момент могли общаться по голосовому каналу, но не стали
mb – группа признаков, которая характеризует сессии в мобильном приложении клиента
application – группа признаков, которая характеризует различные заявки клиентов на наши продукты в прошлом
bki - группа признаков, которая характеризует походы клиентов в Бюро Кредитных Историй
partner - группа признаков, которая характеризует различные подписки клиентов на партнерские сервисы
graph - группа признаков, которая характеризует данные о контактных книжках наших клиентов
feature – группа признаков, которая скрыта от описания

Метрика:
Качество решения определяется с помощью метрики Area under uplift curve (AUUQ).
Количество баллов за задание определяется по формуле:

P
o
i
n
t
s
300
∗
p
e
r
c
e
n
t
i
l
e
o
f
s
c
o
r
e
(
u
p
l
i
f
t
a
u
c
s
c
o
r
e
s
,
u
p
l
i
f
t
a
u
c
s
c
o
r
e
)
, где
percentileofscore – функция, вычисляющая percentile rank
uplift auc scores – значения метрик uplift auc score всех участников,
uplift auc score – значение метрики uplift auc score данного участника.

При расчете баллов используются значения метрики участников, чьи решения показали результат лучше, чем приложенный пример ответа на задачу. Решения с метрикой ниже или равной значению, полученному с помощью примера, оцениваются в 0 баллов.

train.csv содержит: ['application_1', 'cc_1', 'cc_2', 'cc_3', 'cc_4', 'feature_1', 'mb_1', 'cc_5', 'cc_6', 'feature_2', 'cc_7', 'cc_8', 'application_2', 'partner_1', 'mb_2', 'mb_3', 'mb_4', 'bki_1', 'graph_1', 'partner_2', 'bki_2', 'partner_3', 'application_3', 'application_4', 'feature_3', 'feature_4', 'bki_3', 'bki_4', 'bki_5', 'feature_5', 'feature_6', 'mb_5', 'cc_9', 'partner_4', 'bki_6', 'partner_5', 'cc_10', 'bki_7', 'partner_6', 'partner_7', 'bki_8', 'feature_7', 'partner_8', 'bki_9', 'cc_11', 'bki_10', 'application_5', 'partner_9', 'cc_12', 'partner_10', 'partner_11', 'graph_2', 'feature_8', 'bki_11', 'feature_9', 'bki_12', 'mb_6', 'bki_13', 'feature_10', 'feature_11', 'partner_12', 'partner_13', 'bki_14', 'partner_14', 'bki_15', 'bki_16', 'graph_3', 'bki_17', 'graph_4', 'feature_12', 'partner_15', 'graph_5', 'partner_16', 'partner_17', 'feature_13', 'cc_13', 'cc_14', 'bki_18', 'feature_14', 'bki_19', 'bki_20', 'cc_15', 'feature_15', 'bki_21', 'feature_16', 'feature_17', 'bki_22', 'bki_23', 'cc_16', 'graph_6', 'feature_18', 'partner_18', 'bki_24', 'bki_25', 'feature_19', 'feature_20', 'application_6', 'bki_26', 'bki_27', 'cc_17', 'bki_28', 'application_7', 'application_8', 'partner_19', 'feature_21', 'bki_29', 'bki_30', 'application_9', 'bki_31', 'cc_18', 'bki_32', 'application_10', 'bki_33', 'application_11', 'mb_7', 'application_12', 'bki_34', 'partner_20', 'partner_21', 'bki_35', 'feature_22', 'bki_36', 'bki_37', 'cc_19', 'bki_38', 'bki_39', 'partner_22', 'application_13', 'partner_23', 'feature_23', 'application_14', 'cc_20', 'bki_40', 'mb_8', 'bki_41', 'graph_7', 'bki_42', 'bki_43', 'bki_44', 'bki_45', 'bki_46', 'feature_24', 'cc_21', 'application_15', 'feature_25', 'feature_26', 'cc_22', 'partner_24', 'application_16', 'retro_date', 'successful_utilization', 'treatment']

test.csv содержит: ['application_1', 'cc_1', 'cc_2', 'cc_3', 'cc_4', 'feature_1', 'mb_1', 'cc_5', 'cc_6', 'feature_2', 'cc_7', 'cc_8', 'application_2', 'partner_1', 'mb_2', 'mb_3', 'mb_4', 'bki_1', 'graph_1', 'partner_2', 'bki_2', 'partner_3', 'application_3', 'application_4', 'feature_3', 'feature_4', 'bki_3', 'bki_4', 'bki_5', 'feature_5', 'feature_6', 'mb_5', 'cc_9', 'partner_4', 'bki_6', 'partner_5', 'cc_10', 'bki_7', 'partner_6', 'partner_7', 'bki_8', 'feature_7', 'partner_8', 'bki_9', 'cc_11', 'bki_10', 'application_5', 'partner_9', 'cc_12', 'partner_10', 'partner_11', 'graph_2', 'feature_8', 'bki_11', 'feature_9', 'bki_12', 'mb_6', 'bki_13', 'feature_10', 'feature_11', 'partner_12', 'partner_13', 'bki_14', 'partner_14', 'bki_15', 'bki_16', 'graph_3', 'bki_17', 'graph_4', 'feature_12', 'partner_15', 'graph_5', 'partner_16', 'partner_17', 'feature_13', 'cc_13', 'cc_14', 'bki_18', 'feature_14', 'bki_19', 'bki_20', 'cc_15', 'feature_15', 'bki_21', 'feature_16', 'feature_17', 'bki_22', 'bki_23', 'cc_16', 'graph_6', 'feature_18', 'partner_18', 'bki_24', 'bki_25', 'feature_19', 'feature_20', 'application_6', 'bki_26', 'bki_27', 'cc_17', 'bki_28', 'application_7', 'application_8', 'partner_19', 'feature_21', 'bki_29', 'bki_30', 'application_9', 'bki_31', 'cc_18', 'bki_32', 'application_10', 'bki_33', 'application_11', 'mb_7', 'application_12', 'bki_34', 'partner_20', 'partner_21', 'bki_35', 'feature_22', 'bki_36', 'bki_37', 'cc_19', 'bki_38', 'bki_39', 'partner_22', 'application_13', 'partner_23', 'feature_23', 'application_14', 'cc_20', 'bki_40', 'mb_8', 'bki_41', 'graph_7', 'bki_42', 'bki_43', 'bki_44', 'bki_45', 'bki_46', 'feature_24', 'cc_21', 'application_15', 'feature_25', 'feature_26', 'cc_22', 'partner_24', 'application_16', 'retro_date']

Дай полный код на python