Объяснение машинного обучения с набором данных о продажах электронной коммерции

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

(Примечание: я все еще учусь, и большинство ресурсов, которые я читаю, на английском языке, который не является моим родным языком. Поэтому, пожалуйста, поправьте меня, если я что-то понял неправильно! Ваше исправление будет много значить для меня😊)

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

Интересный набор данных, который я использовал здесь (https://www.kaggle.com/jmmvutu/summer-products-and-sales-in-ecommerce-wish), посвящен продажам летней одежды в электронной коммерции Wish (wish .com). Набор данных содержит списки продуктов с различными компонентами, включая рейтинги, показатели продаж и многие другие функции. Каждый компонент может указать корреляцию.

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

Я собираюсь попробовать применить методы объяснимости ML, чтобы ответить на вопрос (и, может быть, внимательно посмотреть?). Впрочем, поехали! Надеюсь познавательно! :)

ОБЪЯСНИМОСТЬ МАШИННОГО ОБУЧЕНИЯ

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

1. Важность функции

Чтобы увидеть каждое влияние функций, я буду использовать Permutation Importance. Этот метод применяется после того, как модель была подогнана. Идея этого метода состоит в том, чтобы увидеть, насколько столбец повлиял на предсказание, когда значение столбца размещено случайным образом. Шаги по использованию Permutation Importance: обучают модель, а затем перемешивают один столбец, чтобы сделать прогноз, смотрят функцию потерь, которая пострадала от случайного размещения, а затем повторяют перетасовку для другого столбца.

Шаг 1. Обучите модель

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

Шаг 2. Использование важности перестановки

Мы можем импортировать модуль eli5, чтобы использовать функцию Permutation Importance. Чтобы уточнить, что сделал Permutation Importance, он сначала перетасует один столбец и получит прогноз. Из этого прогноза он увидит, насколько функция потерь пострадала от переключения значения этого одного столбца. Этот метод будет повторен для других столбцов, а затем мы сможем сравнить каждую функцию потерь и увидеть вес каждой функции, влияющей на прогноз.

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

2. График частичной зависимости

Далее идет график частичной зависимости. Если функция перестановки говорит нам о том, какая функция больше всего влияет на прогноз, то график частичной зависимости сообщает нам, какэто повлияло на прогноз. Как и перестановка, PDP используется после подгонки модели.

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

В этой модели мы можем увидеть зависимость от PDP, используя библиотеку pdpbox (https://github.com/saucecat/pdpbox) для всех функций.

Примечание к графику (до того, как мы его увидим): ось Y сообщила об изменении прогноза, а синий оттенок — уровень достоверности.

Международная доставка

Мы видим, что чем больше стран, в которые отправляется продукт, тем больше шансов, что продукт будет продаваться больше.

Цена

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

Рейтинг

Что касается рейтинга, мы видим, что это не оказывает особого влияния на продажи, но показано, что продукт с низким рейтингом имеет мало шансов на продажу.

Рейтинг продавца

Рейтинг продавца влияет больше, чем я думал, чем выше рейтинг, тем увереннее клиент покупает продукт. Покупатель обычно чувствует себя уверенно, если рейтинг продавца составляет минимум 4,0.

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

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

3. SHAP (пояснения к методу Шепли)

Последним будет SHAP. Что делает SHAP, так это анализирует влияние каждой функции, которая использовалась для прогнозирования. Однажды я попробовал SHAP для обработки изображений, и он смог определить, какая позиция на изображении имеет большое влияние на результат. Этот метод больше всего поможет на медицинском снимке определить, где именно со стороны изображения органов аномалии, вызывающие заболевание. Подробнее о SHAP можно узнать здесь: https://towardsdatascience.com/one-feature-attribution-method-to-supposedly-rule-them-all-shapley-values-f3e04534983d.

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

В этой строке прогнозируемая вероятность продажи продукта равна 0,63. Я буду применять SHAP, чтобы объяснить, как каждая функция влияет на прогноз.

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

Более того, SHAP может указать важность каждой функции на сводном графике. На этом этапе я буду использовать набор проверки, чтобы получить прогноз. Каждое значение набора проверки представлено тремя характеристиками точки. По вертикали показано, какая функция, цвет показывает, является ли она высокой или низкой в ​​этой строке, а горизонтальная показывает, вызвало ли влияние этого значения более высокий или более низкий прогноз.

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

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

Вы можете найти полный код на моем Github: https://github.com/emmanuellaanggi/machine-learning-explainability-of-ecommerce-sales.

Спасибо за чтение!