No description
- Jupyter Notebook 94.2%
- Python 4.9%
- Dockerfile 0.9%
| models | ||
| .dockerignore | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| api.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| EDA.ipynb | ||
| model.py | ||
| README.md | ||
| requirements.txt | ||
| train.py | ||
Project Overview
- Описание: Небольшой пайплайн для предсказания цены за м² коммерческой недвижимости на основе координат и площади. Содержит EDA, тренировочный скрипт
train.py, FastAPI-приложениеapi.pyи артефакты вmodels/.
Перед работой проверьте загружен ли датасет cian_data.jsonlines в корне проекта.
Requirements
- Python: 3.11 (рекомендуется)
- Dependencies: перечислены в
requirements.txt(уже добавлены версии).
Quick Start (local)
- Создать и активировать виртуальное окружение:
python -m venv .venv
source .venv/bin/activate
- Установить зависимости:
pip install -r requirements.txt
- Обучить модель и сохранить артефакты:
python train.py
- Запустить API локально:
uvicorn api:app --host 0.0.0.0 --port 8000
API Usage
- Эндпоинт для предсказаний:
POST /predict - Формат запроса: список объектов с полями
latitude,longitude,total_area. - Пример
curl:
curl -X POST "http://127.0.0.1:8000/predict" \
-H "Content-Type: application/json" \
-d '[{"latitude":55.75, "longitude":37.61, "total_area":45.0}]'
- Ответ: JSON вида
{ "predictions": [<value>, ...] }.
Models / Artifacts
- Основные артефакты сохраняются в
models/:models/model.cbm— CatBoost модельmodels/kmeans.pkl— кластеризатор координатmodels/meta.json— список/порядок признаков
- Обновление модели: запустите
python train.py— это перезапишет файлы вmodels/.
Docker (quick)
- Собрать образ и запустить контейнер:
docker build -t test_ml_image:latest .
docker run --rm -p 8000:8000 test_ml_image:latest
- Или через
docker-compose(задатьIMAGE_NAME):
IMAGE_NAME=test_ml_image:latest docker-compose up --build
Reproducibility & Notes
- В проекте есть
requirements.txtиtrain.py— запускpython train.pyвоспроизводит обучение и сохраняет метрики/модель.