GithubHelp home page GithubHelp logo

evraz_2021's Introduction

Трек: Продуйте металл через Data Science

Структура проекта

  • devops/ - скрипты запуска инфраструктуры для разработки

    • docker-compose.yml - манифест инфраструктуры
    • load_data.sh - скрипт для загрузки данных в psql
    • schemas.sql - скрипт для создания таблиц и функций в бд
  • evraz/ - модели, признаки, метрики, настройки

    • features.py - скрипты формирования признаков
    • metrics.py - метрики
    • model.py - модели
    • settings.py - настройки и обёртки для подключения к бд
  • make_submission.py - код для запуска пайплайна сбора фичей, кросвалидации модели, обучения и предсказания на тестовом датасете

  • make_submission.sh - код для формирования сабмита

  • ../data/raw/*.csv - датасет

  • ../data/submissions/*.{csv|zip} - сабмиты

  • ../data/logs/*.log - логи запусков

Общие идеи

Сбор признаков

Для извлечения признаков использовались SQL запросы к бд. В качестве базы данных была ипользована postgresql v13.4 развёрнутая в докере для удобства. Данный подход позволяет удобным образом делать запросы на сбор признаков, а также значительно быстрее и экономичнее по памяти, чем использование pandas dataframe.

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

Более подробная документация по каждому из признаков описана в docstring.

Модель

В качестве моделей был использован catboost. Обучалось две модели: одна на T, другая на C. Чтобы избежать кучи кода по отбору признаков, подбору гиперпараметров и т.д. был использован фреймворк LightAutoML с ограничением на использование 2 моделей. TODO: всё же обучить и затюнить одну модель, вместо нескольких в lama.

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.