Giter Club home page Giter Club logo

project_bgg_rating's Introduction

Итоговый проект.

Предсказание рейтинга настольных игр, на основании данных BGG

Школа SkillFactory

Оглавление

1. Постановка цели и описание данных
2. Краткая информация о данных
3. Этапы работы над проектом
4. Результат

Постановка цели и описание данных

Данные: данные взяты с платформы Kaggle, данные о рейтинге настольных игр с сайта BGG

Цель: предсказать рейтинг настольной игры и понять, какие признаки оказывают на него сильнейшее влияние.

Данные уже содержат в себе rating, так что задача относится к классу задач Машинного обучения с учителем, и предсталяет собой построение регрессии:

  • Обучение с учителем: у нас есть как все необходимые признаки, на основе которых выполняется предсказание, так и сам целевой признак.
  • Регрессия: будем считать, что рейтинг настольной игры - это непрерывная величина.

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

Метрика качества Результаты оцениваются по метрике MAE.
MAE расшифровывается выражение как cредняя абсолютная ошибка.
Это функция потерь, используемая в регрессионных моделях. MAE - это сумма абсолютных значений разностей между целевой переменной и переменной-предиктором. Следовательно, он измеряет средний размер ошибки в наборе прогнозов независимо от направления ошибки. Диапазон потерь также составляет от 0 до ∞.

⬆️к оглавлению

Краткая информация о данных

На платформе доступно несколько собранных датасетов. Для своей работы мы возьмем основной basic_data. В датасете собраны данные о 286186 настольных игр.

На платформе описания признаков нет, поэтому постараемся самостоятельно описать признаки:

  1. name - название настольной игры
  2. description - описание настольной игры
  3. thumbnail - миниатюра
  4. image - изображение
  5. rating - рейтинг, наша целевая переменная
  6. bayes_rating - байесовский рейтинг
  7. usersrated - кол-во голосов
  8. bggrank - ранг BGG
  9. stddev - стандартное отклонение
  10. owned - кол-во владельцев игры
  11. trading - кол-во продающих
  12. wanting - кол-во пользователей, желающих сыграть в игру
  13. wishing - кол-во пользователей, желающих приобрести игру
  14. numweights - кол-во пользователей, указавших вес игры (сложность)
  15. averageweight - средний вес игры (сложность)
  16. yearpublished - год выпуска игры
  17. minplayers - минимальное кол-во игроков
  18. maxplayers - максимальное кол-во игроков
  19. playingtime - игровое время партии (обычно указывается производителем)
  20. minplaytime - минимальное время партии
  21. maxplaytime - максимальное время партии
  22. age - минимальный возраст игроков

⬆️к оглавлению

Этапы работы над проектом

В общем случае процесс решения задач возникающих в Машинном обучении состоит из следующих этапов:

  1. Очистка и форматирование данных
  2. Предварительный анализ данных и создание новых признаков
  3. Анализ полезности признаков
  4. Сравнение качества работы нескольник моделей, подбор гиперпараметров
  5. Обучение с библиотекой LightAutoML на обработанных данных и на исходном датасете
  6. Итоговое представление результатов работы

⬆️к оглавлению

Результат

Была сделана довольно большая работа по обработке признаков. Найдены зависимости в признаках и отобраны значимые. Подбор моделей: на примере простой модели LinearRegression, MAE = 1.19, строились выводы об успешности моделей.
RandomForestRegressor, MAE: 0.69 (Подбор гиперпараметров через GridSearchCV)
CatBoostRegressor, MAE: 0.71 (Подбор гиперпараметров через RandomizedSearchCV)
GradientBoostingRegressor, MAE: 0.77
LightGBMRegressor, MAE: 0.71 (Подбор гиперпараметров через RandomizedSearchCV)
Blanding with RandomForestRegressor and CatBoostRegressor, MAE: 0.69

Лучшие результаты получились с использованием библиотеки LightAutoML:

  • на обработаннм датасете MAE: 0.67
  • на исходном датасете MAE: 0.40

Вывод: Скорей всего в исходных данных LightAutoML нашла зависимости, которые я не заметила или удалила, посчитав выбросами или обычными пропусками. Для улучшения прогноза рейтинга, стоит внимательнее поработать с исходными данным и постараться сгенерировать признаки более коррелируемые с целевой переменной.

⬆️к оглавлению

project_bgg_rating's People

Contributors

olpachino avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.