Кластерный анализ, показывающий, что клиенты Starbucks делятся на 4 отдельные категории.

У каждого есть предпочтения. Некоторые люди считают, что ничто не может сравниться с мексиканской кухней, в то время как другие находятся в постоянном поиске лучшего итальянского ресторана. У вас есть любимый бургер. У вас есть любимое кафе-мороженое. Большинство предпочтений относительно того, что люди делают и что не любят, меняются в зависимости от того, с кем вы разговариваете ... если только вы не говорите о кофе. Практически все согласны со всеми кофейными брендами в мире, что Starbucks - это то место, от которого вы никогда не откажетесь. Возможно, вы больше не ходите в McDonalds, чтобы купить гамбургер, но вам лучше поверить, что вы будете стоять в очереди за своим эспрессо в любой день недели в ближайшем к вам кафе Starbucks.

Пытаясь не сидеть комфортно в своем спортивном мире, я заинтересовался, когда наткнулся на данные Starbucks, касающиеся их клиентов, транзакций и рекламных сделок, которые они получили. Рекламные данные интересны, потому что у людей есть особые чувства по поводу того, что они будут делать, чтобы получить покупку со скидкой. Они чрезвычайно важны для любой компании, поскольку помогают клиентам попробовать ваши продукты и удерживают клиентов. Мое любимое место, где можно поесть, - Chipotle, и я буду ходить туда как минимум 3 раза в неделю, независимо от того, какие препятствия встречаются на моем пути. Я участвую в их сделках «купи один - получай один» (BOGO), обедах со скидкой, когда они добавляют чипсы и гуак, а если они этого не сделают, я все равно буду ходить каждый божий день. Noodles and Company - еще одна продуктовая сеть, которая мне нравится, но я бы не стал изо всех сил, чтобы поесть там; однако, если бы они заключили со мной сделку BOGO, вы бы увидели меня в первых рядах.

Два разных ресторана, два разных чувства к моим покупкам. Итак, какие типы клиентов есть у Starbucks? Люди реагируют на различные акции со скидками? Может ли Starbucks заработать больше денег на рекламных акциях, если они правильно сгруппируют своих клиентов? Мой анализ клиентов Starbucks даст ответ на вопрос, какие люди совершают покупки в их магазинах и какие рекламные предложения наиболее подходят для кластера, к которому они принадлежат.

Как всегда, вы можете увидеть мой код по адресу https://github.com/anchorP34/Starbucks-Customer-Clusters. Оставляйте комментарии или вопросы к темам, о которых вы хотели бы узнать больше, или к идеям, которые я не изучал.

Очистка данных

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

ПРОФИЛЬ: чтобы очистить данные профиля, мне нужно было выяснить, как я хочу обрабатывать пол и доход, которые имеют значение NULL, и изменить поле begin_member_on на фактическую дату, а не только на строку. Если посмотреть на отсутствующие полы, эти записи также несут ответственность за НУЛЕВОЙ доход. Я решил сделать так, чтобы отсутствующие полы имели значение «U», что означает «неизвестно», вместо того, чтобы удалять эти записи (они составляли около 15% данных). Чтобы определить подходящий выбор по доходу, я посмотрел на распределение доходов по всему населению:

Черная линия показывает, где находится среднее значение распределения, и это показалось хорошим выбором, поскольку оно не слишком сильно влияет на наше распределение доходов. После создания поля member_date, которое было производным от поля created_member_on, я также разделил эту дату на member_year, member_month и member_day, чтобы посмотреть, поможет ли это предоставить дополнительную информацию. Вот как выглядел окончательный результат:

ПОРТФОЛИО. У каждой рекламной акции есть массив, в котором показаны различные способы ее получения. Хорошая практика - преобразовать это в битовые флаги.

