Skip to content

Разработка программы по сбору и систематизации данных о более 100 тыс. видеоиграх с сайта Backloggd.com. Решение задачи многоцелевой классификации. Оценка моделей c использованием показателей: F1-weighted, масштабируемости и калибровки. Интеграция модели в web-сервис.

License

Notifications You must be signed in to change notification settings

GSimonX37/Backloggd

Repository files navigation

backloggd

Цель и задачи проекта

Цель проекта: провести анализ данных, размещенных на сайте backloggd.com, на их основе обучить модель, предсказывающую игровые жанры, к которым принадлежит видеоигра с заданным описанием.

Задачи проекта:

  1. Собрать и систематизировать данные, размещенные на сайте backloggd.com.
  2. Предварительно обработать и провести разведочный анализ данных.
  3. Обучить модель, выработать систему по оценки её эффективности.
  4. Создать веб-сервис, способный обрабатывать запросы пользователя.

Этапы проекта

Название этапа Описание этапа Инструменты
1 Сбор и систематизация данных Написание программы, осуществляющей сбор и систематизацию данных с сайта backloggd.com. Сбор и систематизация данных.
  • AIOHTTP
  • BeautifulSoup4
2 Разведочный анализ данных Анализ основных свойств данных, выявление распределений, общих зависимостей и аномалий с помощью инструментов визуализации.
  • Jupyter
  • Matplotlib
  • NumPy
  • Pandas
  • Seaborn
3 Обучение модели На основе предварительно обработанных данных, обучение модели, предсказывающей игровые жанры, к которым принадлежит видеоигра с заданным описанием. Выработка системы по оценке эффективности модели.
  • Jupyter
  • NLTK
  • NumPy
  • Pandas
  • Seaborn
  • Scikit-learn
  • Optuna
4 Создание веб-сервиса Интеграция модели в веб-сервис.
  • FastAPI
  • Pandas
  • Uvicorn
  • Docker

Блокноты

  1. exploring.ipynb - предварительная обработка и проведение разведочного анализа данных.
  2. training.ipynb - обучение модели, выработка системы по оценки её эффективности.

Набор данных

Набор данных размещен на сайте kaggle.com, последнюю версию набора данных вы можете найти там.

Документация

  1. Начало работы.
  2. Структура проекта.
  3. Описание данных.
  4. Получение данных.
  5. Предварительная обработка данных.
  6. Тренировка и оценка моделей.
  7. Запуск и контейнеризация приложения.

Результаты

Было отобрано 20 наиболее распространенных жанров видеоигр. В данных присутствует дисбаланс классов:

  • мажоритарным классом является класс Adventure;
  • миноритарным классом является класс Quiz/Trivia.

balance

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

words

Наилучшей предсказательной способностью обладает модель MultinomialNB. На тестовых данных удалось достичь метрики F1-weighted более 0.64

metrics

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

scalability

Модель имеет плохую точность прогнозирования вероятности принадлежности объекта к тому или иному классу. Прогнозируемая вероятность распределена неравномерно. Для более точного прогнозирования вероятности необходима калибровка модели.

studies

Поиск оптимальных гиперпараметров осуществлялся параллельно в 4 исследованиях с использованием алгоритма TPE (древовидной оценки Парцена) для 300 испытаний.

studies

Благодарности

Спасибо Ирине Романовской (GitHub) за помощь и поддержку в работе над данным проектом.

Лицензия

Распространяется по лицензии GNU General Public License v3.0. См. LICENSE для получения дополнительной информации.

About

Разработка программы по сбору и систематизации данных о более 100 тыс. видеоиграх с сайта Backloggd.com. Решение задачи многоцелевой классификации. Оценка моделей c использованием показателей: F1-weighted, масштабируемости и калибровки. Интеграция модели в web-сервис.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages