Skip to content

traptrip/raifhack_public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

В чем отличие от бэйзлайна

  • Добавили кросс валидацию в класс модели BenchmarkModel
  • Обучаемся на всех данных независимо от price_type
  • Корректирующий коэффициент выставляется вручную на основе последнего фолда
  • Добавили признак floor, предварительно предобработав его от пропусков и строковых значений

Как работает кросс валидация

  1. Обучаемся на нескольких первых месяцах на всех данных и предсказываем на три месяца вперед только на на данных с price_type=1.
  2. Сдвигаем валидационный фолд на месяц вперед.
  3. Подсчитываем корректирующий коэффициент и метрику соревнования.
  4. Логируем коэффициент и метрику.

Описание

Это бенчмарк скрипт для хакатона от Раййфайзенбанка по оценке коммерческой недвижимости Бенчмарк состоит из:

  • pyproject.toml - конфигурационный файл для менеджера пакетов poetry (https://python-poetry.org/) - в интернете есть много статей, посвященных ему (например https://habr.com/ru/post/455335/ и https://khashtamov.com/ru/python-poetry-dependency-management/)
  • requirements.txt - стандартный requirements для pip
  • train.py - скрипт, который обучает модель и сохраняет ее
  • predict.py - скрипт, который делает предсказание на отложенной тестовой выборке

Запуск

Вариант с poetry

Крайне рекомендую именно установку с poetry - poetry это новый packet manager для питона, и он гораздо круче чем pip. Разобравшись с ним (а это очень-очень просто), думаю, вы будете необычайно счастливы. Для запуска необходимо:

  1. убедиться, что у вас стоит python3.6 или выше
  2. установить poetry:
     pip install poetry 
    
  3. установить все нужные пакеты из poetry.lock:
    1. по умолчанию poetry создает виртуальное окружение - это лучше для изоляции от вашей системы и рекомендуем именно такой способ установи пакетов:
           poetry  install  
      
    2. если хочется установить без виртуального окружения, то установить нужно с помощью следующей команды:
          poetry config virtualenvs.create false && poetry  install
      
  4. запустить обучение
    poetry run python3 train.py --train_data <path_to_train_data> --model_path <path_to_pickle_ml_model>
    
  5. запустить предикт
    poetry run python3 predict.py --model_path <path_to_pickled_model> --test_data <path_to_test_data> --output <path_to_output_csv_file>
    
  6. загрузить полученные результаты в систему

Вариант с requirements.txt

  1. убедиться, что у вас стоит python3.6 или выше
  2. установить зависимости:
    pip install -r requirements.txt 
    
  3. запустить обучение
    python3 train.py --train_data <path_to_train_data> --model_path <path_to_pickle_ml_model>
    
  4. запустить предикт
    python3 predict.py --model_path <path_to_pickled_model> --test_data <path_to_test_data> --output <path_to_output_csv_file>
    
  5. загрузить полученные результаты в систему

В репозитории есть своя реализация регуляризованного target encoding (SmoothedTargetEncoding). можно поэкспериментировать с ним

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages