Предсказание оттока клиентов из банка
-
Pandas, Numpy, Random, Matplotlib, Seaborn, Skimpy, Imbalanced-learn, Phik, Collections, Tqdm, Sklearn
-
SMOTE, ADASYN, RandomUnderSampling, SMOTETomek, OneHotEncoder, OrdinalEncoder, StandardScaler, mutual_info_regression, SelectKBest, GridSearchCV
В связи с выявленной тенденцией ежемесячного небольшого оттока клиентов из «Бета-Банка» необходимо провести исследование и спрогнозировать вероятность ухода из банка клиентов. Согласно оценкам банковских маркетологов сохранение текущих клиентов обходится банку дешевле, чем привлечение новых, поэтому требуется корректировка Стратегии удержания клиентов. Важным элементом стратегии станет модель, обученная с помощью алгоритма машинного обучения, предсказывающая, прекратит ли деловые отношения с банком тот или иной клиент в ближайшее время. Предсказания модели позволят сформировать персональное предложение для клиента, обеспечив его удержание в банке.
Цель исследования: построение модели машинного обучения, предсказывающей отток клиентов из банка.
В ходе выполнения проекта были поставлены и решены следующие задачи:
-
загрузка, общее изучение массива данных и их предобработка
-
исследование баланса классов и обучение моделей без учета дисбаланса
-
улучшение качества моделей с учетом дисбаланса классов; обучение разных моделей и выявление модели с лучшими метриками
-
финальное тестирование модели с лучшими метриками
Индикатором достижения цели является получение значения метрики f1 на тестовой выборке > 0.59.
Для достижения поставленной цели решена задача классификации.
(1) Проведено исследование четырех алгоритмов балансировки классов: SMOTE, ADASYN, RandomUnderSampling, SMOTETomek. Самые лучшие результаты показали модели, обученные на обучающем комплекте, сбалансированном с помощью SMOTETomek. Примерно одинаковые, немного меньшие в сравнении с алгоритмом-лидером, но тоже достаточно хорошие результаты показали алгоритмы SMOTE и ADASYN. Самые низкие результаты показали модели, обученные на выборке, сбалансированной алгоритмом RandomUnderSampling.
Лучшие результаты показывает модель Random Forest Classigfier. На втором месте - модель Decision Tree Classifier. Самые низкие результаты у модели Logistic Regression
Самый лучший результат метрики f1_score показала модель Random Forest Classifier на выборке, сбалансированной с помощью алгоритма SMOTETomek. Величина f1_score = 0.896, roc_auc_score = 0.9949.
(2) Модель Random Forest Classifier, показавшая лучшее значение метрики f1_score на обучающей выборке, сбалансированной с помощью алгоритма SMOTETomek, на финальной проверке на тестовой выборке показала результат : f1_score = 0.6067. Условию выполнения проекта, согласно которого цель считается достигнутой при f1_score > 0.59, модель соответствует.