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

По этой причине Starbucks опубликовала наборы смоделированных данных, которые имитируют поведение клиентов в мобильном приложении Starbucks Rewards. Starbucks управляет более чем 30 000 розничных магазинов на 80 рынках по всему миру [1], что делает их крупным игроком в отрасли с жесткой конкуренцией. Чтобы создать конкурентное преимущество, компания рассматривает возможность использования данных, собранных о поведении клиентов, чтобы лучше вовлекать их в рекламные акции.

В этом блоге я дам обзор проекта, в котором я попытался предложить решение, которое поможет компании лучше понять свою клиентскую базу, используя опубликованные данные. Эта работа должна быть представлена ​​как завершающий проект Udacity’s Data Scientist.

1. Обзор проекта

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

Вот общий обзор рабочего процесса в этом проекте:

  1. Определите проблему в руках и критерии измерения.
  2. Исследуйте, понимайте и очищайте предоставленные наборы данных.
  3. Подготовьте окончательный набор данных, сгруппированный по клиентам.
  4. Соответствующим образом преобразуйте окончательный набор данных перед подгонкой модели.
  5. Подбирайте модель к окончательному набору данных и прогнозируйте метки кластеров.
  6. Исследуйте распределения среди сформированных кластеров.
  7. Обсудите результаты и дайте рекомендации.

1. Постановка задачи

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

2. Критерии измерения

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

2.1. Бизнес-показатели

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

1 Определите разницу между тем, как клиенты ведут себя в периоды отсутствия рекламных акций, и тем, как они ведут себя, когда им предлагается сделать это в периоды рекламных акций. Чтобы измерить это, используется Rценность-Fчастотность-денежный анализ для изучения потребительской ценности. В этой модели давности, частоте и денежным значениям присваивается оценка от одного до пяти на основе разделения квантилей, разделяющего диапазон значений на интервалы одинакового размера. Затем оценка RFM получается путем получения среднего значения всех трех оценок.

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

2.2. Технические показатели

Для алгоритма, выбранного в этой задаче, K-Means, будут использоваться два подходящих метода: найти оптимальное количество кластеров 𝑘 и оценить реализации модели; анализ коэффициента силуэта (SC) и внутрикластерный анализ суммы квадратов ошибок (SSE).

1 Анализ коэффициента силуэта (SC) — это способ измерить, насколько близка каждая точка в кластере к точкам в соседних кластерах. Это удобный способ узнать оптимальное значение k во время кластеризации K-средних. Значения силуэта лежат в диапазоне [-1, 1]. Значение +1 указывает, что образец находится далеко от соседнего кластера и очень близко к назначенному ему кластеру. Точно так же значение -1 указывает, что точка находится ближе к своему соседнему кластеру, чем к назначенному ей кластеру. И значение 0 означает на границе расстояния между двумя кластерами. Значение +1 идеально, а -1 наименее предпочтительно. Следовательно, чем выше значение, тем лучше конфигурация кластера. [2]

Математически для одной точки данных 𝑖, где 𝑎(𝑖) представляет расчетное среднее расстояние точки 𝑖 по отношению ко всем другим точкам в кластере, которому она была присвоена, а 𝑏(𝑖) представляет расчетное среднее расстояние точки 𝑖 по отношению к все точки в его ближайшем соседнем кластере, определяется силуэт:

Таким образом, из приведенного выше уравнения видно, что

Затем для одного значения, представляющего оценку силуэта, которая использовалась для оценки результатов кластеризации, где 𝑠¯(𝑘) представляет собой среднее значение 𝑠(𝑖) по всем данным всего набора данных для определенного количества кластеров 𝑘, определяется коэффициент силуэта:

2 Анализ суммы квадратичных ошибок (SSE) — это способ измерения изменчивости (дисперсии) внутри кластера путем взятия суммы квадратов разностей между каждой точкой данных и средним значением ее кластера и, следовательно, определяется, где 𝑥𝑖 — 𝑖-я точка данных, а 𝑛 общее количество точек данных: [3]

3. Понимание и очистка необработанных данных

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

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

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

