Автор: Правин Джаладжа

Чтобы лучше понять мир машинного обучения, построение модели поможет гораздо больше, чем чтение и просмотр видео в Интернете. Практический опыт очень необходим для масштабирования понимания концепций машинного обучения и его надлежащих приложений. Кроме того, это одно из практических исследований, которые помогут лучше понять мир ML. Поскольку обсуждаемое здесь тематическое исследование представляет собой рекомендацию категории Elo Merchant для соревнований Kaggle.

Введение

Рекомендация категории Elo Merchant — это соревнование Kaggle, организованное Elo. Это один из крупнейших платежных брендов в Бразилии, который предоставляет клиентам дебетовые и кредитные карты. Как платежный бренд, предоставление продавцов акций и скидок является хорошей маркетинговой стратегией. Владелец карты может использовать рекламные скидки у различных продавцов. Elo как платежный бренд хочет персонализировать опыт держателя карты с помощью рекламных акций. Предоставляя пользователю рекламные акции у разных продавцов в зависимости от их платежного поведения, вы можете улучшить пользовательский опыт и привлечь клиентов.

Два года назад компания Elo организовала конкурс Kaggle для участников, чтобы создать решение для персонализации рекламных акций и скидок. Elo уже создает модели ML, чтобы понять другие аспекты, такие как еда клиента и покупки. Этот Конкурс предназначен для специальной модели построения, которую можно использовать для выявления лояльности клиентов к бренду, чтобы персонализировать скидки и рекламную кампанию.

Обзор:

Тематическое исследование по рекомендации категории Эло проводится в соответствии со следующим поэтапным процессом:

  1. Определение бизнес-проблемы
  2. Постановка задачи машинного обучения
  3. Исследовательский анализ данных
  4. Очистка данных
  5. Разработка функций
  6. Изучение инженерных особенностей
  7. Построение модели
  8. Вывод.

Определение бизнес-проблемы

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

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

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

Постановка задачи машинного обучения

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

Целевая переменная — показатель лояльности

Входные данные — история покупок держателя карты, время использования и т. д.

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

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

train.csv — это файл csv, содержащий основную информацию о подписке клиента на карту Elo. В train.csv есть шесть переменных. Целевая переменная (Оценка лояльности) дана для обучения модели, приведенной в этом файле.

test.csv — это тестовые данные, для которых мы должны протестировать нашу окончательную модель. Он имеет все те же столбцы, что и train.csv, за исключением целевой переменной.

Данные поезда имеют целевое значение, простой PDF-файл показывает, что они имеют выбросы около -30 и стандартизированы со средним значением 0.

Распределение таргета по категориям обезличенных признаков (Feature_1, Feature_2, Feature_3) не отличается друг от друга. Это показывает, что целевые значения не перекошены для разных категорий в этих трех анонимных функциях. нам нужно копнуть глубже, чтобы установить взаимосвязь card_id и целевое значение. И целевая переменная (оценка лояльности) ведет себя как график частоты демпфирования в зависимости от first_active_month. Карта, активная в период с 2012 по 2015 год, имеет большие пики и спады, но после 2015 года цель становится линейной и растет. Это может быть связано с тем, что типы транзакций, совершаемых с помощью карт, различаются между двумя периодами времени.

Так как раздача как поезда, так и теста практически идентичны. Таким образом, при преобразовании данных нет разделения по времени. И это гарантирует предсказание тестовых данных.

Значения VIF для всех трех признаков значительно меньше 10. Таким образом, в данных поезда нет проблемы мультиколлинеарности.

historical_transactions.csv — этот CSV-файл содержит 14 различных переменных об их транзакциях для каждого клиента.

New_merchants_transactions.csv — имеет тот же набор переменных столбцов, что и history_transactions.csv, но записаны в другом временном интервале. Он содержит информацию о транзакциях за период до расчета показателя лояльности. Это свежая информация о транзакциях клиентов.

Исторические и новые функции данных о транзакциях продавцов, такие как категория_1, категория_2, категория_3, рассрочка и месячная задержка, почти не различаются в распределении по отношению к целевому значению. И не раскрывает никаких подробностей о связи целевой переменной с картами.

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

А функция «Дата покупки» может выявить неотъемлемое свойство транзакций, а транзакции зависят от времени, поэтому разработанные функции будут полезны для прогнозирования.

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

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

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

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

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

Очистка данных

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

Разработка функций

