recommendation_system_of_posts

Форк
0

README.md

Проект ML-приложения для рекомендации постов в социальной сети

Задача

Сделать приложение, которое по api получает user_id, в ответ отправляет post_id пяти постов.

Цель

Пользователь лайкает хотя бы один из пяти рекомендованных постов (1 рекомендация состоит из 5 постов, требование - 52% рекомендаций получают хотя бы один лайк).

Исходные данные

Доступна следующая база данных:

user_data - таблица с пользователями и их данными;

post_text_df - таблица с постами (тема, текст);

feed_data - таблица с действиями пользователей (просмотр или лайк).

Краткое описание решения

  • Формирование виртуального окружения (requirements.txt).
  • Сначала работа в Jupyter Notebook (data_prepair_and_model_train.ipynb). Загрузка 5 млн строк действий пользователей (просмотр или лайк поста).
  • Очищение таблицы от дублирующих строчек, сортировка по дате и времени, разделение на train и test.
  • Векторизация постов (заголовок + 1 абзац) через tfidf.
  • One-hot encoding для пользовательских фичей.
  • Объединение таблиц в train и test.
  • Обучение градиентного бустинга (CatBoost).
  • Написание метода под метрику.
  • Сохранение модели в файл.
  • Сохранение полученных фичей на сервер для быстрого доступа.
  • Начало разработки приложения (app_main_file.py) - проверка подключения к БД через psycopg2 и sqlalchemy.
  • Проверка загрузки модели.
  • Написание основного и дополнительных эндпоинтов.
  • Написание приложения для FastAPI.
  • Запуск приложения через uvicorn, проверка работы через Postman.
  • Тест на новых данных - получено требуемое качество (0.608) за требуемое время.

Описание

ML-приложение для рекомендации постов в социальной сети

Языки

Jupyter Notebook

  • Python
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.