Заметки про Machine Learning, Data Science и Analytics Engineering

RFM анализ в Python

В моём телеграм канале я запустил новую рубрику — task. Суть рубрики — Я публикую задание каждый вторник с постановкой задачи и ссылкой на данные. Код с описанием хода решения задачи я размещаю в четверг. Задачи сделаны так, что бы на их решение нужно потратить не более пары часов. Подробный пост — https://t.me/renat_alimbekov/71

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

Первая задача — сделать RFM-анализ. Он делит пользователей на сегменты в зависимости от давности (Recency), частоты (Frequency) и общей суммы платежей (Monetary).

  • Recency — разница между текущей датой и датой последнего платежа
  • Frequency — количество транзакций
  • Monetary — сумма покупок

Эти три показателя нужно рассчитать отдельно для каждого покупателя. После чего поставить оценки от 1-3 или 1-5. Чем шире диапазон, тем более узкие сегменты у нас получатся.

Баллы можно выставить с использованием квантилей. Сортируем данные по одному из критериев и делим на равныегруппы.

Для этой задачи используем публичный датасет: https://www.kaggle.com/olistbr/brazilian-ecommerce и файлы olist_orders_dataset.csv и olist_order_payments_dataset.csv. Соединить их можно по order_id.

Читать далее