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

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

Ключевые цели заключаются в следующем:

  1. Сегментация клиентов. Разработайте надежную модель сегментации клиентов, которая делит рынок на значимые группы на основе определенных характеристик, поведения или демографических данных.
  2. Целевые рекомендации. После завершения сегментации адаптируйте финансовые рекомендации, такие как сберегательные планы, кредиты и услуги по управлению активами, к уникальным потребностям и предпочтениям каждого сегмента клиентов.
  3. Персонализация. Повысьте качество обслуживания клиентов за счет предоставления персонализированных финансовых продуктов и услуг, соответствующих интересам и требованиям каждого сегмента.
  4. Рост бизнеса. Стимулируйте рост бизнеса и удовлетворенность клиентов, эффективно удовлетворяя разнообразные потребности различных сегментов клиентов, тем самым максимизируя потенциал конверсии и удержания.

Импорт

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans,AgglomerativeClustering,DBSCAN,SpectralClustering
from sklearn.mixture import GaussianMixture
from sklearn.metrics import silhouette_samples, silhouette_score
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report

Исследование данных

Описание кадра данных:

CUST_ID: уникальный идентификатор для каждого клиента.

БАЛАНС: сумма непогашенного остатка на счете кредитной карты клиента.

BALANCE_FREQUENCY: частота обновления баланса, измеряемая как отношение.

ПОКУПКИ: общая сумма покупок, сделанных клиентом.

ONE_OFF_PURCHASES: общая сумма разовых покупок, совершенных клиентом.

INSTALLMENT_PURCHASES: общая сумма покупок, сделанных клиентом в рассрочку.

CASH_ADVANCE: общая сумма авансов наличными, полученных клиентом.

PURCHASES_FREQUENCY: частота покупок, совершаемых клиентом.

ONE_OFF_PURCHASES_FREQUENCY: частота разовых покупок, совершаемых клиентом.

PURCHASES_INSTALLMENTS_FREQUENCY: частота покупок, совершаемых клиентом в рассрочку.

CASH_ADVANCE_FREQUENCY: частота получения клиентом аванса наличными.

CASH_ADVANCE_TRX: количество транзакций по выдаче наличных, сделанных клиентом.

PURCHASES_TRX: количество транзакций по покупкам, совершенным клиентом.

CREDIT_LIMIT: кредитный лимит, назначенный учетной записи кредитной карты клиента.

ПЛАТЕЖИ: общая сумма платежей, совершенных клиентом.

MINIMUM_PAYMENTS: минимальная сумма, подлежащая оплате клиентом.

PRC_FULL_PAYMENT: процент от полной суммы счета по кредитной карте, оплаченный клиентом.

ДОЛЖНОСТЬ. Срок действия счета кредитной карты клиента.

Соответствующее наблюдение:

  1. Набор данных содержит 8950 строк (наблюдения) и 18 столбцов (переменные).
  2. «ДОЛЖНОСТЬ» указывает продолжительность владения счетом кредитной карты клиента и составляет от 6 до 12 месяцев.
  3. Прежде чем проводить какой-либо анализ, важно правильно обработать отсутствующие значения в столбцах «CREDIT_LIMIT» и «MINIMUM_PAYMENTS».
df["MINIMUM_PAYMENTS"] = df["MINIMUM_PAYMENTS"].fillna(df["MINIMUM_PAYMENTS"].median())
df["CREDIT_LIMIT"] = df["CREDIT_LIMIT"].fillna(df["CREDIT_LIMIT"].mean())

Исследовательский анализ данных (EDA)

  • Большинство значений баланса сосредоточено в диапазоне примерно от 0 до 2000.
  • Есть много выбросов с остатками выше 5000, вплоть до примерно 13000. Это указывает на то, что у некоторых клиентов баланс значительно выше, чем у большинства.

  • Пик на гистограмме платежей говорит о том, что многие клиенты совершают платежи в диапазоне от 1000 до 2000.

  • По мере увеличения кредитного лимита выше 2000 частота клиентов постепенно снижается, что указывает на то, что меньше клиентов имеют более высокие кредитные лимиты.

Подготовка данных

df.drop(columns=["CUST_ID"],axis=1,inplace=True)

Машинное обучение

Масштабирование:

scalar=StandardScaler()
scaled_df = scalar.fit_transform(df)

Уменьшение размерности:

PCA преобразует исходные признаки в новый набор некоррелированных переменных, называемых главными компонентами. Первая главная компонента (PCA1) объясняет наибольшую дисперсию данных, за ней следует вторая главная компонента (PCA2) и так далее.

pca = PCA(n_components=2)
principal_components = pca.fit_transform(scaled_df)
pca_df = pd.DataFrame(data=principal_components ,columns=["PCA1","PCA2"])
pca_df