TRANSCRIPT. Столбец значения в кадре транскрипции представляет собой словарь, с которым связаны ключ и значение. Различные ключевые значения - это идентификатор предложения и сумма. Идентификатор предложения связан с получением, просмотром и завершением предложения, а сумма - это просто сумма транзакции. Я изменил поле значения, чтобы показать значение идентификатора продвижения или суммы транзакции, и поле value_type затем стало ключом словаря.

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

Первое, что нужно посмотреть на данные о клиентах, - это увидеть, какие люди составляют клиентские сегменты, не вдаваясь в подробности. Примерно 50% клиентов Starbucks составляют мужчины, 35% - женщины, а остальные - другие или неизвестные.

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

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

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

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

Транзакционный и рекламный анализ

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

1. Сколько рекламных акций они получили (BOGO, скидки, информационные)
2. Каков был процент завершения каждого типа рекламных акций (BOGO и скидки, каждое информационное предложение завершается в тот же день, когда оно проводится)
3. Сколько всего транзакций они совершили с тех пор, как стали участником Starbucks
4. Какова средняя сумма транзакции
5. Какова средняя и медиана дней между покупками для каждого клиента
6 . Сколько в среднем дней нужно, чтобы оформить предложение?

Когда я пытаюсь увидеть, насколько успешны люди при выполнении рекламных предложений, я должен присоединить фрейм данных транзакции к самому себе, присоединяясь к личности и значению, где value_type говорит «идентификатор предложения». Нам также необходимо убедиться, что предложение завершено после или в тот же день, что и полученное время, и что оно соответствует периоду продолжительности предложения. Это может быть сложно, поскольку клиент может получить одну и ту же акцию более одного раза (я обнаружил это на собственном горьком опыте, и было кошмаром вернуться и выяснить это). Это также вызвало другие вопросы, потому что были случаи, когда люди завершали свое предложение в срок, более поздний, чем дата истечения срока действия акции. Пример:

Отсюда мы можем агрегировать данные, чтобы увидеть на высоком уровне различные рекламные акции, степень их успеха, их чистое вознаграждение для потребителя и чистую стоимость Starbucks. В целом, чем выше сложность (чем больше денег вы должны потратить), тем меньше вероятность, что люди воспользуются предложением. Несмотря на то, что 5 долларов за BOGO за 5 долларов и 10 долларов за BOGO за 10 долларов имеют одинаковое чистое вознаграждение для потребителя, люди более склонны получать 5 долларов за 5 долларов, вероятно, из-за удобства. Самое удачное предложение - это скидка 3 доллара за 7 долларов, которая в конечном итоге приносит Starbucks прибыль. Мы также видим, что скидка 5 долларов за 20 долларов - это пустая трата времени, поскольку она выполняется только в 10% случаев. В течение среднего времени, необходимого для завершения предложения, люди с большей вероятностью получат 5 долларов за BOGO за 5 долларов быстрее, чем любое другое предложение, в то время как продвижение со скидкой 5 долларов за 20 долларов занимает больше всего времени, вероятно, из-за большей суммы, которую необходимо быть потраченным.

Собственный капитал должен быть самым важным сегментом для Starbucks. С BOGO’s Starbucks не получает прибыли от сделки. Они просто кусают пулю, чтобы заставить людей получить свое вознаграждение, а затем, надеюсь, потратят больше денег в будущем. Таким образом, для обеих сделок BOGO чистая стоимость всегда будет равняться 0 долларов каждый раз, когда они отправляют эту рекламную акцию; с другой стороны, скидки дают Starbucks некоторую денежную ценность. Чистая стоимость скидок - это общая стоимость скидки, умноженная на процентную вероятность завершения акции. Промо-акция 5 долларов за 20 долларов может дать Starbucks преимущество на 15 долларов, но если только 10% людей завершат промо-акцию, они должны рассчитывать на получение только 1,35 доллара * от числа людей, фактически получивших промоушен. Таким образом, с точки зрения чистой стоимости, скидка 2 доллара на 10 долларов - лучшая рекламная акция для своих клиентов.

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

Кластеризация сегментов

