This repository serves as a hands-on platform for exploring and implementing Machine Learning Operations (MLOps) concepts. It aims to provide a comprehensive environment for learning, experimentation, and collaboration.
# š Morocco House Price Prediction
An end-to-end MLOps project that predicts housing prices in Morocco using a **ZenML + MLflow** training and deployment pipeline.
The project ingests a Moroccan real-estate dataset, runs full EDA, handles missing values and outliers, applies feature engineering, trains a Linear Regression model inside a scikit-learn pipeline, tracks experiments with MLflow, and finally deploys the model as a local prediction service.
---
## š Project Structure
```
.
āāā analysis/ # Exploratory Data Analysis
ā āāā EDA.ipynb # Main EDA notebook
ā āāā analyze_src/ # Reusable analysis strategy classes
ā āāā basic_data_inspection.py
ā āāā missing_values_analysis.py
ā āāā univariate_analysis.py
ā āāā bivariate_analysis.py
ā āāā multivariate_analysis.py
ā
āāā data/ # Raw data
ā āāā housing_data.zip
āāā extracted_data/ # Auto-extracted from the zip
ā āāā housing_data.csv
āāā cleaned_data/ # Cleaned dataset used by the pipeline
ā āāā cleaned_housing_data.csv
āāā figures/ # EDA plots (distributions, heatmaps, etc.)
ā
āāā src/ # Core ML logic (Strategy pattern based)
ā āāā ingest_data.py
ā āāā handle_missing_values.py
ā āāā feature_engineering.py
ā āāā outlier_detection.py
ā āāā data_splitter.py
ā āāā model_building.py
ā āāā model_evaluator.py
ā
āāā steps/ # ZenML pipeline steps (wrappers around src/)
ā āāā data_ingestion_step.py
ā āāā handle_missing_values_step.py
ā āāā feature_engineering_step.py
ā āāā outlier_detection_step.py
ā āāā data_splitter_step.py
ā āāā model_building_step.py
ā āāā model_evaluator_step.py
ā āāā dynamic_importer.py
ā āāā model_loader.py
ā āāā prediction_service_loader.py
ā āāā predictor.py
ā
āāā pipelines/ # ZenML pipeline definitions
ā āāā training_pipeline.py
ā āāā deployment_pipeline.py
ā
ā ā¦