Skip to content

Latest commit

 

History

History
30 lines (28 loc) · 5.46 KB

File metadata and controls

30 lines (28 loc) · 5.46 KB

Предсказание ухода слушателя

Онлайн-курсы, кроме своей удобности и доступности, славятся тем, что на них необычайно легко забивать, что с успехом и делают многие слушатели. Забивать слушателям случается по самым разным причинам - непонятен курс, пропущен дедлайн, не успел набрать баллы, вышел Fallout 4 - у всех свои оправдания. А вот у нас оправданий быть не может: если человек покидает курс, мир теряет потенциального разработчика или специалиста по анализу данных, а ещё киловатт-часы и затраченное нашим героем время.

Было бы очень круто научиться предотвращать такие ситуации - предугадывать случаи, когда слушатель вот-вот уйдёт с курса и, если возможно, возвращать его обратно - напоминанием, советом, печенькой (гипотетической) или ещё чем. Также было бы замечательно находить такие этапы (степы) курсов, после которых значимая часть слушателей "отваливается", дабы делать их более дружелюбными к слушателю.

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

Говоря более строго, мы хотим по данным о пользователе и его активности в рамках курса определить, закончит ли он курс. Под словами “закончить курс” при этом стоит понимать “набрать нужное количество баллов для прохождения”.

Чтобы дать вам большую свободу в аналитике поиске признаков, влияющих на то, закончит ли пользователь курс, мы отдаём вам данные пользователей в максимально подробном виде: с указанием времени,когда пользователь совершил каждое действие: открыл видео, отправил код на проверку или ответил на вопросы теста.

Традиционный (но не обязательный) способ предсказывать уход пользователя - для начала - попытаться найти такие признаки, которые отличают прошедших курс от “отвалившихся”.

Примеры таких признаков:

  • Количество заданий, выполненных за 2 недели (гипотеза: более усердные пользователи чаще заканчивают курс)
  • Среднее время выполнения задания
  • Регулярность работы над курсом (что бы это не значило)
  • Доля пропущенных видео/заданий

Обычно лучше использовать сразу несколько признаков, объединив их вместе некоторым правилом (например, деревьями решений). Стоит ожидать, что даже несколько объединённых признаков не дадут идеальных предсказаний ухода пользователей.

Чтобы сравнивать различные подходы, стоит использовать формальные метрики качества. Пример такой метрики - точность - доля случаев, когда ваш алгоритм правильно угадал, пройдёт ли пользователь курс.

В файле user_activity.csv даны полные логи за первые 2 недели у некоторых пользователей курса. В файле targets.csv - ответы: прошёл ли очередной пользователь свой курс. Пример работы с данными <ссылка на пример работы>.

В файле test_user_activity.csv содержатся логи для пользователей, ответы про которых неизвестны. Файл test_user_ids.csv содержит список их id. Вам нужно написать программу, которая для всех id пользователей only_ones.csv выдаст вердикт -- закончит он курс или нет.

Решение