Использование машинного обучения с алгоритмами кластеризации - один из наиболее интересных анализов, с которыми сталкиваются специалисты по данным из-за того, что нет правильного «ответа». Для прогнозирования цен на акции или мошеннических банковских транзакций можно посмотреть исторические ответы «да / нет», но кластеризация не имеет ярлыка, связанного с ней. Он просто показывает, какие значения больше всего похожи друг на друга, и группирует их вместе.

Технически вы можете выбрать любое количество кластеров, которые вы хотели бы представить своими данными, но один из способов оценить, работает ли ваш кластер на высоком уровне, - это запустить метод локтя. В методе локтя мы ищем значительное снижение суммы квадратов ошибок (SSE) от каждой точки до соответствующего центроида. Поскольку каждое увеличение K (количества кластеров) будет создавать больше кластеров с меньшим количеством точек, будет общая тенденция к уменьшению SSE и увеличению K. Поскольку меньшее количество кластеров легче расшифровать и проанализировать, мы хотим, чтобы K было последним значительным падением SSE, прежде чем оно начнет выравниваться, следовательно, ищем «изгиб» на графике.

На диаграмме 4 кластера - это подходящее количество кластеров для анализа данных. Это хорошо согласуется с нашей проблемой, поскольку 4 кластера можно разделить на следующие типы клиентов:
1. Не будет реагировать на какие-либо рекламные предложения
2. Будет отдавать предпочтение BOGO, а не скидкам
3 . Будет отдавать предпочтение скидкам, а не BOGO.
4. Отвечает на BOGO и скидки.

Входные данные будут основаны на матрице клиентов, которая включает следующие функции:

discount_total_offers, discount_completion_pct,
discount_min_completion_days, discount_max_completion_days, discount_completed_offers,
discount_avg_completion_days, discount_avg_net_reward,
bogo_total_offers, bogo_completion_pct, bogo_completed_offers bogo_min_completion_days,
bogo_max_completion_days, bogo_avg_completion_days,
bogo_avg_net_reward, informational_promotions, возраст , пол,
доход, total_transactions, min_transaction_day,
max_transaction_day, avg_transaction, total_transaction_amount,
median_days_between_purchases, avg_days_between_purchases

Это комбинация личных атрибутов (возраст, пол, доход), BOGO и атрибутов скидки (процент выполнения, среднее чистое вознаграждение, среднее количество дней для завершения, самое быстрое время, необходимое для завершения, наибольшее время, необходимое для завершения) информационные предложения (сколько они получили) и общие тенденции транзакций (количество совершенных транзакций, общая потраченная сумма, среднее и медианное количество дней между транзакциями). Если какое-либо из значений было ПУСТО (NULL), оно заменялось на 0, поскольку покупатель не участвовал в этом конкретном секторе интересов (никогда не совершал транзакцию, никогда не выполнял рекламное предложение и т. Д.). Мне также пришлось превратить поле пола из категориальной переменной в 4 фиктивные переменные, поскольку алгоритм кластеризации принимает только числовые значения.

Нет набора для тестирования и обучения с кластеризацией из-за отсутствия правильных или неправильных ответов, а также значений до и после. После того, как кластеры были добавлены в матрицу клиентов, я хотел визуализировать различные графики распределений, которые могут помочь определить, какие типы клиентов были объединены в кластеры.

Кластер 2 имел самый большой размер группы - 33% от общей численности населения (17 000 клиентов, что составляет примерно 5 694 клиента), в то время как кластер 3 был самым маленьким сегментом с примерно 15%. Меня больше всего интересует кластер 3, потому что он кажется очень узким нишевым рынком по сравнению с другими кластерами.

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

Глядя на различные графики выше, можно увидеть, что наиболее сегментированными являются любые участки, связанные с доходом. Похоже, что кластер 3 - это люди с небольшим доходом, а кластер 0 - это люди, которые получают гораздо больший доход. Это объясняет, почему кластер 3 был самой маленькой группой из всех кластеров, потому что большинство нижних квартилей дохода Starbucks составляли около 45 тысяч долларов, но доход этой группы превышает примерно эту сумму.

