RentSense — прогноз “справедливой” аренды и поиск переоценённых/недооценённых объявлений.
Что делает проект:
- Загружает
./data/immo_data.csv - Делает краткий профиль + EDA и сохраняет картинки в
./artifacts/ - Обучает 2 модели: Ridge (baseline) + HistGBR (strong) с log1p-трансформацией таргета
- Считает метрики MAE/RMSE/MAPE/R², а также метрики по ценовым сегментам
- Строит permutation importance
- Помечает объявления как
overpriced/underpriced/okпо правилам (процент + евро) - Сохраняет артефакты: модель, таблицы, графики, примеры
- Положи датасет:
data/immo_data.csv
- Установи зависимости:
python -m venv .venv
# windows: .venv\Scripts\activate
# linux/mac: source .venv/bin/activate
pip install -e .
- Обучение и артефакты:
rentsense train --data data/immo_data.csv --artifacts artifacts --split random --fast
- Скоринг новых объявлений:
rentsense score --model artifacts/best_model.joblib --input data/immo_data.csv --out artifacts/scored.csv
streamlit run app/streamlit_app.py
uvicorn service.api:app --host 0.0.0.0 --port 8000
# /health
# /score
# /metrics (Prometheus)
docker compose up --build
После train в artifacts/ появятся:
metrics.csvmetrics_by_segment.csvmissing_top30.csveda_*.pngfeature_importance_top20.csv/pngexamples_overpriced_top10.csvexamples_underpriced_top10.csvpred_vs_true.pngbest_model.joblibrun_metadata.json