Описание проекта
Из банка стали уходить клиенты. Каждый месяц. Немного, но заметно. Банковские маркетологи посчитали: сохранять текущих клиентов дешевле, чем привлекать новых.
Цель проекта:
Необходимо спрогнозировать, уйдёт клиент из банка в ближайшее время или нет. Предоставлены исторические данные о поведении клиентов и расторжении договоров с банком.
Построим модель с предельно большим значением F1-меры (целевой уровень метрики не ниже 0.59). Проверим F1-меру на тестовой выборке.
Дополнительно измерим AUC-ROC, сравним её значение с F1-мерой.
Источник данных: https://www.kaggle.com/barelydedicated/bank-customer-churn-modeling
Оглавление
- 1 Подготовка данных
- 1.1 Загрузим необходимые библиотеки
- 1.2 Загрузим данные
- 1.3 Наименования полей
- 1.4 Выбросы
- 1.5 Обработка пропусков
- 1.6 Дубликаты
- 2 Проведение исследования задачи
- 2.1 Преобразование полей (прямое программирование)
- 2.2 Разбивка features target
- 2.3 Разбивка train_test_split
- 3 Борьба с дисбалансом
- 3.1 Масштабируем численные признаки для работы с линейными моделями
- 3.2 Модель логистической регрессии без учёта дисбаланса
- 3.3 Модель дерева решений без учёта дисбаланса
- 3.4 Модель логистической регрессии c учётом дисбаланса
- 3.4.1 Для учёта дисбаланса применим upsampling
- 3.4.2 Для учёта дисбаланса применим балансировку весов классов
- 3.5 Выбор модели
- 3.6 Подбор оптимальных гиперпараметров для модели случайного леса
- 4 Тестирование модели
- 5 Общий вывод
Описание данных
Признаки
• RowNumber — индекс строки в данных
• CustomerId — уникальный идентификатор клиента
• Surname — фамилия
• CreditScore — кредитный рейтинг
• Geography — страна проживания
• Gender — пол
• Age — возраст
• Tenure — сколько лет человек является клиентом банка
• Balance — баланс на счёте
• NumOfProducts — количество продуктов банка, используемых клиентом
• HasCrCard — наличие кредитной карты
• IsActiveMember — активность клиента
• EstimatedSalary — предполагаемая зарплата
Целевой признак
• Exited — факт ухода клиента
Реализация проекта
Проведено прогнозирование оттока клиентов банка на основе исторических данных поведения клиентов.
Построена модель с предельно большим значением F1-меры
В рамках подготовки данных скорректированы наименования полей, проанализированы выбросы и дубликаты, проработаны проработаны пропуски.
Категориальные признаки переведены в дамми переменные.
Для борьбы с дисбалансом использована техника upsampling, что позволило поднять показатель f1 в 4.5 раза. Поэтому для дальнейшего прогноза были использованы данные features_upsampled, target_upsampled полученные с помощью техники upsampling.
Проведен выбор лучшей модели для дальнейшего прогнозирования. Проанализированы модели LogisticRegression, DecisionTreeClassifier, RandomForestClassifier
При сравнении базовых моделей, без дополнительных гиперпараметров, наилучший результат по F1 показала модель случайного леса. Далее будем использовать её для подбора оптимальных гиперпараметров.
Наилучший показатель модель случайного леса на тестовой модели f1 = 0.61 при гиперпараметрах Глубина = 11 Количество деревьев = 100
Проведена проверка модели на адекватность, путём сравнения со случайной моделью.
Доля правильных ответов accuracy в полученной модели 0.822 Доля правильных ответов accuracy в случайной модели 0.7885
Проверка на адекватность показала, что доля правильных ответов accuracy в полученной модели выше чем аналогичный показатель случайной модели. Делаем вывод, что полученная нами модель является полезной.
Дополнительно построена ROC - кривая, и измерена AUC-ROC = 0.8557