3.1. portfolio Набор данных

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

  • id (str) - id оффера
  • offer_type (str) - тип предложения; bogo, скидка или информационный
  • difficulty (int) - минимум, необходимый для завершения предложения
  • reward (int) - награда за выполнение предложения
  • duration (int) - время в днях до открытия оффера
  • channels (список) - каналы связи, используемые для продвижения предложения

Ясно, что каждое предложение имеет минимальную сумму, которую покупатель должен потратить, чтобы завершить предложение, представленное difficulty, и, следовательно, иметь право на reward. Кроме того, каждое предложение имеет срок действия, обозначенный duration, по истечении которого оно истекает.

Сказанное справедливо для предложений с типом предложения «бого» и «скидка». Однако для «информационных» предложений, хотя у них есть duration, их difficulty и reward равны нулю, поскольку эти предложения просто предоставляют информацию о продукте. Это означает, что они не отслеживаются для завершения в transcript.

Есть 10 строк (представляющих 10 типов предложений) и 6 столбцов без пропущенных или нулевых значений. Процесс очистки начался с переименования столбцов id и reward в offer_id и offered_reward соответственно. Это служит удобочитаемости. Последнее, в частности, чтобы его можно было отличить от добавленного позже столбца redeemed_reward. Затем столбцы channels и offer_type подвергались горячему кодированию. Наконец, offer_id было преобразовано в целые числа для удобочитаемости.

3.2. profile Набор данных

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

  • age (int) - возраст клиента
  • became_member_on (целое число) — дата, когда клиент создал учетную запись приложения.
  • gender (str) - пол покупателя; М, Ж или О
  • id (str) - идентификатор клиента
  • income (float) - доход клиента

Особенности этого набора данных говорят сами за себя. Из приведенных выше данных ясно, что это некоторые пропущенные значения, и действительно существует 2175 проблемных строк с пропущенными значениями и явными выбросами. Процесс очистки начался с их сброса. Кроме того, было удалено 212 профилей с «другим» полом, чтобы упростить переназначение «мужского» и «женского» пола с помощью двоичных значений. Столбец became_member_on был преобразован в стандартный объект datetime, используемый для добавления вычисляемого столбца days_member, а затем удален. Наконец, переименуйте столбец id в customer_id и преобразуйте customer_id в целые числа.

3.1. transcript Набор данных

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

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

Процесс очистки начался с удаления соответствующих профилей клиентов, которые ранее были удалены в profile. Столбец value был разделен на отдельные столбцы. Затем набор данных был разделен на два отдельных набора данных offers_df и transactions_df на основе типа event, причем каждое значение customer_id и offers_id было сопоставлено с одним и тем же целочисленным значением, созданным ранее.

4. Окончательная подготовка данных

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

  1. Набор данных portfolio был объединен с offers_df , а последний разделен по типу действия предложения на; received_df, viewed_df и completed_df.
  2. Вспомогательный фрейм данных aux_df был создан как копия received_df, который будет рабочей областью для всех последующих шагов предварительной обработки.
  3. В aux_df устанавливаются две колонки; offer_start_time и offer_end_time. Эти столбцы являются основой для большинства логических тестов позже.
  4. Для каждого предложения offer_viewed_timeи offer_completed_time получены из других соответствующих наборов данных. Здесь предполагалось следующее:
    • Для всех типов предложений предложение просматривается только в том случае, если это было сделано после того, как оно было получено, и в течение срока действия предложения. .
    • Для предложений disc и bogo предложение считается завершенным, только если это сделано после время просмотра и длительность предложения.
    • Для предложений info предложение считается завершенным, если клиент совершил какую-либо транзакцию. после времени его просмотра и в течение срока действия предложения.
  5. Добавлены другие функции, например, например, exampleresponse_score, которые измеряют, насколько быстро клиент ответил на предложение после просмотра.
  6. Окончательный набор данных coe (расшифровывается как Customer-Oпредложение EEengagement), сгруппированный по профилям клиентов, был создан с использованием тщательного и соответствующего выбора столбцов из aux_df агрегировано либо по сумме, либо по среднему значению.
  7. Были добавлены функции, важные для критериев оценки бизнеса, такие как количество и сумма транзакций для каждого клиента в общем, акционном и неакционном периодах. Также были получены данные о давности, частоте и денежном выражении, которые использовались для расчета оценки RFM для каждого клиента в периоды рекламных и нерекламных.

