Проект по улучшению базовой ML-модели для прогнозирования стоимости недвижимости: полный pipeline (feature engineering, отбор признаков, оптимизация гиперпараметров), интеграция с MLflow.
Цели:
- Улучшить метрики качества относительно baseline
- Воспроизводимый ML pipeline
- Трекинг экспериментов и версий моделей в MLflow
Стек: Python 3.10+, Scikit-learn, CatBoost, MLflow, MLXTEND, Optuna, AutoFeat, Pandas, Matplotlib, Seaborn.
git clone https://github.com/DataClasse/baseline-improvement.git
cd baseline-improvement
pip install -r requirements.txtСоздайте .env в корне проекта:
MLFLOW_TRACKING_HOST=127.0.0.1
MLFLOW_TRACKING_PORT=5000
MLFLOW_S3_ENDPOINT_URL=<ваш-s3-endpoint>
AWS_ACCESS_KEY_ID=<ваш-access-key>
AWS_SECRET_ACCESS_KEY=<ваш-secret-key>
Запуск MLflow и ноутбука:
chmod +x mlflow_server/rms.sh
./mlflow_server/rms.sh
jupyter notebook model_improvement/project_sprint_2.ipynbПять этапов (каждый логируется в MLflow):
- Разворачивание MLflow и регистрация базовой модели
- EDA (исследовательский анализ данных)
- Генерация признаков (RobustScaler, KBinsDiscretizer, PolynomialFeatures, AutoFeat)
- Отбор признаков (Forward/Backward Selection) и обучение новой версии
- Подбор гиперпараметров (HalvingRandomSearchCV, Optuna) и финальная модель
Эксперимент MLflow: baseline_model_improvement_REPP. Артефакты и S3 настраиваются через переменные окружения.
| Метрика | Baseline | Финальная модель |
|---|---|---|
| RMSE | 4 157 670 | 4 678 509 |
| R2 | 0.880 | 0.851 |
Выводы и возможные улучшения описаны в заключении ноутбука.
Дмитрий Щербаков
- Код: github.com/DataClasse/baseline-improvement
- Email: aiopendata@gmail.com
- GitHub: @DataClasse
Если проект был полезен, поставьте звезду.