Skip to content

Hololovich/Coursera-churn-prediction

Repository files navigation

Coursera Churn prediction

В 2009 году проводилось соревнование KDD Cup: Customer relationship prediction. В рамках этого соревнования участникам предлагалось решить 3 задачи из области Customer Relationship Management (CRM):

оценка вероятности того, что клиент осуществит переход к конкуренту (churn prediction); оценка склонности клиента к покупке новых продуктов и услуг (appetency); оценка склонности клиента к покупке обновлений или дополнений к ранее приобретенным продуктам (up-selling). Подробно с соревнованием можно ознакомиться на сайте KDD: http://www.kdd.org/kdd-cup/view/kdd-cup-2009/Intro

Данные для соревнования были предоставлены французской телекоммуникационной компанией Orange. В задаче речь идет о клиентских данных, поэтому данные были предварительно обфусцированы и анонимизированны: из датасета убрана любая персональная информация, позволяющая идентифицировать пользователей, а также не представлены названия и описания переменных, предназначенных для построения прогнозов. Мы будем работать с набором данных orange small dataset. Он состоит из 50 тыс. объектов и включает 230 переменных, из которых первые 190 переменных - числовые, и оставшиеся 40 переменные - категориальные.

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

Цель проекта - научиться находить пользователей, склонных к оттоку. Если научиться находить таких пользователей с достаточной точностью заблаговременно, то можно эффективно управлять оттоком: например, выявлять причины оттока; помогать пользователям, попавшим в группу риска, решать их проблемы и задачи; проводить кампании по удержанию.

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

В проекте представлены все этапы анализа данных и построения вероятностных моделей классификации.

Проект включает в себя следующие ноутбуки:

  • week_1_data_analysis.ipynb - описательный анализ данных;
  • week_2_make_test_train.ipynb - разделение датасета на train и hold out;
  • Week_3_baseline.ipynb - построение baseline-решения;
  • Week_4_kaggle.ipynb - участие в соревновании на kaggle inclass;
  • week_5_experiments_with_the_model.ipynb - эксперименты и оптимизация модели вероятностной классификации;
  • Week_6_economic_effect.ipynb - оценка экономического эффекта от внедрения модели;
  • Week_7_report.pdf - отчет по проделанной работе;

Для запуска ноутбуков потребуются:

  • Anaconda-navigator 1.6.3
  • python 2.7.13
  • LightGBM 2.0.12
  • XGBoost 0.6
  • Seaborn 0.7.1