Окончательный набор данных после завершения предварительной обработки содержит 39 функций (столбцы) и 14 608 профилей клиентов (строки).

5. Моделирование и оценка

K-Means был выбором для этой проблемы, но сначала данные были преобразованы с помощью PowerTransformer, чтобы сделать данные более гауссовыми, но при этом стандартизированными, чтобы их распределение имело среднее значение 0 и стандартное отклонение 1. Это важно, поскольку Кластеризация K-средних, в частности, использует евклидово расстояние и, таким образом, обрабатывает данные как изотропные во всех направлениях пространства. Вот почему он имеет тенденцию образовывать сферические (а не удлиненные) кластеры. В этой ситуации оставить дисперсии неравными эквивалентно приданию большего веса переменным с меньшей дисперсией. [4]

Другое преобразование, то есть уменьшение размерности, было выполнено с помощью Анализ главных компонентов (АГК). Каждый главный компонент представляет собой единичный вектор, указывающий в направлении наибольшей дисперсии (после учета дисперсии, захваченной более ранними основными компонентами). Чем дальше вес от нуля, тем больше главная компонента находится в направлении соответствующего признака. Если два признака имеют большие веса одного и того же знака (оба положительные или оба отрицательные), то увеличение одного, как правило, связано с увеличением другого. Напротив, можно ожидать, что признаки с разными знаками будут демонстрировать отрицательную корреляцию: увеличение одной переменной должно приводить к уменьшению другой.

Цель здесь состояла в том, чтобы использовать достаточный процент, чтобы охватить большую часть изменчивости данных, сохраняя при этом количество основных компонентов достаточно небольшим. В этом конкретном случае, поскольку входной набор данных содержит только 39 признаков, что само по себе немного, использовалась 95% объясненная дисперсия.

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

Прежде всего, оценка силуэта была довольно низкой, что указывало на перекрывающиеся кластеры (безразличные). Метод «локоть» в данном случае не помог, так как четкого «локтя» нет. Можно строго следовать методу силуэта и, таким образом, сделать 2 оптимальным количеством кластеров или компромиссом между двумя методами, ведущим к оптимальному количеству 3–6 кластеров.

Как видно из приведенных выше графиков, 2, 6 и, в меньшей степени, 3 кластера представляются наиболее разумным выбором. Здесь было принято решение использовать 6 кластеров по причинам, описанным выше во введении к этому разделу.

К настоящему времени модель была подобрана для данных, и были предсказаны их метки кластеров. Средняя оценка силуэта составила 0,11. Ниже, чем можно было бы надеяться. Опять же, указывая на перекрывающиеся кластеры или данные не кластеризуются.

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

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

С точки зрения старшинства, похоже, что все кластеры имеют схожие характеристики, за исключением кластеров 1 и 5, где старшинство было примерно на 200-300 дней меньше.

 cluster   mean   min  median     max
       0  16.77  1.42   16.64  234.63
       1   8.68  0.00    3.77  231.27
       2  17.18  1.65   15.94  291.32
       3  20.54  1.67   18.77  451.47
       4  21.06  1.60   18.79  301.31
       5   6.60  0.00    3.25   50.08

 cluster   mean   min  median     max
       0  17.25  1.41   16.57  666.86
       1   7.49  0.00    3.39   39.22
       2  17.20  1.65   15.88  307.20
       3  20.34  1.74   18.61  518.32
       4  21.23  1.60   18.73  301.31
       5   6.48  0.00    3.22   50.08

 cluster   mean  min  median     max
       0  11.60  0.0    8.12  962.10
       1   7.60  0.0    3.44  231.27
       2   8.92  0.0    2.58  635.06
       3  16.67  0.0   15.25  855.31
       4   5.66  0.0    0.00  476.33
       5   1.23  0.0    0.00   46.67

