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

Кластеризация — это неконтролируемый метод машинного обучения, который группирует точки данных на основе сходства. Мы сосредоточимся на, возможно, наиболее используемом (или злоупотребляемом) методе, называемом кластеризацией K-средних, где K относится к количеству желаемых сегментов (да, у вас есть сила!). Я воздерживаюсь от технических подробностей (в Интернете вы найдете достаточно материалов, объясняющих эти концепции) и больше фокусируюсь на реализации в своих статьях. Без долгих церемоний, приступим!

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

Вы можете получить доступ к коду проекта на моем Github.

https://github.com/rohitTheSupplyChainGuy/Customer-segmentation-using-K-means-clustering/blob/main/customerSegmentation.Rmd

График продаж и прибыли выглядит следующим образом:

Теперь давайте сделаем шаг назад и попробуем выделить сегменты в данных. Либеральный (сейчас предвыборный сезон, смотрел кучу ночных шоу!) Глаз создал бы кластеры, как показано ниже:

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

А вот и консервативный взгляд, который мог бы сегментировать данные, как показано ниже:

Консервативный взгляд добавляет нюансы к сегментации на основе прибыли, которую они приносят компании.

Кто прав, кто виноват? Кто будет судить!

Именно здесь вступает в действие настройка параметров (выбор правильного количества сегментов в данных) с помощью машинного обучения. Помните, что мы не стандартизировали данные (принесли продажи и прибыль в одном масштабе — сравнивая яблоки с яблоками), влияние которых будет объяснено позже в статье. Полезным инструментом для определения количества сегментов в данных является Коленчатый график. Давайте реализуем сюжет и попробуем разобраться в нем:

Используемый метод итеративно создает сегменты (в данном случае от 1 до 10) и измеряет внутрисегментное евклидово расстояние от центроида, который случайным образом размещается в наборе данных алгоритмом (слишком тяжелый).

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

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

Давайте быстро масштабируем данные и повторно запускаем диаграммы:

График локтя и сегментированная визуализация ниже:

Итак, у нас есть сегменты. Что теперь?

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

Ссылка на панель управления выглядит следующим образом:

https://public.tableau.com/profile/rohit.tolawat#!/vizhome/Customersegmentation_16044225689930/CustomerAnalysis

На основе созданной информационной панели ниже могут быть представлены наши выводы и дальнейшая стратегия:

Мы получаем общую прибыль в размере 12% по отношению к доходам, при этом сегмент 3 является наиболее прибыльным в процентном отношении (42%). Могут ли методы, применяемые для этих 6 клиентов, быть воспроизведены в других сегментах.

Сегмент 2 крайне убыточен, потеряв 30% продаж. Это способствует общей потере 15% для организации. Мы должны проанализировать 21 клиента, которые формируют этот сегмент. Проанализируйте, не являются ли поставки этим клиентам неэффективными, или пересмотрите контракты с более выгодными ценами.

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

Обзор:

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

После масштабирования функций мы использовали график Elbow и завершили создание 5 сегментов.

Визуально проанализировали сегменты (возможно, поскольку у нас было только 2 функции), чтобы понять, что это имеет смысл.

Разработана интерактивная информационная панель для предоставления информации и рекомендаций после этого.