Цель проекта: провести анализ данных, размещенных на сайте backloggd.com, на их основе обучить модель, предсказывающую игровые жанры, к которым принадлежит видеоигра с заданным описанием.
Задачи проекта:
- Собрать и систематизировать данные, размещенные на сайте backloggd.com.
- Предварительно обработать и провести разведочный анализ данных.
- Обучить модель, выработать систему по оценки её эффективности.
- Создать веб-сервис, способный обрабатывать запросы пользователя.
№ | Название этапа | Описание этапа | Инструменты |
---|---|---|---|
1 | Сбор и систематизация данных | Написание программы, осуществляющей сбор и систематизацию данных с сайта backloggd.com. Сбор и систематизация данных. |
|
2 | Разведочный анализ данных | Анализ основных свойств данных, выявление распределений, общих зависимостей и аномалий с помощью инструментов визуализации. |
|
3 | Обучение модели | На основе предварительно обработанных данных, обучение модели, предсказывающей игровые жанры, к которым принадлежит видеоигра с заданным описанием. Выработка системы по оценке эффективности модели. |
|
4 | Создание веб-сервиса | Интеграция модели в веб-сервис. |
|
- exploring.ipynb - предварительная обработка и проведение разведочного анализа данных.
- training.ipynb - обучение модели, выработка системы по оценки её эффективности.
Набор данных размещен на сайте kaggle.com, последнюю версию набора данных вы можете найти там.
- Начало работы.
- Структура проекта.
- Описание данных.
- Получение данных.
- Предварительная обработка данных.
- Тренировка и оценка моделей.
- Запуск и контейнеризация приложения.
Было отобрано 20 наиболее распространенных жанров видеоигр. В данных присутствует дисбаланс классов:
- мажоритарным классом является класс Adventure;
- миноритарным классом является класс Quiz/Trivia.
Для каждого класса существует свой уникальный список наиболее часто встречающихся слов в описаниях видеоигр.
Наилучшей предсказательной способностью обладает модель MultinomialNB. На тестовых данных удалось достичь метрики F1-weighted более 0.64
Кривые обучения показывают, что присутствует признак переобучения модели. Добавление новых данных возможно улучшит предсказательную способность модели. При добавлении новых данных время обучения возрастает линейно, время предсказания - не меняется.
Модель имеет плохую точность прогнозирования вероятности принадлежности объекта к тому или иному классу. Прогнозируемая вероятность распределена неравномерно. Для более точного прогнозирования вероятности необходима калибровка модели.
Поиск оптимальных гиперпараметров осуществлялся параллельно в 4 исследованиях с использованием алгоритма TPE (древовидной оценки Парцена) для 300 испытаний.
Спасибо Ирине Романовской (GitHub) за помощь и поддержку в работе над данным проектом.
Распространяется по лицензии GNU General Public License v3.0. См. LICENSE для получения дополнительной информации.