Глядя на среднюю стоимость транзакций в разные периоды, кластеры, как правило, показывают сопоставимые значения в общем и промо, за исключением кластеров 1 и 5 с очень низкими значениями в обоих показателях.

Цифры имеют тенденцию к снижению для всех кластеров в нерекламные периоды, за исключением кластера 3, который остается относительно высоким, и, в меньшей степени, кластера 0.

 cluster  mean  min  median  max
       0  2.16  0.0    2.33  5.0
       1  2.58  0.0    3.00  5.0
       2  1.54  0.0    1.67  5.0
       3  2.83  0.0    3.00  5.0
       4  0.89  0.0    0.00  5.0
       5  0.56  0.0    0.00  5.0

В нерекламные периоды наиболее ценным для бизнеса был кластер 3 со средним баллом RFM 2,83 и медианой 3,00. За ним следует кластер 1 со средним баллом RFM 2,58 и медианой 3,00. Кластеры 4 и 5 с наименьшим значением в нерекламные периоды со средней оценкой RFM 0,89 и 0,56 соответственно и обе медианы равны 0.

 cluster  mean  min  median  max
       0  3.16  1.0    3.33  5.0
       1  2.74  0.0    3.00  5.0
       2  2.79  1.0    2.67  5.0
       3  3.32  1.0    3.33  5.0
       4  2.91  1.0    3.00  5.0
       5  2.58  0.0    2.67  5.0

Ясно, что рекламные периоды повышают активность для всех кластеров с самым низким средним показателем RFM 2,58 и средним значением 2,67.

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

 cluster  mean_%chnage  median_%chnage
       0         46.30           42.92
       1          6.20            0.00
       2         81.17           59.88
       3         17.31           11.00
       4        226.97             inf
       5        360.71             inf

Например, кластер 3 с относительно высоким показателем RFM в периоды без рекламных акций показывает увеличение среднего и медианного значений на 17% и 11% соответственно в периоды рекламных акций. Это указывает на то, что клиенты в этом кластере активно тратят деньги, даже если их не поощряют к этому. С другой стороны, кластеры 4 и 5 демонстрируют большие изменения со средним значением около 226% и 360% соответственно. Медиана равна «inf», потому что начальное значение (знаменатель) равно нулю, но легко заметить большое изменение. Это указывает на то, что клиенты в этих двух кластерах должны быть главной целью рекламных акций. Еще один кластер, на который стоит обратить внимание, — это кластер 1, где их средние и медианные оценки RFM либо одинаковы, либо почти одинаковы между двумя периодами. Это свидетельствует о том, что клиенты в данном кластере равнодушны к акциям.

 cluster      mean      min   median       max
       0  68868.96  30000.0  68000.0  120000.0
       1  58699.82  30000.0  56000.0  120000.0
       2  64890.10  30000.0  63000.0  120000.0
       3  72920.28  30000.0  72000.0  120000.0
       4  70900.19  30000.0  71000.0  120000.0
       5  58359.93  30000.0  56000.0  119000.0

Расследование income до некоторой степени подтверждает изложенное выше. Кластер 3 с самым высоким средним доходом в размере 72 920 долларов США, что объясняет их высокую активность в периоды без рекламных акций. Стоит отметить группу 4, которая является второй по доходу группой, но эти костюмы были одними из самых неактивных в нерекламные периоды и активны только в том случае, если их повысили. Напротив, в то время как средний доход кластера 1 низкий, между двумя периодами наблюдается умеренная активность, как обсуждалось выше.

 cluster  mean   min  median  max
       0  0.72  0.00    0.75  1.0
       1  0.59  0.00    0.60  1.0
       2  0.85  0.17    0.83  1.0
       3  0.77  0.00    0.75  1.0
       4  0.82  0.17    0.80  1.0
       5  0.67  0.00    0.67  1.0

Взгляните на показатели просмотров в процентах от всех полученных предложений. Видно, что все кластеры имеют показатели просмотров от умеренных до высоких, при этом самый низкий показатель составляет 59% для кластера 4, а самый высокий — 85% для кластера 2.

 cluster  mean   min  median  max
       0  0.69  0.00    0.67  1.0
       1  0.20  0.00    0.00  1.0
       2  0.80  0.17    0.80  1.0
       3  0.70  0.00    0.67  1.0
       4  0.75  0.00    0.75  1.0
       5  0.20  0.00    0.17  1.0

Что касается показателей завершения для всех предложений в процентах от просмотренных предложений. Кластеры 0, 2, 3 и 4 заполнили около 70-80% всех предложений, которые они просмотрели. Кластеры 1 и 5 выполнили только около 20% всех предложений, которые они просмотрели.

 cluster  mean   min  median   max
       0  0.35  0.00    0.32  1.00
       1  0.08  0.00    0.00  1.00
       2  0.52  0.03    0.52  1.00
       3  0.39  0.00    0.36  1.00
       4  0.47  0.00    0.46  0.99
       5  0.07  0.00    0.02  0.51

Глядя на оценку отклика, которая снова измеряет, насколько быстро клиент реагирует на предложение, где 1 означает самую быструю реакцию, можно увидеть, что кластер 2 является самым быстрым со средней (и медианной) оценкой ответа 0,52. За ним следует кластер 4 со средним баллом ответа 0,47. Стоит отметить кластеры 1 и 5, которые демонстрируют очень низкие средние значения ответов 0,08 и 0,07 соответственно.

 cluster  mean  min  median  max
       0  0.43  0.0    0.00  1.0
       1  0.58  0.0    0.67  1.0
       2  0.81  0.0    1.00  1.0
       3  0.90  0.0    1.00  1.0
       4  0.88  0.0    1.00  1.0
       5  0.75  0.0    1.00  1.0

Все кластеры имеют относительно высокие показатели просмотров предложений «бого», за исключением кластера 0 , где самый низкий показатель составляет 43%. Аналогичный аргумент можно привести в отношении кластера 1 с коэффициентом просмотров 58%.

 cluster  mean  min  median  max
       0  0.15  0.0    0.00  1.0
       1  0.05  0.0    0.00  1.0
       2  0.60  0.0    0.75  1.0
       3  0.78  0.0    1.00  1.0
       4  0.71  0.0    1.00  1.0
       5  0.09  0.0    0.00  1.0

Однако процент завершенных предложений «бого» варьируется в зависимости от кластеров 2, 3 и 4, которые завершили 60–78% всех просмотренных ими предложений «бого», что указывает на то, что эти кластеры предпочтительно реагируют на «бого» предложения. Кластеры 0, 1 и 5, напротив, заполнили только 5-15% всех просмотренных ими «недобросовестных» предложений.

 cluster  mean  min  median  max
       0  0.78  0.0     1.0  1.0
       1  0.33  0.0     0.0  1.0
       2  0.72  0.0     1.0  1.0
       3  0.38  0.0     0.0  1.0
       4  0.81  0.0     1.0  1.0
       5  0.58  0.0     0.5  1.0

Аналогичным образом, для «дисковых» предложений кластеры 0, 2 и 4 имеют коэффициент просмотров около 70-81%. В кластерах 0, 4 и 5 процент просмотров составляет от 33 до 58 %.

 cluster  mean  min  median  max
       0  0.83  0.0     1.0  1.0
       1  0.06  0.0     0.0  1.0
       2  0.68  0.0     1.0  1.0
       3  0.24  0.0     0.0  1.0
       4  0.79  0.0     1.0  1.0
       5  0.22  0.0     0.0  1.0