Теперь, глядя на транзакционные данные, выделить кластеры намного сложнее, но мы все же можем извлечь некоторую информацию. Если мы посмотрим на процент выполнения BOGO и скидок, похоже, что кластер 3, кажется, разбросан повсюду с обоими рекламными предложениями, но кластер 0, похоже, остается с показателем успеха выше 0,5 для обоих типов рекламных акций.

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

Но что с того…

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

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

Если мы сравним, как каждый кластер справился с каждым вознаграждением, по сравнению со средним показателем по населению, это может помочь определить, на каком продвижении нам следует сосредоточиться. Помните, что BOGO должен побуждать клиента вернуться в Starbucks, а скидки должны быть ориентированы на клиентов, которые постоянно приходят, чтобы вернуть часть своих покупок. Если мы посмотрим на кластер 0, они откликнулись на рекламную сделку 5 долларов за 20 долларов с вероятностью успеха 34%! Показатель успеха всего населения составлял всего 9%, так с какой стати вы могли бы предложить им сделку BOGO? Вы можете заработать 5,10 доллара на каждого покупателя, если предложите ему такую ​​сделку, в отличие от 1,35 доллара, которые вы в среднем заработали бы для всего населения. Кластеры 2 и 3 не так хорошо отреагировали на акции со скидками, как кластеры 1 и 2, поэтому было бы разумнее дать им рекламные акции BOGO, чтобы снова вовлечь их в «бесплатные» покупки в Starbucks, вместо того, чтобы держать их подальше, отправляя им скидки.

Сосредоточив внимание на кластерах 0 и 1 как на «дисконтных рекламных кластерах», вы получите гораздо более высокую ожидаемую отдачу от ваших скидок, что поможет компенсировать предложения кластеров 2 и 3 сделок BOGO. Вы сохраняете своих постоянных клиентов, которые будут продолжать возвращаться, несмотря ни на что, с небольшими вознаграждениями, которые они оценят, в то время как вы сосредотачиваетесь на том, чтобы доставить кластеры 1 и 2 к двери и наслаждаться своим продуктом. Starbucks делает клиентов более довольными своими рекламными предложениями, и они также сохраняют больше денег в процессе.

Размышление и заключение

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

Некоторое улучшение, которое могло бы сработать больше в мою пользу для этого проекта, заключалось бы в использовании более совершенного инструмента, такого как базы данных SQL, для выполнения некоторых моих анализов. Если бы я использовал SQL для одновременного определения различий между транзакциями людей, вместо того, чтобы делать это по отдельности, матрица клиента работала бы намного быстрее. Поскольку у меня не было этой способности в python, на выполнение только этого раздела анализа потребовалось примерно 15 минут. Так что, если я напортачил, мне нужно было еще 15 минут, чтобы снова увидеть результаты. Я также хотел, чтобы у меня было больше фактической информации, с которой можно было бы поработать, например, какие конкретные продукты были приобретены или где жили эти клиенты. Влияет ли место проживания людей на привычки тратить деньги? Используют ли люди свои BOGO или скидки на определенные продукты? Эта информация поможет с результатами кластеризации и, возможно, поможет принять лучшие рекламные решения.

Использование личных, транзакционных и рекламных данных Starbuck может вызвать огромный резонанс в одобрении покупателями и покупательских привычках в их магазинах. Мои методы кластеризации показывают, что есть люди с низкими доходами и низкими расходами, которым следует участвовать в рекламных акциях BOGO, люди, которые достойно реагируют на оба типа рекламных предложений, и люди с высоким доходом, часто тратящие в Starbucks, которым следует предлагать больше скидок. Правильно объединив этих единомышленников, Starbucks может убедиться, что нужные люди получают поощрение, которое повысит их статус в Starbucks, продолжая при этом пользоваться преимуществами разумных бизнес-решений.