Одно горячее кодирование. Категориальные функции (категория_3, категория_2, задержка в месяц) в данных транзакции кодируются горячим способом до инженерных функций из этих функций.

Деанонимизация суммы покупки. Как мы обсуждали в EDA, функции суммы покупки анонимизируются с центрированием по среднему значению и масштабированием. С помощью радарной информации о ядре сумма покупки была деанонимизирована путем деления 0,00150265118 и прибавления 497,06.

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

Функции даты и времени: функция даты покупки записывает отметку времени транзакций. В дополнение к основным статистическим функциям часа, дня, недели, месяца и года, другие функции, такие как

  1. день сделки выходной или нет.
  2. среднее время между покупками.
  3. праздничная покупка или нет.

Затем эти функции объединяются с необходимой статистикой для ввода в модель.

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

Данные обучения и тестирования объединяются с этими инженерными функциями транзакций. Кроме того, базовые функции времени также получаются из функции первого активного месяца.

RFM-анализ – это методология исследования рынка, в которой используются три показателя транзакций клиентов для их классификации.

  • R — Regency — количество дней с момента последней транзакции
  • F — Частота — Частота транзакций
  • M — Денежная стоимость — Сумма денег, потраченных клиентом/держателем карты.

Индекс RFM и оценка RFM рассчитываются для понимания лояльности клиентов. Итак, здесь я использовал квантили для категоризации значений RFM, а путем простого сложения оценок RFM и конкатенации индекс RFM получается как функции.

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

Исследование инженерных функций

Окончательный набор инженерных функций содержит множество функций, в которых есть значения nan. Из 280 158 объектов содержат Nan Values. Более половины признаков приходится приписывать значениям nan. Поскольку вменение путем построения модели занимает много памяти и времени. Достаточно простой техники импутации. В этом исследовании я экспериментировал с вменением мод и вменением с нулем. Из результатов этого. Вменение значений nan с нулем дает лучшие результаты прогнозирования.

Построение модели

Показатель оценки – среднеквадратическая ошибка. В соревнованиях на таких платформах, как Kaggle, метрика для оценки предсказания модели предоставляется самим провайдером соревнований.

Из исследования, проведенного с уже доступными решениями и ядрами, простая модель, такая как линейная регрессия, KNN не работает лучше для прогнозирования целевого значения. Итак, я перешел к сложной модели, такой как GBDT.

LightGBM. Модель повышения градиента — первый шаг к решению. Модель LightGBM без настройки гиперпараметров приводит к плохому значению RMSE 3,744407. Но с настройкой гиперпараметров с помощью пакета optuna дает лучшее значение RMSE 3,61634. Пакет Оптуна — отличный фреймворк для оптимизации гиперпараметров, который обеспечивает больший контроль над оптимизацией, чем сетка sklearn и метод случайного поиска.

XGBoost. Модель XGBRegressor с настроенными гиперпараметрами не дает лучшего показателя RMSE, чем модель lightGBM, но быстрее обучается с использованием графического процессора.

Наложение. Простое смешивание прогнозов модели XGBoost и lightGBM улучшило показатель RMSE по сравнению с прогнозами модели XGBoost. Затем два прогноза модели складываются с помощью мета-обучения Ridge. Эта составная модель с мета-обучением дала лучший показатель RMSE на Kaggle, чем прогнозы всех других моделей.

Вывод

Модель Stacked, построенная на моделях XGBoost и lightGBM с мета-обучением гребня, дает лучшую оценку Kaggle 3,61596, чем другие модели. Это исследование раскрывает истинную силу инженерного аспекта построения модели машинного обучения. Почти все функции данных о поездах, поступающих в модели, являются сконструированными данными.

Будущая работа

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

Использованная литература:

  1. https://www.appliedaicourse.com/
  2. https://www.kaggle.com/brendanhasz/elo-data-cleaning-and-eda
  3. https://www.kaggle.com/denzo123/a-closer-look-at-date-variables
  4. https://towardsdatascience.com/find-your-best-customers-with-customer-segmentation-in-python-61d602f9eee6
  5. https://www.kaggle.com/raddar/target-true-meaning-revealed
  6. https://www.kaggle.com/rajeshcv/customer-loyalty-based-on-rfm-analysis
  7. https://www.analyticsvidhya.com/blog/2020/11/hyperparameter-tuning-using-optuna/

Репозиторий GitHub:



Профиль LinkedIn: Правин Джаладжа