Посмотрите на процент завершенных предложений «дисков» в процентах от просмотренных предложений. Кластеры 0, 4, 2 заполнили около 68-83% всех просмотренных ими «дисковых» предложений. Стоит отметить, что кластер 0, ранее не заинтересованный в предложениях «bogo», теперь лидирует по количеству завершенных «дисков». Кластеры 1, 3 и 5 реализовали только 6–24% всех просмотренных ими «дисковых» предложений. Также стоит отметить, что кластер 3 лидировал по показателям завершенности предложений «bogo». Особое внимание следует уделить кластеру 5, хотя при показателе просмотра 58 % выше показатель завершения составляет всего 22 %, что свидетельствует об отсутствии интереса к предложениям «диск».

 cluster  mean  min  median  max
       0  0.28  0.0     0.0  1.0
       1  0.42  0.0     0.0  1.0
       2  0.90  0.0     1.0  1.0
       3  0.30  0.0     0.0  1.0
       4  0.12  0.0     0.0  1.0
       5  0.32  0.0     0.0  1.0

Понятно, что реакция на предложения «информация» — это не то же самое, что «бого» или «диск». Однако стоит отметить кластер 2 с коэффициентом просмотра 90%.

 cluster  mean  min  median  max
       0  0.16  0.0     0.0  1.0
       1  0.24  0.0     0.0  1.0
       2  0.90  0.0     1.0  1.0
       3  0.14  0.0     0.0  1.0
       4  0.00  0.0     0.0  1.0
       5  0.12  0.0     0.0  1.0

Посмотрите на процент завершенных для «информационных» предложений в процентах от просмотренных предложений. Опять же, кластеры 2 вне графика с 90% завершением всех «информационных» предложений, которые они просмотрели. Остальные кластеры имеют средний показатель завершения 12–24%, за исключением кластера 4 с показателем завершения 0%.

6. Обсуждение и заключение

Теперь, когда сформировано лучшее понимание кластеров, самое время подумать о проекте в целом. Этот проект начался с предварительной обработки большого количества необработанных наборов данных; portfolio, profile и transcript для создания окончательного набора данных coe для моделирования. Преобразования PowerTransformer и PCA были затем предварительно сформированы на coe, которые затем были переданы в модель кластеризации K-Means после выбора 6 числа кластеров.

Технически оценка силуэта (коэффициент) была разочаровывающе низкой — 0,11, что указывало на перекрывающиеся кластеры или данные, не поддающиеся кластеризации. Однако после оценки и исследования сформированных кластеров оказалось, что это интуитивно понятно. Дальнейшее обсуждение улучшения оценки силуэта следует позже.

6.1. Рекомендации по моделям

Сбор важных функций и маркировка их ранжирования по функциям среди кластеров с помощью Scikit-learn’s MinMaxScaler и тепловых карт Seaborn.

Где:

  • income: средний доход
  • seniority: среднее количество дней участия в программе
  • response: средний балл ответа
  • atv_: средняя стоимость транзакции
  • rfm_: давность, частота и денежная оценка
  • view_: просмотреть рейтинг полученных предложений
  • complete_: процент завершения просмотра предложения
  • _promo: в акционные периоды
  • _nonpromo: в неакционные периоды
  • _bogo: тип предложения "купи один, получи другой"
  • _disc: тип предложения "скидка"
  • _info: тип предложения "информационный"

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

Кластер 0. Этот кластер представляет собой хорошую ценность для бизнеса компании. Их доход довольно высок, они являются старшими участниками программы и довольно быстро реагируют на предложения. Они тратят в среднем 11,60 долларов США и 17,25 долларов США в периоды без промо-акции и промо-периоды соответственно, демонстрируя увеличение показателя RFM на 46% между двумя периодами. Эта группа клиентов больше всего заинтересована в «дисковых» предложениях, у которых самый высокий показатель выполнения из всех групп для предложений этого типа. Они справедливо реагируют на «информационные» предложения, но не на «бого-предложения».

Кластер 1. Этот кластер, по-видимому, состоит из малообеспеченных, малооплачиваемых и недавних участников, которых не привлекает какой-либо тип предложения. Их средние расходы как в периоды без промо, так и в периоды промо составляют почти 7,50 долларов США, что свидетельствует об увеличении показателя RFM всего на 6% между двумя периодами.

