Бизнес-понимание:
Поскольку Starbucks имеет широкую базу клиентов, разбросанных по всему миру, необходимо сегментировать клиентов в зависимости от различных факторов, чтобы предлагать правильный продукт нужным клиентам в нужное время. Starbucks также расширяется, заходя во многие другие города на местном уровне и в странах по всему миру.
С увеличением ассортимента продукции, а также ростом демографии, цель здесь состоит в том, чтобы найти модели и поведение клиентов. Клиентов можно сегментировать по-разному в зависимости от их: демографического, психологического, географического и поведенческого.
Здесь, поскольку нам предоставлены данные о клиентах, мы собираемся сегментировать клиентов на основе их демографических данных и найти тип предложения, на которое они чаще всего реагируют.
- Для неконтролируемого обучения мы будем сегментировать клиентов по возрасту и доходу, чтобы найти ответы по возрасту и доходу на тип предложения.
- В реальной жизни предсказание реакции клиента на основе демографических данных дает очень низкую точность, один и тот же клиент будет по-разному реагировать на одно и то же предложение в разных случаях в зависимости от нескольких факторов. Было бы намного лучше предсказывать вероятности исходов, а не просто предсказывать их успех или неудачу.
Поэтому мы собираемся использовать эти 5 алгоритмов классификации, которые поддерживают оценку вероятности:
- Логистическая регрессия
- RandomForestRegressor
- KNeighboursClassifier
- GaussianNB
- Классификатор дерева решений.
После выбора лучших метрик с высокой точностью мы найдем лучший тип предложения для отправки конкретному клиенту на основе этих 15 функций: время, пол, возраст, доход, начальный год, вознаграждение, «сложность», «длительность», «электронная почта», «мобильный», «социальный», «веб», «бого», «скидка», «информация».
Вы можете следить за блокнотами Jupyter из моего репозитория Github.
Понимание данных:
Данные, предоставленные Starbucks, содержат смоделированные данные, имитирующие поведение клиентов, и содержат три файла данных. Десять различных типов предложений были отправлены клиентам и получены клиентами по четырем различным каналам: Интернет, электронная почта, мобильные устройства и социальные сети. Сюда входят три типа предложений: купи один-получи один (BOGO), скидка и информация. Данные содержат информацию о 17 000 клиентов, получающих предложения, открывающих предложения, заполняющих предложения и совершающих транзакции.
Данные состоят из трех файлов JSON:
- portfolio.json — метаданные о каждом предложении (длительность, тип и т. д.)
- profile.json — демографические данные для каждого клиента.
- 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 — наша целевая переменная, а остальные столбцы — наши переменные свойств.
- Каково гендерное распределение клиентов 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 % после настройки гиперпараметра. С учетом того, что на одно и то же предложение один и тот же покупатель будет реагировать по-разному.