Giter Club home page Giter Club logo

pochta_innopolis's Introduction

Решение задачи классификации агрокультур (hacks-ai.ru)

Получение высот над уровнем моря для всех полей

В модели используется признак "высота над уровнем моря".

Значения для train и test данных приведены в файлах:

  • data/train_elevation.csv

  • data/test_elevation.csv

Для получения этих высот использовалась библиотека PyGMT (https://www.pygmt.org/). Рекомендуется использовать conda для установки этой библиотеки, так как она тянет за собой большое количество зависимостей.

Далее необходимо запустить скрипт elevation.py. Пример:

python elevation.py -i path/to/train.csv -o data/train_elevation.csv
python elevation.py -i path/to/test.csv -o data/test_elevation.csv

Эти скрипты нужно будет запустить несколько раз. Каждый запуск будет обрабатываться по 25 регионов 1гр x 1гр. При большем количество регионов, PyGMT вылетает с ошибкой.

Обучение моделей и получение предсказаний

Для обучения моделей LightGBM используется ноутбук innopolis_lightgbm.ipynb. В ходе соревнования он запускался в Google Colab на стандартной машине без GPU.

Для обучения моделей TabNet используется ноутбук innopolis_tabnet.ipynb. В ходе соревнования он запускался на Kaggle на машине с GPU.

Для LightGBM необходимо выполнить код из ноутбука 3 раза:

  • с параметрами по умолчанию (используются все столбцы nd_mean_*, параметр colsample_bytree не задан)

  • без 8 столбцов nd_mean_* (nd_mean_2021-04-20, nd_mean_2021-04-22, nd_mean_2021-04-23, nd_mean_2021-05-09, nd_mean_2021-06-22, nd_mean_2021-06-25, nd_mean_2021-07-08 и nd_mean_2021-08-27)

  • без 8 столбцов nd_mean_* и с параметром colsample_bytree=0.5

Для TabNet необходимо выполнить код из ноутбука 2 раза:

  • с параметрами по умолчанию (используются все столбцы nd_mean_*)

  • без 8 столбцов nd_mean_* (список столбцов приведен выше)

Примеры предиктов есть в папке data/blend.

Получение финального решения

Для получения финального решения, необходимо усреднить предсказания от моделей lightgbm и tabnet. Для этого используется скрипт create_submission.py.

Пример:

python create_submission.py -i data\blend\tabnet89.csv -i data\blend\tabnet93.csv -i data\blend\lightgbm88.csv -i data\blend\lightgbm90.csv -i data\blend\lightgbm92.csv -o submission.csv

pochta_innopolis's People

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.