Нахождение значения «k» методом локтя:

К означает:

Новый столбец под названием «Кластер»:

cluster_df = pd.concat([df,pd.DataFrame({'Cluster':kmeans_model.labels_})],axis=1)
cluster_df

Обучение и тестирование с использованием Random Forest:

Интерпретация ошибок и перевод

Показатели перекрестной проверки. Модель достигла высокой точности в различных сгибах перекрестной проверки с оценками в диапазоне от примерно 95% до 96%.

Отчет о классификации:

В целом, модель хорошо работает в разных классах, с высокой точностью и полнотой.

  • Классы 0, 1, 2 и 3 имеют хорошие оценки F1, что указывает на сбалансированный компромисс между точностью и отзывом.
  • Класс 4 имеет относительно более низкий показатель F1, что указывает на некоторые проблемы с правильной идентификацией экземпляров этого класса из-за ограниченной поддержки (всего 17 точек данных).

В целом, модель демонстрирует многообещающую производительность, но возможны улучшения в работе с менее представленным классом (класс 4).

Бизнес-аналитика

Интерпретация сегментов:

Кластер 0: «Консервативные транжиры»

  • Средний баланс: средний (около 646)
  • Покупательское поведение: делайте частые небольшие покупки.
  • Денежные авансы: редко занимаюсь выдачей наличных
  • Кредитный лимит: относительно низкий (около 3199)
  • Платежная система: регулярные платежи с редкими минимальными платежами.

Кластер 1: «Пользователи выдачи наличных»

  • Средний баланс: немного выше (около 1051)
  • Покупательское поведение: совершайте нечастые и небольшие покупки.
  • Денежные авансы: более высокая частота и сумма выдачи наличных (около 619)
  • Кредитный лимит: умеренный (около 3343)

Кластер 2: «Умеренные транжиры»

  • Средний баланс: значительно выше (около 4617)
  • Поведение при покупке: делайте умеренные покупки как с разовыми, так и с рассрочными платежами.
  • Денежные авансы: демонстрируйте более высокую частоту выдачи наличных
  • Кредитный лимит: относительно высокий (около 7548)

Кластер 3: «Активные пользователи кредита»

  • Средний баланс: относительно выше (около 1895 г.)
  • Покупательское поведение: демонстрируют высокую частоту покупок (около 44 транзакций).
  • Использование кредита: значительные разовые суммы покупок
  • Кредитный лимит: Высокий (около 6976)
  • Платежное поведение: более высокий процент полных платежей (около 27%).

Кластер 4: «Элита с высокими расходами»

  • Средний баланс: самый высокий (около 4541)
  • Покупательское поведение: совершайте частые и существенные покупки, особенно в виде разовых транзакций.
  • Кредитный лимит: самый высокий (около 12493)
  • Платежное поведение: более высокий процент полных платежей (около 39%).

Маркетинговые стратегии:

  1. Индивидуальные финансовые продукты: для «консервативных транжиров» (кластер 0) компания может разработать специальные планы сбережений и варианты инвестиций, соответствующие их осторожному поведению в отношении расходов. Предложение финансовых продуктов с низким уровнем риска может привлечь и удержать этих клиентов.
  2. Управление выдачей наличных: «Пользователи выдачи наличных» (кластер 1) более склонны использовать выдачу наличных. Компания может реализовать образовательные инициативы для поощрения ответственного использования кредита и предоставления альтернативных вариантов краткосрочного кредита на выгодных условиях, чтобы снизить зависимость от аванса наличными.
  3. Премиум-услуги для «умеренно транжирящих»: учитывая более высокий средний баланс и кредитный лимит «умеренно транжирящих» (кластер 2), компания может ввести премиальные услуги, такие как персонализированное управление капиталом и эксклюзивные программы вознаграждений. Эти предложения учитывают их более высокую покупательную способность и повышают лояльность клиентов.
  4. Инструменты кредитного управления для «Активных пользователей кредита»: «Активные пользователи кредита» (Кластер 3) демонстрируют значительное использование кредита. Компания может предоставить инструменты кредитного управления, такие как мониторинг кредитного рейтинга в режиме реального времени и помощь в составлении бюджета, чтобы помочь им принимать обоснованные финансовые решения и поддерживать положительный кредитный профиль.
  5. VIP-отношение к «элите с высокими расходами»: «Элита с высокими расходами» (кластер 4) представляет клиентов с высокой ценностью. Компания может предложить эксклюзивные преимущества, персонализированные услуги консьержа и приоритетный доступ к финансовым продуктам премиум-класса, стремясь укрепить отношения и вдохновить клиентов на защиту интересов.

Весь код и детали реализации этого проекта можно найти в Jupyter Notebook, доступном в следующем репозитории GitHub: ссылка на репозиторий GitHub.