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

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


# Установка

Пакет опубликован на [PyPI](https://pypi.org/project/RealEstate-package/) и устанавливается командой:

```
pip install RealEstate-package
```


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

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


## Обучение

В конфиге с параметрам необходимо прописать путь к датасету для обучения - указанный по умолчанию путь работать не будет, так как датасет невозможно загрузить из-за большого размера. Также в конфиге можно указать место для сохранения весов модели (имя автоматическое), какие переменные из датасета не учитывать при обучении и др. Обучение запускается из корневой директории проекта командой:

```
tox -e train
```


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

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

```
tox -e predict
```


# Датасет

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