Skip to content

CringeDrivenDevelopment/prodhack-ml

Repository files navigation

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 воспроизводит обучение и сохраняет метрики/модель.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors