Бизнес-понимание:

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

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

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

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

Поэтому мы собираемся использовать эти 5 алгоритмов классификации, которые поддерживают оценку вероятности:

  • Логистическая регрессия
  • RandomForestRegressor
  • KNeighboursClassifier
  • GaussianNB
  • Классификатор дерева решений.

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

Вы можете следить за блокнотами Jupyter из моего репозитория Github.

Понимание данных:

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

Данные состоят из трех файлов JSON:

  1. portfolio.json — метаданные о каждом предложении (длительность, тип и т. д.)
  2. profile.json — демографические данные для каждого клиента.
  3. transcript.json — записи о транзакциях, полученных предложениях, просмотренных предложениях и завершенных предложениях.

Вот схема и объяснение каждой переменной в файлах:

portfolio.json –10 строк, 6 столбцов

  • id (string) — id оффера
  • offer_type (string) — тип предложения т.е. BOGO, скидка, информационное
  • трудность (целое число) — минимальные затраты, необходимые для выполнения предложения.
  • вознаграждение (int) — вознаграждение за выполнение предложения
  • duration (int) — время открытия оффера, в днях
  • каналы (список строк)

profile.json —17 000 строк, 5 столбцов.

  • age (int) — возраст клиента
  • стал_member_on (целое число) — дата, когда клиент создал учетную запись приложения.
  • гендер (str) — пол клиента (обратите внимание, что некоторые записи содержат «O» вместо M или F)
  • id (str) — идентификатор клиента
  • доход (float) — доход клиента

transcript.json —306534 строки, 4 столбца.

  • event (str) — описание записи (т. е. транзакция, полученное предложение, просмотренное предложение и т. д.)
  • person (str) — идентификатор клиента
  • time (int) — время в часах с момента начала теста. Данные начинаются в момент времени t=0
  • value — (dict of strings) — либо идентификатор предложения, либо сумма транзакции в зависимости от записи

Очистка каждого набора данных:

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

Чистые данные портфеля:

  • Каналы с горячим кодированием
  • Горячее кодирование столбца offer_type

Очищенный фрейм данных портфеля:

Очистить данные профиля

  • Проверить нулевые значения
  • проверьте столбец возраста на наличие экстремальных значений (118)
  • Отбросьте строки без указания пола, дохода, возраста 118 лет.
  • Создать удобочитаемый формат даты в столбце made_member_on
  • Извлеките его год из столбца made_member_on, добавьте столбцы start_year (для дальнейшего анализа)

Фрейм данных очищенного профиля:

Очистить данные стенограммы

  • Создайте отдельные столбцы для суммы и offer_id из словаря столбцов значений.
  • объединить три набора данных с общими столбцами
  • стенограмма: отдельное предложение и данные транзакции
  • Назовите столбцы — offer_id. offer_type, пол и уникальные идентификаторы customer_ids, чтобы преобразовать их в целочисленные данные tpe.
  • Создайте кадр данных предложений, отделив его от транзакции в столбце событий.

Очищенный фрейм данных Transcript:

Предложение кадра данных:

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

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

Здесь, поскольку мы собираемся найти, на какой тип предложения — BOGO, скидка, информационное — покупатель реагирует максимально, столбец — offer_type — наша целевая переменная, а остальные столбцы — наши переменные свойств.

  1. Каково гендерное распределение клиентов Starbucks?

  • Ответ 1: Доля мужчин (около 9000) немного больше, чем доля женщин (около 6000) и очень небольшое количество других.

2. Каково возрастное распределение и средний возраст клиентов Starbucks?

  • Ответ 2: Возрастная группа от 40 до 70 часто посещает старбаксрбакс, причиной может быть стабильная жизнь после 40.
  • в среднем 54 года

3. Каково распределение доходов и средний доход клиентов Starbucks?

  • Ответ 3: Количество клиентов уменьшается после 70 тыс., учитывая, что по мере увеличения доходов люди тратят меньше на кофе.
  • со средним доходом 65 тыс.

4.Сколько клиентов регистрируется ежегодно?

  • Ответ 4: Число участников Starbucks увеличилось в геометрической прогрессии с 2013 года и достигло своего пика в 2017 году, а затем неуклонно снижается.
  • 5599 клиентов зарегистрировались в 2017 году

5. Какой пол имеет наибольшее годовое членство?

  • Ответ 5: С ростом популярности Starbucks люди присоединялись к Starbucks в геометрической прогрессии и достигли своего апогея в 2017 году.
  • каждый год присоединялось больше мужчин, чем женщин, и очень мало других

6. Какой пол имеет самый высокий годовой доход?

  • Самый высокий и самый низкий доход и у мужчин, и у женщин примерно одинаковы, а у остальных меньше с обеих сторон.
  • Средний доход (белая точка) у женщин (около 70 тысяч) выше, чем у мужчин и других (около 60 тысяч).
  • для женщин доход варьируется от 40k до 100k.
  • Для мужчин самый разброс составляет от 40 000 до 70 000, что близко к медиане.
  • для других разброс составляет около 60 000.
  • Количество клиентов-мужчин с низким уровнем дохода немного выше, чем количество клиентов-женщин и других клиентов.

7. Каково распределение событий в стенограммах?

  • Ответ 7: Мы видим, что большинство расшифровок являются транзакциями.
  • Было просмотрено около 75% полученных предложений. И почти 50% просмотренных предложений были выполнены.

8. Каков процент транзакций и предложений в мероприятии?

Ответ 8: почти 45,5% сделок и 54,5% предложений.

9. Какие бывают типы предложений: полученные, просмотренные, завершенные?

  • Ответ 9: Клиенты получили больше предложений Bogo и Dicount, чем информационных.
  • Было просмотрено больше предложений Bogo
  • Большинство предложений скидок завершено, и ни одно информационное предложение не завершено.
  • Следовательно, чтобы сделать предложение полным, клиентам необходимо отправить больше предложений со скидками.
  • Здесь bogo также был хорошим предложением, так как большое количество клиентов просматривают такие предложения.

10. Как распределяются доходы от акций?

  • Ответ 10: Наибольшее предложение получает группа с доходом 50–60 тысяч, а наименьшая — 110–120 тысяч.
  • Самое высокое завершенное предложение также составляет от 50 до 60 тысяч и уменьшается в обе стороны с большим наклоном в группах с более высоким доходом.
  • у Starbucks есть меньшие клиенты из группы с более высоким доходом.

11. Какие существуют типы предложений в зависимости от возраста, пола и дохода?

  • Ответ 11: Из приведенных выше графиков видно, что Bogo немного более популярен среди возрастных групп, полов и групп дохода.
  • Возрастная группа 50–59 лет больше откликается на эти предложения, чем другие группы.
  • Кроме того, для распределения доходов информационное предложение составляет почти 50%, чем два других.
  • Большинство мужчин откликаются на эти предложения, чем женщины с ведущим типом BOGO.
  • Подводя итог, можно сказать, что активные респонденты-клиенты Starbucks относятся к возрастной группе 50–59 лет, причем процент мужчин выше с годовым доходом 50–60 тысяч.

12. Какое самое большое завершенное предложение?

  • Ans12: Из выполненных заказов, offer_id, у которого был более высокий показатель успешности, — «fafdcd668e3743c1bb461111dcafc2a4».
  • в общей сложности 4957 завершений

13. Какое самое низкое завершенное предложение?

  • Ans13: Из выполненных заказов, offer_id с наименьшим процентом успеха: «4d5c57ea9a6940dd891ad53e9dbe8da0».
  • всего выполнено 3281 раз

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

Неконтролируемое обучение с использованием кластеризации Kmeans

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

  • График делает изгиб на 2.
  • Количество оптимальных кластеров для набора данных равно 2.

мы подгоняем и прогнозируем, используя набор данных offer_df, мы прогнозируем offer_type относительно годового дохода и пола клиентов, используя 2 кластера, полученные из Kmeans Clustering.

  • Для кластера 1 доход варьируется от 30 000,0 до 68 000,0.
  • Для кластера 2 доход варьируется от 69 000,0 до 120 000,0.

  • По сравнению с предложениями BOGO и Discount информационные предложения менее популярны.
  • Несколько случаев, когда предложения со скидками используются чаще, чем предложения BOGO:
  • В кластере 1 при доходе = 51 000, доходе = 52 000 и
  • В кластере 2 доход = 76 000, доход = 77 000
  • Поскольку доход распределяется неравномерно, можно сделать вывод, что годовой доход не зависит от покупательского поведения.

  • По сравнению с предложениями BOGO и Discount, информационные предложения менее популярны.
  • Таким образом, можно сделать вывод, что мужчины с указанным выше диапазоном доходов, как правило, тратят больше, чем женщины и представители другого пола, на BOGO и скидки.
  • Таким образом, можно сделать вывод, что женщины с доходом от 71000,0 до 120000,0, как правило, тратят больше, чем мужчины и представители других полов, на BOGO и предложения скидок.

Контролируемое обучение

Это поможет предсказать правильный offer_type для отправки каждому клиенту.

Предложения_df разделены на функцию и цель.

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

Наборы для обучения и тестирования создаются с помощью train_test_split.

Поскольку это проблема классификации, мы будем использовать точность для оценки моих моделей.
Сравните правильные прогнозы и общее количество прогнозов, чтобы определить точность модели и выбрать лучший.
- Пять различных алгоритмов машинного обучения. можно протестировать на наборе данных:
1. Деревья решений
2. Логистическая регрессия
3. Ближайшие соседи (KNN)
4. Наивный байесовский метод
5. Случайный лес

Получаем результаты точности:

  • Оценка точности составляет 100 % для обучения и тестирования наборов данных для RandomForestClassifier, GaussianNB, DecisionTreeClassifier, что может привести к **переобучению.
  • Поскольку логистическая регрессия имеет очень низкую точность поезда 0,50 и точность теста 0,52.
  • Итак, мы выбираем KNeighborsClassifier.
  • У него хорошие результаты 0,93 при обучении и 0,82 при тестировании наборов данных.
  • Поскольку у нас мало биномиальных результатов (BOGO = 1, скидка = 2, информационная = 3), мы можем использовать KNeighborsClassifier.

Гиперпараметрическая настройка KNeighborsClassifier для повышения точности

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

  • Наилучшие результаты, полученные после настройки, основных гиперпараметров {'p': 1, 'n_neighbors': 21, 'leaf_size': 4} по KNeighborsClassifier: точность обучения: 0,93 и точность тестирования: 0,93.
  • точность тестирования увеличилась после настройки гиперпараметров.

Оцените точность модели:

Давайте выберем случайного клиента из наших данных и проверим его точность. Мы взяли случайного клиента из набора данных offer_df и проверили его offer_type — BOGO.

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

  • Модель правильно предсказала, что покупатель, скорее всего, ответит на тип предложения BOGO с точностью 90 %.
  • Следовательно, наша модель имеет хорошую точность прогнозирования.

Вывод:

Сегментация клиентов стартбакс:

  • Клиентов можно сегментировать в зависимости от различных параметров в соответствии с выбранной кампанией.
  • Анализируя данные с использованием обучения с учителем и без учителя (Kmeans), мы можем сделать вывод, что:
  • Разные сегменты покупателей по-разному реагируют на предложения.
  • Количество клиентов-мужчин с низким доходом немного выше, чем у женщин и других клиентов.
  • Хотя средняя зарплата женщин выше, чем у мужчин, женщины тратят на Starbucks меньше, чем мужчины.
  • В Starbucks сейчас больше молодежи, чем когда-то пожилых людей.
  • Результат offer_type был получен путем обучения контролируемого классификатора.

Результаты:-

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