В этой серии из двух частей я расскажу о своем опыте работы над Kaggle Data Challenge (вот ссылка) в рамках курса для выпускников по статистическому обучению, который я проходил в Университете Ватерлоо в качестве магистранта по статистике.

В первой части я расскажу о следующих двух темах:

  1. Бизнес-кейс этой проблемы науки о данных
  2. Исследовательский анализ данных

Итак, перейдем непосредственно к проблеме:

  1. Экономическое обоснование:

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

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

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

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

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

Несбалансированный набор данных

Наборы обучающих и тестовых данных можно найти здесь на моей GitHub-странице проекта.

Обучающий и тестовый наборы данных состоят из 8630 и 3700 посетителей соответственно. Переменная-предиктор Revenue имеет значение 1 для посетителей, которые превратились в клиентов, и 0 в противном случае.

Набор данных сильно несбалансирован, т. е. из 8630 посетителей в обучающем наборе данных только 1335 стали клиентами, т. е. коэффициент конверсии 15,4%.

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

Допустим, у нас есть алгоритм, который просто помечает каждую запись как принадлежащую к мажоритарному классу. В нашем случае из каждых 100 записей 85 будут принадлежать к классу большинства (недоходные), и поэтому алгоритм, который просто помечает каждую запись как недоходную, достигнет точности 85%. Недостатком, однако, является то, что он имеет 0% точность по записям, принадлежащим к классу меньшинства, поскольку он будет классифицировать каждую доходную запись как недоходную.

Таким образом, точность здесь не является подходящей метрикой. Вместо этого мы выбираем метрику, которая отражает, насколько хорошо алгоритм классифицирует класс меньшинства. Оценка ROC AUC является одной из таких метрик. ROC AUC расшифровывается как Receiver Operating Curve — Area Under Curve. Показатель ROC AUC находится в диапазоне от 0 до 1, а высокое значение означает, что модель обладает высокой способностью разделять положительные и отрицательные примеры. Это широко используемый показатель для оценки производительности моделей, особенно в случаях несбалансированных наборов данных. Хорошее объяснение лежащей в основе теории и интуиции можно найти здесь

Атрибуты данных

Набор данных имеет 17 атрибутов предикторов, которые могут быть числовыми (непрерывными и дискретными) и категориальными, идентификатором клиента и выходной переменной дохода, которая принимает либо 0, либо 1.

Я создал текстовый документ здесь, в котором есть краткое описание каждого из этих атрибутов.

Отсутствующие значения

Я отсортировал обучающий набор данных (online_jewellery_shop_train.xlsx) в Excel, чтобы увидеть, есть ли в некоторых записях отсутствующие атрибуты. Было 8 записей с 8 отсутствующими атрибутами. Поскольку эти 8 записей представляют менее 0,1% обучающего набора данных, я удалил их из набора данных. Точно так же в тестовом наборе данных было 6 записей, у которых не было этих 8 атрибутов, и я их тоже удалил. Я аппроксимировал вероятность конверсии посетителя в покупателя для этих отсутствующих записей тестового набора, назначив каждому из них среднее значение прогнозируемой вероятности всего тестового класса. Хотя это приблизительное значение, учитывая, что отсутствующих записей очень мало (~ 0,1%), а схема отсутствующих атрибутов постоянна, я считаю, что в данном случае это будет приемлемо. Если количество записей с пропущенными значениями было значительным, скажем, 5–10% от набора данных, то такая стратегия удаления пропущенных значений могла привести к потере ценной информации. В этом случае потребуется альтернативная стратегия, такая как вменение пропущенных значений.

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

Наборы обучающих и тестовых данных после удаления записей с отсутствующими атрибутами можно найти здесь (input_training_data.csv и input_test_data.csv).

Тенденции исследовательского анализа данных:

Я представляю некоторые тенденции, которые я наблюдал в EDA, который я выполнял на обучающих данных. Основная тема моего EDA заключается в следующем:

Для каждого категориального атрибута я построил процент посетителей с доходом (0) и посетителей без дохода (1) и сравнил это со средним значением посетителей с доходом, то есть ~ 15%. Делая это, я надеюсь проверить, есть ли какие-то атрибуты, конкретные значения которых приводят к непропорционально высокому или низкому количеству посетителей, приносящих доход. Я использовал термины «посетители, приносящие доход» / «посетители, приносящие доход» и «клиенты» взаимозаменяемо.

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

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

Например, когда я изобразил клиентов в соответствии с количеством посещенных ими административных страниц, я заметил, что нет особой тенденции в отношении процента клиентов (доход = 1) и количества просмотренных ими административных страниц, за исключением тот факт, что из тех посетителей, которые не просматривают ни одну административную страницу (их 3994), только 9% (362) совершили покупку. Итак, на первый взгляд, количество административных страниц кажется несущественным фактором для получения дохода, если не считать этого лакомого кусочка наблюдения.

Я поделился результатами моего исследовательского анализа данных здесь

Вот резюме моих выводов EDA:

  1. Ценность страницы: существует сильная положительная корреляция между количеством посещенных страниц ювелирного магазина и коэффициентом конверсии. Люди, которые посещают более 20 страниц, имеют особенно более высокий коэффициент конверсии (>70%) по сравнению с людьми, которые посещают 20 или менее страниц (~10%). Это говорит о том, что если веб-сайт будет привлекательным для людей, чтобы они оставались и просматривали ювелирные страницы, люди могли бы покупать больше. Это корреляция и может не означать причинно-следственную связь, то есть те посетители, которые в конечном итоге покупают, могут посещать больше страниц с украшениями. Тем не менее, можно провести эксперимент и проверить гипотезу о том, что привлекательные веб-страницы заставляют людей дольше оставаться на сайте и, в конечном итоге, покупать больше.
  2. Коэффициент выхода: существует сильная отрицательная корреляция между коэффициентом выхода и коэффициентом конверсии. Коэффициенты выхода 0,02 и выше связаны с коэффициентом конверсии ниже среднего.
  3. Показатель отказов: существует сильная отрицательная корреляция между показателем отказов и коэффициентом конверсии. Показатель отказов 0,01 и выше связан с коэффициентом конверсии ниже среднего.
  4. Время, проведенное на страницах, связанных с продуктом. Существует сильная положительная корреляция между временем, которое посетители проводят на страницах, связанных с продуктом, и коэффициентом конверсии. Люди, которые провели от 3200 до 6400 единиц времени на страницах, связанных с продуктом, имели коэффициент конверсии около 30%. Это понимание может помочь в увеличении продаж, например, установив на веб-сайте счетчик времени, и как только люди превысят порог времени, проведенного на страницах, связанных с продуктом, им может быть предложена скидка, чтобы побудить их купить продукт.
  5. Время, проведенное на информационных страницах. Существует слабая положительная корреляция между временем, проведенным посетителями на информационных страницах, и коэффициентом конверсии. В то время как очевиден скачок на уровне 130 единиц, т.е. у людей, тратящих более 130 единиц, коэффициент конверсии составляет не менее 25 % по сравнению с 15 % у тех, кто тратит менее 130 единиц времени, у тех, кто тратит 520–650 единиц, коэффициент конверсии составляет 25%. только 27%.
  6. Время, проведенное на административных страницах. Как и в случае с информационными страницами, существует слабая положительная корреляция между временем, проведенным посетителями на административных страницах, и коэффициентом конверсии.
  7. Количество посещенных страниц, связанных с продуктом: существует сильная положительная корреляция между количеством посещенных людьми страниц, связанных с продуктом, и коэффициентом конверсии. Вполне вероятно, что между этой переменной и временем, проведенным на страницах, связанных с продуктом, может быть сильная корреляция. Я не проверял такие корреляции в этом испытании данных, но рассмотрю этот вопрос в отдельном посте.
  8. Количество посещенных административных страниц: В целом корреляции не наблюдается, но те посетители, которые вообще не посещают административные страницы, покупают по значительно более низкой цене (9%), чем те, кто посещает одну или несколько страниц (20%). Опять же, эта переменная может сильно коррелировать со временем, проведенным на административных страницах.
  9. Количество посещенных информационных страниц. Тенденция очень похожа на время, проведенное на информационных страницах. Таким образом, эти две переменные могут быть коррелированы.
  10. Близость к особому дню: это может показаться нелогичным, но близость дня посещения к особому дню приводит к более низкому коэффициенту конверсии. Это, конечно, зависит от того, как мы определяем степень близости, но если 0 означает, что день посещения далек от особого дня, а 1 означает, что день посещения приходится на особый день, тогда очевидна отрицательная корреляция.
  11. Месяц посещения: ноябрь — месяц с самым высоким коэффициентом конверсии (26%). Этот магазин может использовать это наблюдение, чтобы продавать больше в течение этого месяца, т. е. попытаться направить больше трафика на веб-сайт в течение ноября и посмотреть, приведет ли это к еще большему увеличению продаж.
  12. Выходные: выходные приводят к более высокому коэффициенту конверсии по сравнению с будними днями, 17% против 15%.
  13. Тип посетителя: новый посетитель имеет значительно более высокий коэффициент конверсии (25%), чем вернувшийся посетитель (15%). Это означает, что если на сайт заходит новый посетитель, можно использовать новизну опыта для совершения продажи. Это может быть оппортунистическим, но на него можно действовать, если опыт работы с сайтом достаточно хорош для того, чтобы значительное большинство новых посетителей вернулись.
  14. Тип трафика: тип трафика 2 приводит к максимальному количеству конверсий (587) и также имеет относительно высокий коэффициент (20%). ИТ-команда может выяснить, почему к этому типу относится наибольшее количество источников дохода, и если эта переменная может быть изменена, то могут ли другие люди также получать трафик этого типа?
  15. Регион: это никак не влияет на коэффициент конверсии. Таким образом, региональный маркетинг может оказаться бесполезным для этого магазина. Однако на сегодняшний день максимальное количество посетителей, приносящих доход, приходится на регион 1 (549). Таким образом, маркетинговая команда должна следить за тем, чтобы защитить свои позиции в этом регионе от конкуренции.
  16. Браузер: похоже, что большинство покупателей используют Браузер 2, но тип браузера, похоже, не имеет лишь слабой корреляции с коэффициентами конверсии.
  17. Операционная система: несмотря на то, что на операционные системы 2 и 1 приходится большая часть посетителей, приносящих доход, коэффициент конверсии с этой переменной также не коррелирует.

Итак, основные бизнес-идеи, которые я получил от EDA, следующие:

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

B. Исправить технические проблемы веб-сайта: низкий показатель выхода и показатель отказов имеют высокие коэффициенты конверсии. Таким образом, снижение этих двух коэффициентов также может привести к более высокому коэффициенту конверсии.

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

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

E. Особые дни. Вопреки тому, что можно подумать, коэффициент конверсии в особые дни ниже, чем в обычные дни.

Это все для части 1! Надеюсь, вы нашли здесь что-то, что сможете применить в своей работе.

Во второй части (см. здесь) я расскажу о предварительной обработке данных и реализации контролируемых алгоритмов классификации (Random Tree и XGBoost).