Анализ кредитных карт по сегментам для определения маркетинговой стратегии

Введение

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

Кластеризация — популярный инструмент исследовательского анализа данных для понимания структуры данных. Это задача идентификации подгрупп в данных, чтобы точки данных в одной и той же подгруппе (кластере) были очень похожи, в то время как точки данных в разных кластерах были очень разными.

В этом случае я использовал алгоритм K-средних. Алгоритм K-средних — это итеративный метод, который пытается разбить набор данных на K уникальных непересекающихся подгрупп (кластеров), каждая из которых содержит только одну точку данных.

Дело требует разработки сегментации клиентов для определения рыночной стратегии. Образец набора данных обобщает поведение около 9000 (приблизительно) активных держателей кредитных карт за последние 6 месяцев.

Задача

Исследуйте и используйте данные для создания модели кластерного машинного обучения, которая распределяет кредитные карты по группам, которые можно применять для принятия бизнес-решений.

Источник данных и подготовка

Все данные получены с https://www.kaggle.com/datasets/arjunbhasin2013/ccdata

Я скачал набор данных в файле .csv с именем "CC GENERAL.csv". Я экспортировал данные в папку и использовал Jupyter Notebook для изучения и подготовки данных.

Во-первых, я загрузил необходимые пакеты и модули для исследования и обработки данных; pandas, numpy, matplotlib, морской борн и

модель статистики.

Импорт данных

Я импортировал файлы .CSV в блокнот Python Jupyter, используя функцию read_csv().

Используя функцию head(), я понял, что фрейм данных состоит из информации о транзакциях по кредитным картам для разных клиентов, проиндексированных с помощью идентификационного номера.

Исследование фрейма данных

Файл находится на уровне клиента с 18 поведенческими переменными.

Ниже приведен словарь данных для набора данных кредитной карты.

CUST ID: -Идентификация держателя кредитной карты (категория).

БАЛАНС: — Сумма баланса, оставшаяся на их счету для совершения покупок.

БАЛАНС ЧАСТОТА: — Как часто баланс обновляется, оценка от 0 до 1 (1 = часто, 0 = редко обновляется).

ПОКУПКИ: — Количество покупок, совершенных с аккаунта.

ONEOFFPURCHASES: — Максимальная сумма единовременной покупки.

INSTALLMENTSPURCHASES: — Количество покупок в рассрочку.

CASHADVANCE: — Деньги авансом выдаются пользователем.

PURCHASESFREQUENCY: — Насколько часто совершаются покупки, от 0 до 1 (1 = часто покупают, 0 = редко).

ONEOFFPURCHASEFREQUENCY: как часто совершаются разовые покупки (1 = часто покупают, 0 = редко покупают).

PURCHASEINSTALLMENTFREQUENCY: — Как часто совершаются покупки в рассрочку (1 = часто, 0 = редко).

CASHADVANCEFREQUENCY: — Как часто выплачивается аванс наличными.

CASHADVANCETRX: — количество транзакций, совершенных с помощью «Cash in Advanced».

PURCHASESTRX: — Количество совершенных транзакций покупок.

CREDITLIMIT: — Лимит кредитной карты для пользователя.

ПЛАТЕЖИ: — Сумма платежа, совершенного пользователем.

MINIMUM_PAYMENTS: — Минимальное количество платежей, совершенных пользователем.

PERCFULLPAYMENTS: — Процент от полной оплаты, уплаченный пользователем.

ДОЛЖНОСТЬ: — Срок службы кредитной карты или пользователя.

Статистические сводки

Чтобы понять форму и структуру набора данных, я использовал функцию describe(), чтобы вернуть приведенную ниже сводку.

Из приведенной выше информации можно сделать вывод, что;

· Набор данных содержит 8950 строк, каждая из которых представляет конкретную информацию о транзакции по кредитной карте клиента, а также 18 столбцов, каждый из которых представляет собой суммированную поведенческую переменную.

· Частота записывается для всех деловых записей.

· Все записи считаются числовыми.

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

Подготовка и очистка данных

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

