https://github.com/arash-shahmansoori/price-prediction-mlops
End-to-end house price prediction ML-Ops project
https://github.com/arash-shahmansoori/price-prediction-mlops
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.4%) to scientific vocabulary
Repository
End-to-end house price prediction ML-Ops project
Basic Info
- Host: GitHub
- Owner: arash-shahmansoori
- Language: Jupyter Notebook
- Default Branch: main
- Size: 335 KB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
🏠 House Price Predictor – An MLOps Learning Project
Welcome to the House Price Predictor project! This is a real-world, end-to-end MLOps use case designed to help you master the art of building and operationalizing machine learning pipelines.
You'll start from raw data and move through data preprocessing, feature engineering, experimentation, model tracking with MLflow, and optionally using Jupyter for exploration – all while applying industry-grade tooling.
🚀 Want to master MLOps from scratch?
Check out the MLOps Bootcamp at School of DevOps to level up your skills.
📦 Project Structure
house-price-predictor/
├── configs/ # YAML-based configuration for models
├── data/ # Raw and processed datasets
├── deployment/
│ └── mlflow/ # Docker Compose setup for MLflow
├── models/ # Trained models and preprocessors
├── notebooks/ # Optional Jupyter notebooks for experimentation
├── src/
│ ├── data/ # Data cleaning and preprocessing scripts
│ ├── features/ # Feature engineering pipeline
│ ├── models/ # Model training and evaluation
├── requirements.txt # Python dependencies
└── README.md # You’re here!
🛠️ Setting up Learning/Development Environment
To begin, ensure the following tools are installed on your system:
- Python 3.11
- Git
- Visual Studio Code or your preferred editor
- UV – Python package and environment manager
- Docker Desktop or Podman Desktop
🚀 Preparing Your Environment
Fork this repo on GitHub.
Clone your forked copy:
bash
# Replace xxxxxx with your GitHub username or org
git clone https://github.com/xxxxxx/house-price-predictor.git
cd house-price-predictor
- Setup Python Virtual Environment using UV:
bash
uv venv --python python3.11
source .venv/bin/activate
- Install dependencies:
bash
uv pip install -r requirements.txt
📊 Setup MLflow for Experiment Tracking
To track experiments and model runs:
bash
cd deployment/mlflow
docker compose -f mlflow-docker-compose.yml up -d
docker compose ps
🐧 Using Podman? Use this instead:
bash
podman compose -f mlflow-docker-compose.yml up -d
podman compose ps
Access the MLflow UI at http://localhost:5555
📒 Using JupyterLab (Optional)
If you prefer an interactive experience, launch JupyterLab with:
```bash uv python -m jupyterlab
or
python -m jupyterlab ```
🔁 Model Workflow
🧹 Step 1: Data Processing
Clean and preprocess the raw housing dataset:
bash
uv run src/data/run_processing.py --input data/raw/house_data.csv --output data/processed/cleaned_house_data.csv
🧠 Step 2: Feature Engineering
Apply transformations and generate features:
bash
uv run src/features/engineer.py --input data/processed/cleaned_house_data.csv --output data/processed/featured_house_data.csv --preprocessor models/trained/preprocessor.pkl
📈 Step 3: Modeling & Experimentation
Train your model and log everything to MLflow:
bash
uv run src/models/train_model.py --config configs/model_config.yaml --data data/processed/featured_house_data.csv --models-dir models --mlflow-tracking-uri http://localhost:5555
Building FastAPI and Streamlit
The code for both the apps are available in src/api and streamlit_app already. To build and launch these apps
- Add a
Dockerfilein the root of the source code for building FastAPI - Add
streamlit_app/Dockerfileto package and build the Streamlit app - Add
docker-compose.yamlin the root path to launch both these apps. be sure to provideAPI_URL=http://fastapi:8000in the streamlit app's environment.
Once you have launched both the apps, you should be able to access streamlit web ui and make predictions.
You could also test predictions with FastAPI directly using
``` curl -X POST "http://localhost:8000/predict" \ -H "Content-Type: application/json" \ -d '{ "sqft": 1500, "bedrooms": 3, "bathrooms": 2, "location": "suburban", "year_built": 2000, "condition": fair }'
```
Be sure to replace http://localhost:8000/predict with actual endpoint based on where its running.
🧠 Learn More About MLOps
This project is part of the MLOps Bootcamp at School of DevOps, where you'll learn how to:
- Build and track ML pipelines
- Containerize and deploy models
- Automate training workflows using GitHub Actions or Argo Workflows
- Apply DevOps principles to Machine Learning systems
🤝 Contributing
We welcome contributions, issues, and suggestions to make this project even better. Feel free to fork, explore, and raise PRs!
Happy Learning!
— Team School of DevOps
Owner
- Login: arash-shahmansoori
- Kind: user
- Location: Ireland
- Repositories: 1
- Profile: https://github.com/arash-shahmansoori
GitHub Events
Total
- Push event: 8
- Create event: 2
Last Year
- Push event: 8
- Create event: 2
Dependencies
- actions/checkout v3 composite
- actions/setup-python v5 composite
- docker/build-push-action v5 composite
- docker/login-action v3 composite
- docker/setup-buildx-action v3 composite
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/setup-python v5 composite
- actions/upload-artifact v4 composite
- docker/build-push-action v5 composite
- docker/login-action v3 composite
- docker/metadata-action v5 composite
- docker/setup-buildx-action v3 composite
- geekyeggo/delete-artifact v4 composite
- actions/checkout v4 composite
- docker/build-push-action v5 composite
- docker/login-action v3 composite
- docker/setup-buildx-action v3 composite
- actions/cache v4 composite
- actions/checkout v4 composite
- aquasecurity/trivy-action master composite
- docker/build-push-action v5 composite
- docker/login-action v3 composite
- docker/metadata-action v5 composite
- docker/setup-buildx-action v3 composite
- github/codeql-action/upload-sarif v3 composite
- python 3.11-slim build
- python 3.9-slim build
- fastapi ==0.95.2
- ipykernel ==6.29.5
- joblib ==1.3.1
- matplotlib ==3.7.1
- mlflow ==2.3.1
- numpy ==1.24.3
- pandas ==1.5.3
- pytest ==7.3.1
- pyyaml ==6.0
- scikit-learn ==1.2.2
- seaborn ==0.12.2
- setuptools ==65.5.0
- uvicorn ==0.22.0
- xgboost ==1.7.5
- fastapi ==0.95.0
- joblib ==1.3.1
- numpy ==1.24.3
- pandas ==1.5.3
- pyyaml ==6.0
- scikit-learn ==1.2.2
- uvicorn ==0.22.0
- xgboost ==1.7.6
- requests >=2.28.0
- streamlit >=1.24.0