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.

Читать далее

Выбираем логирование в Python: logging vs loguru

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

Пример куска лога обучения модели
Пример куска лога обучения модели

Читать далее

Machine learning в продакшн — Flask REST API

Обученная модель машинного обучения сама по себе пользу бизнесу не принесет. Модель должна быть интегрирована в IT инфраструктуру компании. Рассмотрим реализацию REST API микросервиса на примере задачи классификации цветов Ирисов. Набор данных состоит из длины и ширины двух типов лепестков Ириса: sepal и petal. Целевая переменная — это сорт Ириса: 0 — Setosa, 1 — Versicolor, 2 — Virginica.

Сохранение и загрузка модели

Прежде чем переходить к реализации нашего API надо обучить и сохранить модель. Возьмем модель RandomForestClassifier. Теперь сохраним модель в файл и загрузим, чтобы делать прогнозы. Это можно сделать с помощью pickle или joblib. Рассмотрим pickle, вариант с joblib останется для самостоятельного разбора.

import pickle filename = 'model.pkl' 
pickle.dump(clf, open(filename, 'wb'))

Для загрузки и проверки модели воспользуемся pickle.load

loaded_model = pickle.load(open(filename, 'rb')) 
result = loaded_model.score(X_test, y_test)
print(result)

Код обучения, сохранения и загрузки модели доступен в репозитории — ссылка

Читать далее

Как сделать резюме привлекательным с помощью pet project

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

Работа над pet project отличная возможность прокачать навыки. Если добавить в резюме реализованный pet-project оно сразу станет привлекательным и появится тема для разговора на интервью.

Так, что же такое pet-project? Pet-project — это проект, который делается ради себя. Он создается вне работы и часто связан с личным интересом. Например: спорт, электроника, приготовление еды, автомобили, путешествия, медицина и т.д. Проект поможет расширить профессиональные навыки и научиться новым, которые пригодятся в работе.

Вот несколько идей для проектов в Data Science, к реализации которых уже можно приступить:

Читать далее