Это завершающий проект для программы Data Scientist Nano Degree Udacity. Наборы данных в проекте имитировали данные мобильного приложения Starbucks, которое рассылает своим клиентам различные типы предложений, таких как реклама напитка, скидка или BOGO. Конечно, не все предложения будут выкуплены из-за отсутствия интереса или даже не замеченности покупателями. Необходимо лучше понять эффективность этих предложений, а корректировка стратегии распространения для целевых клиентов может привести к потенциальному росту бизнеса.

Данные содержатся в трех файлах:

Portugal.json — содержит идентификаторы предложений и метаданные о каждом предложении (длительность, тип и т. д.).

profile.json — демографические данные по каждому клиенту

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

Вы можете найти подробное объяснение кода в моем репозитории GitHub.

Введение проблемы

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

К основной цели следует подойти, ответив на следующие вопросы:

1. Что мы узнаем из наборов данных?

  • Как выглядит базовое демографическое распределение клиентов, например возраст и доход?
  • Каков показатель успеха (эффективности) предложений, предоставляемых Starbucks?
  • Есть ли какие-либо демографические предпочтения для предложений?

2. Можем ли мы предсказать, что целевые клиенты повысят свою эффективность в будущем?

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

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

Вы можете найти подробное объяснение кода в моем репозитории GitHub.

Стратегия решения проблемы

Чтобы ответить на вопросы, необходимо предпринять два основных шага:

  1. Регулярная очистка данных:
  • Проверьте, сколько записей данных содержат пропущенные значения, и отбросьте ненужные значения.
  • Извлечь дату (год и месяц) из метки времени
  • Создайте фиктивные переменные для категориальных данных
  • Проверяйте опечатки и следите за тем, чтобы термины были одинаковыми во всех наборах данных, например, замените «идентификатор предложения» на «идентификатор предложения».

2. Обработка данных:

  • Извлеките ключи и значения из столбца «значение» в стенограмме и преобразуйте их в отдельные столбцы.
  • Объедините все три набора данных в один на основе идентификатора клиента.
  • Напишите функции для преобразования данных (например, определите, является ли предложение «успешным»)

3. Моделирование данных:

  • Создайте режим классификации, который мог бы предсказать эффективность предложения
  • Проверьте основные факторы, влияющие на прогноз

Метрики

Лучшее решение, позволяющее предсказать, будет ли предложение выполнено, — это построить наш классификатор на основе данных о поездах. Для построения модели выбраны три популярных алгоритма классификации: RandomForestClassifier, GradientBoostingClassifie, r и AdaBoostClassifier. Для оценки производительности мы будем использовать точность. Этот показатель имеет значение от 0 до 1, и его значение позволяет нам определить, насколько хороша модель. Чем выше значение, тем выше точность предсказания для тестовых данных.

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

Пришло время проанализировать поведение наших клиентов. (Примечание: наши комбинированные наборы данных содержат только клиентов, совершивших транзакции, потому что их информация — это то, что нас интересует.)

  1. Распределение клиентов по возрасту, доходу и количеству лет участия

Судя по диаграмме распределения (рис. 1), большинство клиентов находятся в возрасте от 20 до 80 лет, с пиком в районе 60 лет. Большинство из них имеют доход от 30 000 до 100 000 и становятся членами Starbucks после 2015 года. Я также подсчитал. доля каждого пола, 51% для мужчин и 37% для женщин, что свидетельствует о гендерном дисбалансе в наборе данных.

2. Гендерные различия в акциях (рис. 2)

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

3. Кто тратит больше денег, мужчина или женщина?

Судя по графику (Рисунок 3), общая сумма денег, потраченная представителями обоих полов, довольно схожа. Учитывая, что женщин-покупателей меньше, а сделок с ними больше, неудивительно, что средняя стоимость одной женщины выше, чем у мужчины.

4. Предпочтительный тип предложения

Мы также отобразили действия предложения по событиям предложения (рис. 4).

Диаграмма показала, что количество рассылаемых bogo и скидок примерно равное, а количество выполненных скидок немного больше, чем bogo.

Вышеприведенный анализ дает обзор гендерных различий/типов предложений, связанных с транзакциями и предложениями. Но как узнать, влияет ли предложение на поведение покупателей? Я определил следующие пути в течение срока действия предложения как «успешное» предложение:

— Для бого и скидки: предложение получено → предложение просмотрено → предложение выполнено

— Для информации: предложение получено → предложение просмотрено → транзакция

Все остальные ситуации будут считаться "неудачными", даже если предложение было выполнено, но не было просмотрено первым.

В результате общее количество отправленных предложений составляет 76 277, и 29 822 из них считаются «успешными», что дает общий показатель успеха 39,1%.

5. Есть ли предпочтения по полу или типу предложения в отношении успешных предложений?

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

У Bogo самый высокий показатель успеха — 41,6%, а у информационного предложения — самый низкий — 39,1%.

Моделирование

В этой части работы я стремился построить классификационную модель, чтобы предсказать, будет ли предложение успешным, используя предложение и характеристики клиента. Точность используется для оценки производительности модели. Среди трех классификаторов GradientBoostingClassifier показывает наивысшую оценку точности 0,69 (рис. 7).

Настройка гиперпараметров

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

К сожалению, после применения к модели лучших параметров точность не повысилась, как ожидалось.

Диаграмма важности функций (рис. 9) показывает, что распространение предложений через социальные платформы наиболее важно для принятия решения о покупке клиентами. Это имеет смысл, поскольку у большинства людей есть свои учетные записи в социальных сетях, и они проводят довольно много времени на этих социальных платформах. Другие факторы, такие как доход клиента и year_become_member, играют важную роль в определении успешного предложения. Наконец, также важны скидка, вознаграждение за предложение и продолжительность. Удивительно, но распространение предложений через Интернет, по телефону или по электронной почте гораздо меньше влияет на предсказание предложения.

Полученные результаты

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

1. Большинство клиентов имеют доход от 40 000 до 100 000 и их возраст от 20 до 80 лет.

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

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

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

Заключение/размышление

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

После определения «успешного» предложения самое сложное — понять, как эти предложения определить. Во многих сценариях необходимо знать о функции Success-Offer-Define. Например, один человек может получить одно и то же предложение несколько раз; другое предложение получено до завершения текущего предложения; Хотя это происходит в тот же день, какое событие произойдет раньше, просмотрите предложение или завершите предложение. Он тратит довольно много времени на работу с этими сценариями.

Улучшение

Моя модель прогнозирования не учитывает события транзакций клиентов. Тем не менее, модель совершения клиентом сделки может иметь важное значение для прогнозирования предложений, которые будут завершены. Хотел бы частый покупатель кофе получать предложения и использовать их? Есть ли клиенты, которые хотят воспользоваться предложением, но суммы, которую они тратят, недостаточно? Один из лучших способов использовать наш анализ — создать новые переменные, представляющие эти данные.

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