Вступить в клуб →
средняяpythonПрикладные задачи: скоринг, отток, uplift, прогноз

Uplift@k по результатам рандомизированной кампании

Напишите uplift_at_k(rows, k).

  • rows — список кортежей (score, treatment, outcome): прогноз uplift-модели, 1/0 — получил ли клиент воздействие (назначено случайно), 1/0 — целевое действие.
  • Отсортируйте клиентов по score по убыванию (при равенстве сохраните исходный порядок) и возьмите первые ceil(k × n) клиентов, где k — доля от 0 до 1.
  • Uplift@k = доля откликнувшихся среди получивших воздействие в топе − доля среди не получивших в топе. Округлите до 4 знаков.
  • Если в топе нет клиентов одной из групп, верните None.

заготовка решения

import math


def uplift_at_k(rows, k):
    # ваш код
    return None

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела