Повысьте уровень удовлетворенности клиентов, оптимизируя свой бизнес

Если бы вы могли с уверенностью предсказать, что покупатель оставит отрицательный отзыв, что бы ваша компания сделала по-другому?

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

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

Отрицательные отзывы убедили 94 процента потребителей избегать бизнеса - Review Trackers

Бизнес-проблема - плохие отзывы клиентов

Ведущей торговой площадкой Бразилии для малого бизнеса является Olist. Olist Store позволяет продавцам со всей Бразилии продавать и отправлять товары клиентам, используя партнеров Olist по логистике. После доставки клиенты получают по электронной почте опрос по шкале от 1 (недоволен) до 5 (доволен).

Olist любезно предоставил анонимный обзор клиентов и подробные сведения о заказах для более 100 000 транзакций за 2017–2018 годы. Этот популярный набор данных был загружен специалистами по данным более 76 тысяч раз.

Давайте построим модель прогнозирования «плохих отзывов клиентов», определяемую получением 1 или 2 баллов по пятибалльной шкале. В нашей большой выборке выполненных заказов 13,2% оценок по отзывам были плохими (отрицательными).

Будем искать двоичную целевую переменную: review_bad = 1.

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

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

Преобразование данных в функции

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

Необработанные данные из 8 таблиц включают 52 отдельных столбца. Разработанные мной функции прогнозирования можно сгруппировать по этим доменам.

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

Преобразования данных, которые использовались для подготовки функций прогнозирования:

  • Отфильтрованные записи за 2016 год и невыполненные заказы (менее 1%)
  • Заполнено всего несколько записей, в которых присутствовали нули.
  • Сводные показатели по заказам, платежам, товарам и продавцам, как показано
  • Расчетные показатели интервала дней с использованием дат жизненного цикла из заказов
  • Расчетное расстояние доставки в километрах между почтовыми индексами продавца и покупателя с использованием медианы широты и долготы в функции гаверсинуса.
  • Созданы горячие переменные кодирования (флаги) для способов оплаты, состояний клиентов, сегментов дня недели и времени дня (утро, день и т. Д.)
  • Удалил несколько отзывов по любому заказу, сохранив только итоговую оценку; это коснулось менее 1% заказов

Визуальные идеи

Во время анализа данных я обычно экспортирую окончательный объединенный фрейм данных из записной книжки Jupyter в Tableau для более быстрой визуальной проверки. Давайте посмотрим на самые интересные виды для понимания.

Дней доставки с опозданием: Olist предоставляет клиентам примерную дату доставки на момент заказа, которая в среднем составляет 24 ожидаемых дня обработки / доставки. Фактическая производительность доставки имеет большое значение, как показано выше. Для заказов, которые были доставлены с опозданием (отрицательные отклонения от расчетной даты), количество плохих отзывов клиентов составляло в среднем 55% по сравнению с 10% при доставке без задержки. Чем больше дней опаздывает, тем выше доля плохих отзывов.

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

Разнообразие продуктов. Используя древовидную карту, мы можем увидеть различия в оценках плохих отзывов по категориям продуктов. Изучая отдельные продукты, мы можем увидеть некоторых «собак» с более чем 50% плохих отзывов, когда ожидания клиентов явно не оправдываются. Средний рейтинг плохих отзывов о продукте - важная особенность окончательной модели.

Географическая структура. В Бразилии 26 штатов и 1 федеральный округ. Мы определенно можем увидеть различия в количестве плохих отзывов в разных штатах.

  • Сан-Паулу - это 42% заказов по нашим данным, это состояние значительно превосходит показатели по каждому показателю.
  • Рио-де-Жанейро - это соседний штат, на долю которого приходится 13% заказов, значительно отстающих по каждому показателю.

В обоих штатах находится один из двух крупнейших городов Бразилии с высокой плотностью населения и относительной близостью друг к другу. Рио-де-Жанейро должен стать целью для более глубокого изучения показателей доставки и ассортимента продукции. Почему клиенты в среднем заказывают товары с высоким индексом плохих отзывов по сравнению со средним? (индекс продукта 148 означает, что у приобретенных продуктов в среднем рейтинг плохих отзывов на 48% ниже, чем у среднего продукта в Бразилии в целом).

Корреляционный анализ

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

При рассмотрении корреляций отдельных функций мы видим умеренные положительные корреляции для всех форм интервалов доставки (is_late, act_delivery_days, days_late и days_variance).

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

Наконец, мы видим некоторые другие незначительные влияния на количество заказов / товаров продавца, стоимость фрахта / заказа и расстояние доставки. Единственные 2 штата из 27 с корреляцией больше 0,03 - это действительно Рио-де-Жанейро (+0,07) и Сан-Паулу (-0,06), что подтверждается приведенным выше изображением карты штата.

Прогнозирование плохих отзывов клиентов

Семь моделей классификации с контролируемым обучением были оптимизированы по метрике «точность», но искали разумный «отзыв» (доля плохих обзоров, которые наша модель правильно предсказывает). Для каждой модели я использовал поиск по сетке по 80% обучающих данных со стратифицированной 5-кратной перекрестной проверкой, чтобы изучить различные комбинации параметров.

Сравниваемые модели включали Random Forest, AdaBoost, Gradient Boost, XG Boost, Logistic Regression, SGD Classifier и Gaussian Naive Bayes.

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

Получившаяся «лучшая модель» для каждого классификатора затем была запущена на ранее невидимых 20% масштабированных тестовых данных с результатами сравнительной модели, показанными выше.

Я рекомендовал модель Gradient Boost со следующими характеристиками: точность 84%, отзыв 29%, точность 88%, AUC 64%. Параметры лучшей оценки были:

'learning_rate': 0.01, 'max_depth': 8, 'min_samples_leaf': 25, 'n_estimators': 100

Использование этой модели со стандартным порогом вероятности принятия решения 0,50 приводит к предсказанию примерно 1/3 плохих отзывов (отзыв), в то время как ошибочный только 1 раз из 6 (точность, ложные срабатывания). Это будет началом действий, и мы хотели бы продолжить совершенствовать модель, опираясь на опыт и более широкие данные.

Наиболее важные особенности модели Gradient Boost:

  • Сильный: доставка с опозданием, расхождение в днях,% плохих отзывов о продукте, количество товаров в заказе
  • Умеренный: количество продавцов в заказе, плохой отзыв продавца%
  • Слабые: фактические дни доставки, общее количество заказов на продукт, общее количество заказов для продавца, сумма фрахта по заказу, расстояние доставки (км)

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

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

Наблюдения за качеством данных

Несколько замечаний по поводу качества данных и допущений, присущих этому проекту.

  • Выборка по сравнению с совокупностью: выборка из 100 тыс. Заказов, каждый из которых имеет соответствующий рейтинг обзора, отлично подходит для построения модели, но не репрезентативен для генеральной совокупности. Учитывая, что только 5–10% клиентов пишут отзывы, и не каждый раз, нам нужно будет немного поработать, чтобы преобразовать нашу модель в обобщение для всей совокупности заказов Olist.
  • Требуются дополнительные функции: хотя прогнозирование 29% плохих отзывов с точностью 84% - это только начало, нам нужно добиться большего. Дополнительные данные, которые я бы порекомендовал Olist получить для дальнейшей разработки функций: полная база данных заказов, возвраты клиентов, веб-журналы клиентов, взаимодействия со службой поддержки, персональные данные клиентов, демографические данные, социальные настроения бренда / продукта / продавца и данные продавцов.
  • Маркетинговая воронка: Olist также выпустил набор данных маркетинговой воронки на Kaggle, который содержит 2 восходящие таблицы из процесса квалификации продавца. Эти данные нельзя было использовать при присоединении к схеме заказов, поскольку они содержали только продавцов, зарегистрированных в период с 2017 по 2018 год, что составляло небольшую часть фактических заказов за этот период (большинство из них было сделано известными продавцами).