Кластер 2. Этот кластер клиентов очень хорошо реагирует на все типы предложений. В хорошем смысле: средние расходы в 8,92 и 17,20 долларов в периоды без промо и промо соответственно демонстрируют увеличение показателя RFM на 81% между двумя периодами. Они являются самыми старшими участниками программы и быстрее всего реагируют на предложения. Стоит отметить, в частности, что эта группа клиентов очень хорошо реагирует на «информационные» предложения.

Кластер 3. Этот кластер клиентов, возможно, представляет наибольшую ценность для бизнеса в периоды, когда компания не проводит рекламные акции. Они больше всего тратят в периоды без промо-акций со средними расходами на 16,67 долларов США, опережая большинство кластеров. Их средние расходы увеличиваются до 20,34 доллара в промо-периодах. У них самый высокий доход из всех кластеров, и они довольно быстро реагируют на предложения. Их больше всего интересуют предложения «бого» и в меньшей степени «диски», но не столько предложения «информация».

Кластер 4: этот кластер клиентов, по-видимому, активен только во время промо-периодов. Их средние расходы на нерекламные акции составляют 5,66 доллара США, но они резко увеличиваются до самых высоких средних расходов среди кластеров в промо-периоды — 21,23 доллара США, демонстрируя увеличение показателя RFM на 226% между двумя периодами. Они в равной степени заинтересованы в предложениях «бого» и «диск», но совершенно не соблазняются предложениями «информации». Это высокодоходные и старшие члены, которые быстро реагируют на предложения.

Кластер 5: Этот кластер, по-видимому, сформирован из клиентов, которые полностью неактивны в периоды без промо-акций с минимальной средней суммой расходов 1,23 доллара США. Это увеличение до, по-прежнему самого низкого, среднего уровня расходов в периоды промо-акций — 6,48 доллара. Отсюда увеличение показателя RFM на 360%, но это связано с очень низкими средними расходами в периоды без промо. Их показатели просмотров и завершений являются одними из самых низких, если не самыми низкими. Это влияет на то, что их оценка ответов также является одной из самых низких. Кроме того, не демонстрирует закономерности, по которой можно сказать, что они отдают предпочтение определенному типу предложения. Эта группа клиентов, по-видимому, является главной целью для дальнейшего и отдельного исследования.

6.2. Возможные улучшения

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

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

Руководствуясь этой статьей, выходные данные PCA (с объясненной дисперсией 0,95) использовались в качестве входных данных для TSNE. В t-SNE есть много ловушек, одна из которых заключается в том, что t-SNE не сохраняет ни расстояния, ни плотность. Оно лишь до некоторой степени сохраняет ближайших соседей. Вот почему было принято решение использовать его с методами кластеризации, не основанными на расстоянии, такими как GaussianMixture, который является вероятностной моделью. Еще одна проблема с t-SNE заключается в том, что настройка его гиперпараметров — вопрос догадок. Недоумение, пожалуй, самое важное (и сбивающее с толку). Руководствуясь этой статьей, перплексность была установлена ​​равной 𝑁¹ᐟ², где 𝑁 — количество отсчетов в данных. Результатом стало увеличение оценки силуэта выше 0,4. После исследования сформированные кластеры кажутся интуитивно понятными и более или менее соответствующими результатам, полученным K-Means. Однако, не будучи уверенным в надежности этого процесса, следующие шаги предназначены только для демонстрации работы, приветствуя любые советы по этому поводу.

Оценка силуэта непостоянна между запусками, поскольку необходимо наблюдать за несколькими участками, прежде чем делать какую-либо оценку с помощью t-SNE. После этого в качестве возможного оптимального количества кластеров предлагается значение 7.

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

6.3. Отражение проекта

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

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

В целом, я доволен тем, как появился этот проект. Я доволен количеством кластеров, так как 6 кластеров практичны с точки зрения бизнеса. Результаты кластеров, сформированных после исследования, кажутся интуитивными. Тем не менее, существует большой потенциал для улучшения.

Благодарности

  • Udacity за огромное руководство и наставничество.
  • Стипендии Академии MiSK за предоставленную прекрасную возможность.
  • Starbucks за предоставление данных для работы в этом проекте.