Skip to main content

МЛ-модель, предсказывающая стоимость недвижимости по её параметрам.

Project description

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

  • real_estate_model/ содержит весь основной код пакета: train.py, predict.py, config.py (загрузка параметров обучения и предсказания из файла config.yml). Здесь же находится директория trained_models/, куда при обучении будут попадать веса новых моделей, и в которой уже есть одна обученная модель.
  • requirements/ содержит все необходимые зависимости для использования (requirements.txt) и тестирования (test_requirements.txt) пакета.
  • tests/ содержит код тестов, запускаемый при помощи pytest.
  • webapp/ содержит код веб-интерфейса.

predict.py имеет функционал для загрузки состояния модели из конфига (load_model), предсказания с помощью предзагруженной модели (predict_raw) и предсказания моделью, автоматически загружаемой из файла, прописанном в конфиге (predict).

config.py имеет функции fetch_config_from_yaml для полного считывания параметров конфига и set_config_field для изменения значения конкретного параметра (не поддерживает списки).

Установка

Пакет опубликован на PyPI и устанавливается командой:

pip install RealEstate-package

Использование

Код запускается и тестируется при помощи tox. Параметры обучения и предсказания находятся в real_estate_model/config.yml.

Обучение

Перед началом обучения:

  • НЕОБХОДИМО скачать датасет и прописать абсолютный путь к csv-файлу в конфиге в поле dataset (можно сделать это программно с помощью функции config.set_config_field);
  • ОПЦИОНАЛЬНО настроить другие параметры обучения:
    • trained_model_path: относительный путь сохранения обученных моделей, по умолчанию ./trained_models/ (имя генерируется с помощью timestamp);
    • variables_to_drop: список переменных, не учитываемых при обучении (проект рассчитан на предсказание стоимости недвижимости, поэтому она игнорируется автоматически);
    • random_state;
    • test_size: доля тестовой выборки для функции train_test_split;
    • num_boost_round: внутренний параметр модели, отвечающий за количество раундов (итераций);
    • early_stopping_rounds: внутренний параметр модели, отвечающий за раннюю остановку обучения, если качество не улучшалось в течение указанного количества раундов;
    • verbose_eval: внутренний параметр модели, отвечающий за частоту вывода информации об обучении (в количестве раундов);
    • metric: внутренний параметр модели функции оценки качества, по умолчанию rmse, прочие метрики доступны по ссылке.

Обучение запускается из корневой директории проекта командой:

tox -e train

Предсказание

Для предсказания в конфиге указывается путь к весам обученной модели (по умолчанию trained_models/lgb_model.txt) в поле predict_model и список переменных, на которых она обучалась (predictors).

tox -e predict

Веб-приложение

Основной функционал доступен в веб-приложении, которое запускается командой:

tox -e webapp

Предоставляется возможность:

  • предсказать значение стоимости недвижимости по некоторым параметрам во вкладке /predict;
  • обучить новую модель во вкладке /train (параметры обучения будут взяты из конфига). По окончании обучения будет выведена информация об абсолютном и относительном путях сохранённой модели и о её качестве на train- и test-выборках (R2-score).
  • изменить модель для предсказания в /change_model, передав относительный путь к файлу с весами на вход.

Датасет

Для обучения существующей модели использовался датасет: https://www.kaggle.com/datasets/mrdaniilak/russia-real-estate-20182021

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

RealEstate_package-1.5.0.tar.gz (4.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

RealEstate_package-1.5.0-py3-none-any.whl (4.9 MB view details)

Uploaded Python 3

File details

Details for the file RealEstate_package-1.5.0.tar.gz.

File metadata

  • Download URL: RealEstate_package-1.5.0.tar.gz
  • Upload date:
  • Size: 4.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for RealEstate_package-1.5.0.tar.gz
Algorithm Hash digest
SHA256 a04a1d72181a75b41d665939f87e601f6e741323ea5ea388a4f26c858e54c55c
MD5 88f4156e83f512c7fbf97e96c836c381
BLAKE2b-256 3db6a01feb28ed3defb3bb6dd90a169724b55334d58439d564146936ba13a773

See more details on using hashes here.

File details

Details for the file RealEstate_package-1.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for RealEstate_package-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9237afa4199339e7c9e2ee2cdbba46f07703219d54c9f47d79dd0d86122bdc38
MD5 ae1cb193f4beb8d20434c191d103d5c2
BLAKE2b-256 fc54eeb9b52e06af0f1ed00b37c1e8d833f060ee5f3650725fd3cd2e891a4dc6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page