A production-grade machine learning system for predicting house prices using MLflow and ZenML. This project implements various design patterns and best practices for building maintainable and scalable ML pipelines.
- 🏗️ End-to-end ML pipeline implementation
- 📊 Comprehensive data analysis tools
- 🔍 Advanced feature engineering
- 🤖 Model training and evaluation
- 📈 MLflow experiment tracking
- 🚀 Model deployment with MLflow
- ♻️ Continuous deployment pipeline
- 🔄 Real-time inference capabilities
The project follows a modular architecture with clear separation of concerns:
- Data Analysis: Includes univariate, bivariate, and multivariate analysis tools
- Feature Engineering: Implements various transformation strategies
- Model Pipeline: Handles training, evaluation, and deployment
- Deployment: Continuous deployment with MLflow integration
- Python 3.8+
- MLflow
- ZenML
- Required Python packages (see requirements.txt)
- Clone the repository:
git clone https://github.com/yourusername/properchy.git
cd properchy- Create and activate a virtual environment:
python -m venv env
source env/bin/activate # On Windows: env\Scripts\activate- Install dependencies:
pip install -r requirements.txtTo run the training pipeline:
python run_pipeline.pyTo deploy the model:
python run_deployment.pyTo stop the deployment service:
python run_deployment.py --stop-serviceUse the sample prediction script:
python sample_predict.pyproperchy/
├── analysis/
│ └── analysis_src/ # Analysis tools
├── pipelines/ # ML pipeline definitions
├── src/ # Core source code
├── steps/ # Pipeline steps
├── data/ # Data directory
├── requirements.txt # Project dependencies
└── README.md # Project documentation
- Basic Data Inspection
- Univariate Analysis
- Bivariate Analysis
- Multivariate Analysis
- Missing Values Analysis
- Log Transformation
- Standard Scaling
- Min-Max Scaling
- One-Hot Encoding
- Data Ingestion
- Missing Value Handling
- Feature Engineering
- Outlier Detection
- Model Training
- Model Evaluation
- Model Deployment
The project uses configuration files for various settings:
.zen/config.yaml: ZenML configurationconfig.yaml: Model and pipeline configuration
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- MLflow for experiment tracking and model deployment
- ZenML for pipeline management
- Scikit-learn for machine learning implementations