- Цель
- Описание проекта
- Данные
- Подход
- Результаты
- Сегментация клиентов
- Технологии
- Структура проекта
- Запуск на своих данных
- Заключение
Задача состоит в разработке сегментации клиентов для предоставления рекомендаций, таких как планы сбережений, кредиты, управление капиталом и другие финансовые услуги, ориентированные на определенные группы клиентов. Кроме того, проект направлен на создание инструмента для автоматического определения группы (кластера) новых клиентов на основе их поведения и характеристик, что позволит мгновенно адаптировать маркетинговые стратегии и предложения.
Была разработана модель для сегментации клиентов страховой компании на основе различных характеристик, что позволяет улучшать маркетинговые стратегии бизнеса и предлагать клиентам персонализированные продукты.
После выполнения кластеризации модель была дополнена ансамблем моделей классификации, позволяющим в дальнейшем предсказывать принадлежность новых данных к определенному сегменту.
Особая благодарность Jillani SoftTech за предоставленные данные для этого проекта. Данные можно найти на Kaggle.
Этот датасет содержит информацию о поведении примерно 9000 активных держателей кредитных карт за 6 месяцев. Данные представлены на уровне клиентов и включают 18 поведенческих переменных, таких как частота покупок, сумма покупок, использование кредитного лимита, снятие наличных и другие.
-
Предобработка данных:
- Обработка пропусков с использованием различных методов.
- Анализ распределения данных, медианы, моды, а также QQ-графики для выявления отклонений.
- Применение логарифмирования данных для уменьшения тяжелых хвостов.
- Нормализация данных и дальнейшее изучение корреляции между признаками (с использованием Пирсона и Phik).
-
Генерация признаков:
- Создание новых композитных признаков.
-
Кластеризация клиентов:
- Применение алгоритмов кластеризации: Agglomerative Clustering, DBSCAN, K-Means, Spectral Clustering.
- Сегментация клиентов с использованием полученных признаков и без них.
- Применение PCA для визуализации и анализа кластеров.
-
Обучение моделей для предсказания:
- Применение различных классификационных алгоритмов (CatBoost, XGBoost, LightGBM, RandomForest и другие) для оценки наилучших моделей.
- Выбор лучших моделей с точностью более 0.9 для дальнейшего ансамблирования.
- Реализация ансамблирования с использованием методов Stacking, Bagging, VotingClassifier и Blending, где в качестве мета-модели был выбран XGBoost.
-
Оптимизация с помощью Optuna:
- Оптимизация гиперпараметров моделей с помощью Optuna для достижения наилучших результатов.
- Лучшие модели для предсказания:
- CatBoost, LogisticRegression, RandomForest, ExtraTreesClassifier, GradientBoosting.
- После ансамблирования:
- Итоговая balanced accuracy: 99.61% (метрика выбрана из-за важности учёта несбалансированности классов при предсказании кластеров).
- Маркетинг:
- Весь проект задумывался для улучшения маркетинговых стратегий, что позволит более эффективно работать с различными группами клиентов.
-
Первый кластер: Клиенты с низким балансом, предпочитающие рассрочку и не использующие наличные. Для них рекомендуется предложить улучшенные условия рассрочки и программы лояльности.
-
Второй кластер: Клиенты с более высоким балансом и хорошими финансовыми привычками. Идеальными предложениями для них будут премиум-продукты и бонусы за активное использование карты.
-
Третий кластер: Клиенты с высокой покупательской активностью и предпочтением разовых покупок. Для них можно предложить скидки и специальные условия для снятия наличных.
- pandas
- numpy
- scipy
- phik
- matplotlib
- seaborn
- yellowbrick
- StandardScaler
- AgglomerativeClustering
- DBSCAN
- KMeans
- SpectralClustering
- RandomForestClassifier
- CatBoostClassifier
- XGBoost
- LightGBM
- GradientBoostingClassifier
- LogisticRegression
- KNeighborsClassifier
- SVC
- NaiveBayes
- DecisionTreeClassifier
- ExtraTreesClassifier
- AdaBoostClassifier
- Blending
- Stacking
- Voting
- Bagging
- Optuna
- balanced_accuracy_score - основная метрика, так как распределение клиентов по кластерам может быть неравномерным, а задача требует корректного предсказания даже для меньших групп.
- Silhouette Score
- Calinski Harabasz Score
- Davies Bouldin Score
- PCA
- pickle
- warnings
- tqdm
data/: - данные.raw_data- исходные данные.processed_data- обработанные данные.main_datasets- основные датасеты (без кластеров).train_models_data- данные с предсказаниями моделей кластеризации.data_with_PCA- данные с применением PCA.data_with_generated_features- данные с созданными признаками.data_without_generated_features- данные без созданных признаков.
data_without_PCA- данные без применения PCA.data_with_generated_features- данные с созданными признаками.data_without_generated_features- данные без созданных признаков.
data_for_final_models- данные для финальных моделей (наилучшее определение кластеров).
models/: - сохраненные модели.1_default_models- модели с дефолтными параметрами.2_optuna_models- модели с оптимизированными параметрами.3_final_models- финальные модели.
notebooks/: - ноутбуки.EDA- анализ данных.Feature Generation- генерация признаков.train_models- предсказание кластеров.with_PCA- с применением PCA.with_generated_features- с созданными признаками.without_generated_features- без созданных признаков.
without_PCA- без применения PCA.with_generated_features- с созданными признаками.without_generated_features- без созданных признаков.
evaluation_models- оценка предсказаний кластеризации.with_PCA- с применением PCA.with_generated_features- с созданными признаками.without_generated_features- без созданных признаков.
without_PCA- без применения PCA.with_generated_features- с созданными признаками.without_generated_features- без созданных признаков.
results- результаты.eval_models_results.ipynb- выбор модели кластеризации.final_results.ipynb- финальные результаты, маркетинговые стратегии, важные признаки.pipeline.ipynb- пайплайн проекта (для запуска на своих данных).
- Скачайте репозиторий.
- Установите необходимые библиотеки:
pip install -r requirements.txt. - Зайдите в
notebooks/results/pipeline.ipynbи следуйте инструкциям в файле.
Данный проект демонстрирует успешное применение методов машинного обучения для сегментации держателей кредитных карт, что позволяет более точно таргетировать предложения и улучшать клиентский сервис.