· Проверка и заполнение пропущенных значений. Используя функцию isnull(), я обнаружил, что в столбце MINIMUM_PAYMENT пропущено 313 значений, а в столбце CREDIT LIMIT также отсутствует переменная. Поскольку процент отсутствующих значений весьма значителен, можно безопасно заполнять записи нулем, т. е. т. е. 0.

Этот метод заполнения позволяет сохранять понимание и тенденцию данных постоянными и неизменными.

· Масштабирование числовых функций. Функция MinMaxScaler() из sklearn.preprocessing используется для преобразования всех функций данных в стандартную шкалу, что создает пространство для однозначности и идеального соотношения между точками данных.

· Уменьшение размерности. В алгоритме кластеризации большие пространственные координаты должны быть сжаты и преобразованы в пространственные координаты, которые можно понять и интерпретировать в трехмерном мире или двухмерном графике. Следовательно, 18-мерная пространственная координата сводится к 2D, где все функции будут суммированы в координату. Это достигается с помощью анализа основных компонентов, встроенного в функцию sklearn.

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

Эта визуализация предполагает, что точки данных хорошо сформированы в отношении определенного диапазона значений.

Существует положительная корреляция между Денежным авансом и Балансом, Кредитным лимитом и Балансом, Покупками и Разовыми покупками, Покупкой trx и Разовыми покупками, Платежами и Разовыми покупками.

Все объекты с часто датируемыми значениями имеют положительную корреляционную связь с их часто встречающимися данными.

Определение количества кластеров

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

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

Отображение значений WCSS на линейном графике

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

Алгоритм кластеризации K-средних

Модель будет построена на основе 3-х центроидов как точек кластера с максимальной итерацией актуализации центроида 1000 раз.

Визуализация Featured_2D в назначении кластеров K-Means предполагает, что класс 1 шире, чем другие кластеры. Этот сегмент кластера представлен синей областью, как показано ниже.

Для получения дополнительной информации об этих алгоритмах проверьте здесь https://www.kaggle.com/code/sabanasimbutt/clustering-visualization-of-clusters-using-pca.

Сохранение моделей

Я создал каталог файлов, в котором модель сохраняется в файле pickle для будущего развертывания и глубокого изучения.

Рекомендация

· Для кластера 0 я рекомендовал серебряную кредитную карту, потому что это самая распространенная карта. Как правило, новый владелец кредитной карты получает серебряную карту и может обновить ее позже. Серебряные карты имеют самый низкий кредитный лимит, который составляет от 4 до 7 миллионов индонезийских рупий. Владелец карты должен иметь месячную зарплату не менее 3 миллионов IDR. Преимуществом этой карты является не слишком высокий лимит.

· Для кластера 1 я рекомендовал золотую кредитную карту. Владелец карты должен иметь регулярный ежемесячный доход от 5 до 10 миллионов индонезийских рупий. Кредитный лимит составляет от 10 до 40 миллионов индонезийских рупий, в зависимости от банка-эмитента кредитной карты. Преимущество этого типа карт в том, что лимит достаточно велик. Таким образом, это позволяет вам быстрее покупать/владеть дорогими вещами. Вы можете использовать его для погашения крупнобюджетных вещей, таких как мотоциклы или смартфоны. Однако чем выше лимит кредитной карты, тем выше ежегодная плата, которую вы должны платить.

· Наконец, для кластера 2 я рекомендовал платиновую кредитную карту самого высокого уровня. Платиновые кредитные карты принадлежат только нескольким людям, потому что получить карту непросто из-за строгих процедур. Платиновая кредитная карта имеет высокий лимит от 40 миллионов до 1 миллиарда IDR. Владелец карты должен иметь доход не менее 180 миллионов IDR в год и иметь хорошую кредитную историю.

· Фрейм данных должен быть создан, где эта точка данных будет помечена в соответствии с производным классом (между 0,1 и 2).

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

· Модель следует использовать для будущего получения информации о новых клиентах на основе собранных данных.

Пожалуйста, посетите мой репозиторий, чтобы просмотреть код: https://github.com/Gbekoilias/Credit-Card-analysis

Спасибо, что прочитали! Рады получить ваше предложение и рекомендацию!