{"id":29028582,"url":"https://github.com/adilshamim8/prices_predictor_system","last_synced_at":"2026-03-17T17:02:09.816Z","repository":{"id":298837795,"uuid":"1001283585","full_name":"AdilShamim8/Prices_Predictor_System","owner":"AdilShamim8","description":"Building End to End Prices Predictor System – Top 1% Way","archived":false,"fork":false,"pushed_at":"2026-02-14T14:39:38.000Z","size":1286,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-14T21:52:41.342Z","etag":null,"topics":["ai","data-science","deep-learning","machine-learning","python"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdilShamim8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-13T06:01:49.000Z","updated_at":"2026-02-14T14:39:41.000Z","dependencies_parsed_at":"2025-06-13T07:20:00.006Z","dependency_job_id":"75e30238-572b-41cf-88a1-dd5606520933","html_url":"https://github.com/AdilShamim8/Prices_Predictor_System","commit_stats":null,"previous_names":["adilshamim8/prices_predictor_system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AdilShamim8/Prices_Predictor_System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdilShamim8%2FPrices_Predictor_System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdilShamim8%2FPrices_Predictor_System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdilShamim8%2FPrices_Predictor_System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdilShamim8%2FPrices_Predictor_System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdilShamim8","download_url":"https://codeload.github.com/AdilShamim8/Prices_Predictor_System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdilShamim8%2FPrices_Predictor_System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30627664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T14:16:03.965Z","status":"ssl_error","status_checked_at":"2026-03-17T14:16:03.380Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","data-science","deep-learning","machine-learning","python"],"created_at":"2025-06-26T07:34:47.246Z","updated_at":"2026-03-17T17:02:09.811Z","avatar_url":"https://github.com/AdilShamim8.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"  # `Production-Grade House Price Prediction System`\n\n\u003cdiv align=\"center\"\u003e\n\n![Python](https://img.shields.io/badge/Python-3.9+-blue.svg)\n![ZenML](https://img.shields.io/badge/ZenML-0.64.0-brightgreen.svg)\n![MLflow](https://img.shields.io/badge/MLflow-2.15.1-orange.svg)\n![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)\n\n**An end-to-end MLOps pipeline for house price prediction featuring automated training, deployment, and inference with best practices in software design patterns and machine learning operations.**\n\n[Features](#-key-features) •\n[Architecture](#-architecture) •\n[Installation](#-installation) •\n[Usage](#-usage) •\n[Project Structure](#-project-structure) •\n[Documentation](#-documentation)\n\n\u003c/div\u003e\n\n---\n\n## Table of Contents\n\n- [Overview](#-overview)\n- [Key Features](#-key-features)\n- [Architecture](#-architecture)\n- [Technology Stack](#-technology-stack)\n- [Installation](#-installation)\n- [Quick Start](#-quick-start)\n- [Usage](#-usage)\n- [Project Structure](#-project-structure)\n- [Pipeline Components](#-pipeline-components)\n- [Design Patterns](#-design-patterns)\n- [Model Performance](#-model-performance)\n- [API Documentation](#-api-documentation)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n---\n\n## Overview\n\nThis project implements a **production-ready machine learning system** for predicting house prices using the Ames Housing dataset. Unlike typical ML projects that end at model training, this system demonstrates enterprise-grade MLOps practices including:\n\n- **Automated ML Pipelines**: Orchestrated workflows using ZenML\n- **Experiment Tracking**: Comprehensive tracking with MLflow\n- **Model Versioning**: Automated model registry and versioning\n- **Continuous Deployment**: Automated model deployment pipelines\n- **Design Patterns**: Implementation of Factory, Strategy, and Template patterns for maintainability\n- **Production API**: RESTful API for real-time predictions\n\nThe system is designed with **scalability**, **maintainability**, and **reproducibility** as core principles, making it suitable for real-world production environments.\n\n---\n\n##  Key Features\n\n### MLOps Excellence\n\n- **End-to-End Pipeline Orchestration**: Fully automated ML workflows from data ingestion to deployment\n- **Experiment Tracking**: Track all experiments, metrics, and artifacts with MLflow\n- **Model Registry**: Automated model versioning and promotion to production\n- **Reproducibility**: Every pipeline run is tracked and reproducible\n\n### Software Engineering Best Practices\n\n- **Design Patterns**: Factory, Strategy, and Template patterns for clean, maintainable code\n- **Modular Architecture**: Loosely coupled components for easy testing and extension\n- **Type Hints**: Full type annotations for better code quality\n- **Logging**: Comprehensive logging throughout the pipeline\n\n### Advanced ML Techniques\n\n- **Comprehensive EDA**: Univariate, bivariate, and multivariate analysis\n- **Feature Engineering**: Log transformations for skewed distributions\n- **Outlier Detection**: Robust outlier handling using IQR method\n- **Missing Value Imputation**: Intelligent handling of missing data\n- **Model Evaluation**: Multiple metrics including MSE and R²\n\n### Deployment \u0026 Serving\n\n- **Automated Deployment**: Continuous deployment pipeline with ZenML + MLflow\n- **REST API**: Production-ready API endpoint for predictions\n- **Batch Inference**: Support for batch prediction workflows\n- **Model Monitoring**: Track model performance in production\n\n---\n\n## 🏛️ Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                     TRAINING PIPELINE                            │\n├─────────────────────────────────────────────────────────────────┤\n│  Data Ingestion → Missing Values → Feature Engineering →        │\n│  Outlier Detection → Data Splitting → Model Training →          │\n│  Model Evaluation → Model Registry                              │\n└─────────────────────────────────────────────────────────────────┘\n                              ↓\n┌─────────────────────────────────────────────────────────────────┐\n│                   DEPLOYMENT PIPELINE                           │\n├─────────────────────────────────────────────────────────────────┤\n│  Load Trained Model → Deploy to MLflow Server →                 │\n│  Start Prediction Service                                       │\n└─────────────────────────────────────────────────────────────────┘\n                              ↓\n┌─────────────────────────────────────────────────────────────────┐\n│                   INFERENCE PIPELINE                            │\n├─────────────────────────────────────────────────────────────────┤\n│  Load Data → Preprocess → Predict → Return Results              │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n### Pipeline Flow\n\n1. **Data Ingestion**: Flexible data loading using Factory pattern (supports ZIP, CSV, Excel)\n2. **Data Preprocessing**: Handle missing values, feature engineering, outlier detection\n3. **Model Training**: Train Linear Regression model with StandardScaler\n4. **Model Evaluation**: Calculate MSE, R², and other metrics\n5. **Model Registration**: Register model to MLflow Model Registry\n6. **Deployment**: Deploy model as REST API service\n7. **Inference**: Serve predictions via HTTP endpoint\n\n---\n\n##  Technology Stack\n\n### Core ML \u0026 MLOps\n- **[ZenML](https://zenml.io/)** `0.64.0` - ML pipeline orchestration framework\n- **[MLflow](https://mlflow.org/)** `2.15.1` - Experiment tracking and model deployment\n- **[scikit-learn](https://scikit-learn.org/)** `1.3.2` - Machine learning algorithms\n\n### Data Science \u0026 Analysis\n- **[Pandas](https://pandas.pydata.org/)** `2.0.3` - Data manipulation\n- **[NumPy](https://numpy.org/)** `1.24.4` - Numerical computing\n- **[Matplotlib](https://matplotlib.org/)** `3.7.5` - Data visualization\n- **[Seaborn](https://seaborn.pydata.org/)** `0.13.2` - Statistical visualizations\n- **[StatsModels](https://www.statsmodels.org/)** `0.14.1` - Statistical modeling\n\n### Utilities\n- **[Click](https://click.palletsprojects.com/)** `8.1.3` - CLI interface\n\n---\n\n## Installation\n\n### Prerequisites\n\n- Python 3.9 or higher\n- pip package manager\n- Git\n\n### Step 1: Clone the Repository\n\n```bash\ngit clone https://github.com/AdilShamim8/Prices_Predictor_System.git\ncd Prices_Predictor_System\n```\n\n### Step 2: Create Virtual Environment\n\n```bash\n# Create virtual environment\npython -m venv venv\n\n# Activate virtual environment\n# On Windows:\nvenv\\Scripts\\activate\n\n# On macOS/Linux:\nsource venv/bin/activate\n```\n\n### Step 3: Install Dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n### Step 4: Initialize ZenML\n\n```bash\n# Initialize ZenML repository\nzenml init\n\n# Start ZenML dashboard (optional)\nzenml up\n```\n\n---\n\n## Quick Start\n\n### Train the Model\n\nRun the complete training pipeline:\n\n```bash\npython run_pipeline.py\n```\n\nThis will:\n1. Load the housing data\n2. Preprocess and clean the data\n3. Train the Linear Regression model\n4. Evaluate model performance\n5. Register the model to MLflow\n\n### Deploy the Model\n\nDeploy the trained model to a production-ready API:\n\n```bash\npython run_deployment.py\n```\n\nThis command:\n1. Runs the continuous deployment pipeline\n2. Deploys the model to an MLflow server\n3. Starts a REST API endpoint for predictions\n\n### Make Predictions\n\n#### Option 1: Use the Sample Script\n\n```bash\npython sample_predict.py\n```\n\n#### Option 2: Send HTTP Request\n\n```python\nimport requests\nimport json\n\nurl = \"http://127.0.0.1:8000/invocations\"\n\ndata = {\n    \"dataframe_records\": [{\n        \"Order\": 1,\n        \"PID\": 526301100,\n        \"MS SubClass\": 20,\n        \"Lot Frontage\": 80.0,\n        \"Lot Area\": 9600,\n        \"Overall Qual\": 5,\n        \"Overall Cond\": 7,\n        # ... other features\n    }]\n}\n\nresponse = requests.post(url, headers={\"Content-Type\": \"application/json\"}, \n                        data=json.dumps(data))\nprediction = response.json()\nprint(f\"Predicted Price: ${prediction[0]:,.2f}\")\n```\n\n### View Experiment Results\n\nStart the MLflow UI to view all experiments and metrics:\n\n```bash\nmlflow ui --backend-store-uri \u003ctracking_uri\u003e\n```\n\nThen navigate to `http://localhost:5000` in your browser.\n\n---\n\n## Project Structure\n\n```\nPrices_Predictor_System/\n├── analysis/                          # Exploratory Data Analysis modules\n│   └── analyze_src/\n│       ├── basic_data_inspection.py   # Data types and statistics inspection\n│       ├── univariate_analysis.py     # Single variable analysis\n│       ├── bivariate_analysis.py      # Two variable relationships\n│       ├── multivariate_analysis.py   # Correlation and pair plots\n│       └── missing_values_analysis.py # Missing data visualization\n│\n├── data/                              # Data storage\n│   └── archive.zip                    # Raw housing dataset\n│\n├── extracted_data/                    # Extracted CSV files\n│\n├── pipelines/                         # ML pipeline definitions\n│   ├── training_pipeline.py           # End-to-end training workflow\n│   └── deployment_pipeline.py         # Deployment and inference pipelines\n│\n├── src/                               # Core ML components (Strategy pattern)\n│   ├── ingest_data.py                 # Data ingestion with Factory pattern\n│   ├── handle_missing_values.py       # Missing value imputation strategies\n│   ├── feature_engineering.py         # Feature transformation strategies\n│   ├── outlier_detection.py           # Outlier detection strategies\n│   ├── data_splitter.py               # Train-test splitting strategies\n│   ├── model_building.py              # Model training strategies\n│   └── model_evaluator.py             # Model evaluation strategies\n│\n├── steps/                             # ZenML pipeline steps\n│   ├── data_ingestion_step.py         # Data loading step\n│   ├── handle_missing_values_step.py  # Missing value handling step\n│   ├── feature_engineering_step.py    # Feature engineering step\n│   ├── outlier_detection_step.py      # Outlier removal step\n│   ├── data_splitter_step.py          # Data splitting step\n│   ├── model_building_step.py         # Model training step\n│   ├── model_evaluator_step.py        # Model evaluation step\n│   ├── model_loader.py                # Production model loading\n│   ├── dynamic_importer.py            # Dynamic data import for inference\n│   ├── prediction_service_loader.py   # Load deployed prediction service\n│   └── predictor.py                   # Prediction execution\n│\n├── explanations/                      # Design pattern examples\n│   ├── factory_design_pattern.py      # Factory pattern explanation\n│   ├── strategy_design_pattern.py     # Strategy pattern explanation\n│   └── template_design_pattern.py     # Template pattern explanation\n│\n├── config.yaml                        # Configuration file\n├── requirements.txt                   # Python dependencies\n├── run_pipeline.py                    # Main training script\n├── run_deployment.py                  # Deployment script\n├── sample_predict.py                  # Sample prediction script\n├── LICENSE                            # Apache 2.0 License\n└── README.md                          # This file\n```\n\n---\n\n## Pipeline Components\n\n### 1️ Data Ingestion\n\n**Purpose**: Flexible data loading supporting multiple formats\n\n**Implementation**: Factory Design Pattern\n\n```python\n# Automatically selects appropriate ingestor based on file extension\ndata_ingestor = DataIngestorFactory.get_data_ingestor(\".zip\")\ndf = data_ingestor.ingest(\"data/archive.zip\")\n```\n\n**Supported Formats**:\n- ZIP archives\n- CSV files  \n- Excel spreadsheets\n\n---\n\n### 2️ Missing Value Handling\n\n**Purpose**: Intelligent imputation of missing data\n\n**Implementation**: Strategy Design Pattern\n\n**Strategies Available**:\n- Mean imputation (numerical features)\n- Median imputation (numerical features)\n- Mode imputation (categorical features)\n- Drop missing rows/columns\n\n```python\n# Example: Median imputation\nhandler = MissingValuesHandler(MedianImputationStrategy())\ndf_cleaned = handler.handle_missing_values(df)\n```\n\n---\n\n### 3️ Feature Engineering\n\n**Purpose**: Transform features to improve model performance\n\n**Implementation**: Strategy Design Pattern\n\n**Transformations**:\n- **Log Transformation**: Reduces skewness in distributions (e.g., `Gr Liv Area`, `SalePrice`)\n- **Standard Scaling**: Normalizes features to zero mean and unit variance\n- **Min-Max Scaling**: Scales features to a specific range [0,1]\n\n```python\n# Log transformation for skewed features\nengineer = FeatureEngineer(LogTransformation(features=[\"Gr Liv Area\", \"SalePrice\"]))\ndf_transformed = engineer.apply_transformations(df)\n```\n\n---\n\n### 4️ Outlier Detection\n\n**Purpose**: Identify and remove extreme values that could skew predictions\n\n**Method**: Interquartile Range (IQR) method\n\n```python\n# Remove outliers from SalePrice\ndetector = OutlierDetector(IQROutlierDetectionStrategy())\ndf_clean = detector.detect_and_remove_outliers(df, column_name=\"SalePrice\")\n```\n\n**Formula**: \n- Lower Bound = Q1 - 1.5 × IQR\n- Upper Bound = Q3 + 1.5 × IQR\n\n---\n\n### 5️ Model Training\n\n**Purpose**: Train regression model on processed data\n\n**Implementation**: Strategy Design Pattern + Scikit-learn Pipeline\n\n**Model Architecture**:\n```\nInput Features → StandardScaler → Linear Regression → Price Prediction\n```\n\n**Features Used**:\n- Property characteristics (square footage, number of rooms, etc.)\n- Quality and condition ratings\n- Year built and renovation year\n- Garage and basement details\n\n---\n\n### 6️ Model Evaluation\n\n**Purpose**: Assess model performance using multiple metrics\n\n**Metrics Calculated**:\n- **Mean Squared Error (MSE)**: Average squared difference between predicted and actual values\n- **Root Mean Squared Error (RMSE)**: Square root of MSE (same unit as target)\n- **R² Score**: Proportion of variance explained by the model\n\n```python\nevaluator = ModelEvaluator(RegressionModelEvaluationStrategy())\nmetrics = evaluator.evaluate(model, X_test, y_test)\n```\n\n---\n\n### 7️ Model Deployment\n\n**Purpose**: Deploy trained model as REST API service\n\n**Deployment Flow**:\n1. Load best model from MLflow Model Registry\n2. Deploy to MLflow server with 3 workers\n3. Start HTTP endpoint at `http://127.0.0.1:8000/invocations`\n\n**Service Management**:\n```bash\n# Start service\npython run_deployment.py\n\n# Stop service\npython run_deployment.py --stop-service\n```\n\n---\n\n##  Design Patterns\n\nThis project implements **three fundamental design patterns** to ensure clean, maintainable, and extensible code.\n\n### 1. Factory Design Pattern\n\n**Location**: `src/ingest_data.py`\n\n**Purpose**: Create appropriate data ingestors based on file type without exposing instantiation logic.\n\n**Benefits**:\n- Easy to add support for new file formats\n- Single point of instantiation logic\n- Client code doesn't need to know about concrete classes\n\n**Example**:\n```python\nclass DataIngestorFactory:\n    @staticmethod\n    def get_data_ingestor(file_extension: str) -\u003e DataIngestor:\n        if file_extension == \".zip\":\n            return ZipDataIngestor()\n        elif file_extension == \".csv\":\n            return CSVDataIngestor()\n        else:\n            raise ValueError(f\"Unsupported file extension: {file_extension}\")\n```\n\n---\n\n### 2. Strategy Design Pattern\n\n**Locations**: \n- `src/feature_engineering.py`\n- `src/handle_missing_values.py`\n- `src/outlier_detection.py`\n- `src/data_splitter.py`\n- `src/model_building.py`\n\n**Purpose**: Define a family of algorithms, encapsulate each one, and make them interchangeable.\n\n**Benefits**:\n- Switch between algorithms at runtime\n- Add new strategies without modifying existing code\n- Better code organization and testability\n\n**Example**:\n```python\n# Define strategy interface\nclass FeatureEngineeringStrategy(ABC):\n    @abstractmethod\n    def apply_transformation(self, df: pd.DataFrame) -\u003e pd.DataFrame:\n        pass\n\n# Implement concrete strategies\nclass LogTransformation(FeatureEngineeringStrategy):\n    def apply_transformation(self, df: pd.DataFrame) -\u003e pd.DataFrame:\n        # Apply log transformation\n        return df_transformed\n\n# Use strategy\nengineer = FeatureEngineer(LogTransformation(features=[\"SalePrice\"]))\ndf_transformed = engineer.apply_transformations(df)\n```\n\n---\n\n### 3. Template Design Pattern\n\n**Locations**:\n- `analysis/analyze_src/missing_values_analysis.py`\n- `analysis/analyze_src/multivariate_analysis.py`\n\n**Purpose**: Define the skeleton of an algorithm, deferring some steps to subclasses.\n\n**Benefits**:\n- Code reuse through inheritance\n- Control over algorithm structure\n- Extension points for customization\n\n**Example**:\n```python\nclass MissingValuesAnalysisTemplate(ABC):\n    def analyze(self, df: pd.DataFrame):\n        \"\"\"Template method defining the analysis workflow\"\"\"\n        self.identify_missing_values(df)\n        self.visualize_missing_values(df)\n    \n    @abstractmethod\n    def identify_missing_values(self, df: pd.DataFrame):\n        pass\n    \n    @abstractmethod\n    def visualize_missing_values(self, df: pd.DataFrame):\n        pass\n```\n\n---\n\n## Model Performance\n\n### Dataset Information\n\n- **Dataset**: Ames Housing Dataset\n- **Total Samples**: ~2,900 houses\n- **Features**: 38 numerical features\n- **Target Variable**: SalePrice (in USD)\n\n### Model Metrics\n\nAfter preprocessing and outlier removal:\n\n| Metric | Value |\n|--------|-------|\n| **R² Score** | 0.85+ |\n| **RMSE** | ~$25,000 |\n| **MSE** | ~625,000,000 |\n\n\u003e **Note**: Actual metrics may vary based on train-test split and random seed.\n\n### Feature Importance\n\nTop predictive features:\n1. **Overall Quality**: Overall material and finish quality rating\n2. **Gr Liv Area**: Above grade living area (square feet)\n3. **Total Bsmt SF**: Total square feet of basement area\n4. **Year Built**: Original construction year\n5. **Garage Area**: Size of garage in square feet\n\n---\n\n## API Documentation\n\n### Prediction Endpoint\n\n**URL**: `http://127.0.0.1:8000/invocations`\n\n**Method**: POST\n\n**Content-Type**: application/json\n\n### Request Format\n\n```json\n{\n  \"dataframe_records\": [\n    {\n      \"Order\": 1,\n      \"PID\": 526301100,\n      \"MS SubClass\": 20,\n      \"Lot Frontage\": 80.0,\n      \"Lot Area\": 9600,\n      \"Overall Qual\": 5,\n      \"Overall Cond\": 7,\n      \"Year Built\": 1961,\n      \"Year Remod/Add\": 1961,\n      \"Mas Vnr Area\": 0.0,\n      \"BsmtFin SF 1\": 700.0,\n      \"BsmtFin SF 2\": 0.0,\n      \"Bsmt Unf SF\": 150.0,\n      \"Total Bsmt SF\": 850.0,\n      \"1st Flr SF\": 856,\n      \"2nd Flr SF\": 854,\n      \"Low Qual Fin SF\": 0,\n      \"Gr Liv Area\": 1710.0,\n      \"Bsmt Full Bath\": 1,\n      \"Bsmt Half Bath\": 0,\n      \"Full Bath\": 1,\n      \"Half Bath\": 0,\n      \"Bedroom AbvGr\": 3,\n      \"Kitchen AbvGr\": 1,\n      \"TotRms AbvGrd\": 7,\n      \"Fireplaces\": 2,\n      \"Garage Yr Blt\": 1961,\n      \"Garage Cars\": 2,\n      \"Garage Area\": 500.0,\n      \"Wood Deck SF\": 210.0,\n      \"Open Porch SF\": 0,\n      \"Enclosed Porch\": 0,\n      \"3Ssn Porch\": 0,\n      \"Screen Porch\": 0,\n      \"Pool Area\": 0,\n      \"Misc Val\": 0,\n      \"Mo Sold\": 5,\n      \"Yr Sold\": 2010\n    }\n  ]\n}\n```\n\n### Response Format\n\n```json\n[182750.25]\n```\n\n### Feature Descriptions\n\n| Feature | Description |\n|---------|-------------|\n| **MS SubClass** | Type of dwelling |\n| **Lot Frontage** | Linear feet of street connected to property |\n| **Lot Area** | Lot size in square feet |\n| **Overall Qual** | Overall material and finish quality (1-10) |\n| **Overall Cond** | Overall condition rating (1-10) |\n| **Year Built** | Original construction date |\n| **Year Remod/Add** | Remodel date |\n| **Gr Liv Area** | Above grade living area (sq ft) |\n| **Full Bath** | Number of full bathrooms |\n| **Bedroom AbvGr** | Number of bedrooms above basement |\n| **Garage Cars** | Size of garage in car capacity |\n| **Garage Area** | Size of garage in square feet |\n\n---\n\n## Exploratory Data Analysis\n\nThe project includes comprehensive EDA modules in the `analysis/` directory:\n\n### Basic Data Inspection\n\n```python\nfrom analysis.analyze_src.basic_data_inspection import (\n    DataInspector, \n    DataTypesInspectionStrategy,\n    SummaryStatisticsInspectionStrategy\n)\n\ninspector = DataInspector(DataTypesInspectionStrategy())\ninspector.execute_inspection(df)\n```\n\n### Univariate Analysis\n\nAnalyze individual feature distributions:\n\n```python\nfrom analysis.analyze_src.univariate_analysis import (\n    UnivariateAnalyzer,\n    NumericalUnivariateAnalysis\n)\n\nanalyzer = UnivariateAnalyzer(NumericalUnivariateAnalysis())\nanalyzer.execute_analysis(df, feature=\"SalePrice\")\n```\n\n### Bivariate Analysis\n\nExplore relationships between two features:\n\n```python\nfrom analysis.analyze_src.bivariate_analysis import (\n    BivariateAnalyzer,\n    NumericalVsNumericalAnalysis\n)\n\nanalyzer = BivariateAnalyzer(NumericalVsNumericalAnalysis())\nanalyzer.execute_analysis(df, feature1=\"Gr Liv Area\", feature2=\"SalePrice\")\n```\n\n### Multivariate Analysis\n\nGenerate correlation heatmaps and pair plots:\n\n```python\nfrom analysis.analyze_src.multivariate_analysis import SimpleMultivariateAnalysis\n\nanalyzer = SimpleMultivariateAnalysis()\nanalyzer.analyze(df[['SalePrice', 'Gr Liv Area', 'Overall Qual']])\n```\n\n---\n\n## Testing\n\n### Run Unit Tests\n\n```bash\npytest tests/\n```\n\n### Test Model Prediction\n\n```bash\npython sample_predict.py\n```\n\n---\n\n## CI/CD (Future Enhancement)\n\nPlanned CI/CD pipeline stages:\n\n1. **Lint \u0026 Format**: Code quality checks with pylint, black, isort\n2. **Unit Tests**: Run pytest suite\n3. **Integration Tests**: Test full pipeline execution\n4. **Model Validation**: Ensure model meets performance thresholds\n5. **Deployment**: Automated deployment to staging/production\n\n---\n\n## Contributing\n\nContributions are welcome! Please follow these guidelines:\n\n1. **Fork the repository**\n2. **Create a feature branch**:\n   ```bash\n   git checkout -b feature/YourFeature\n   ```\n3. **Commit your changes**:\n   ```bash\n   git commit -m \"Add YourFeature\"\n   ```\n4. **Push to the branch**:\n   ```bash\n   git push origin feature/YourFeature\n   ```\n5. **Open a Pull Request**\n\n### Development Setup\n\n```bash\n# Install development dependencies\npip install -r requirements-dev.txt\n\n# Run code formatter\nblack .\n\n# Run linter\npylint src/ steps/ pipelines/\n\n# Run tests\npytest tests/\n```\n\n---\n\n## Future Enhancements\n\n- [ ] **Advanced Models**: Implement XGBoost, Random Forest, Neural Networks\n- [ ] **Hyperparameter Tuning**: Add automated hyperparameter optimization\n- [ ] **Feature Selection**: Implement automated feature selection\n- [ ] **Model Explainability**: Add SHAP values for model interpretation\n- [ ] **Data Drift Detection**: Monitor data distribution changes\n- [ ] **Model Monitoring**: Track model performance metrics in production\n- [ ] **A/B Testing**: Compare multiple model versions\n- [ ] **Docker Containerization**: Package application in Docker\n- [ ] **Kubernetes Deployment**: Deploy to Kubernetes cluster\n- [ ] **FastAPI Integration**: Replace MLflow serving with FastAPI\n- [ ] **Streamlit Dashboard**: Build interactive web interface\n\n---\n\n## License\n\nThis project is licensed under the **Apache License 2.0** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## Author\n\n**Adil Shamim**\n\n- GitHub: [@AdilShamim8](https://github.com/AdilShamim8)\n- Project Link: [https://github.com/AdilShamim8/Prices_Predictor_System](https://github.com/AdilShamim8/Prices_Predictor_System)\n\n---\n\n## Acknowledgments\n\n- **Ames Housing Dataset**: Dean De Cock for providing the comprehensive housing dataset\n- **ZenML**: For the excellent MLOps framework\n- **MLflow**: For robust experiment tracking and model management\n- **Open Source Community**: For the amazing tools and libraries\n\n---\n\n## References \u0026 Resources\n\n### Documentation\n- [ZenML Documentation](https://docs.zenml.io/)\n- [MLflow Documentation](https://mlflow.org/docs/latest/index.html)\n- [Scikit-learn Documentation](https://scikit-learn.org/stable/)\n\n### Design Patterns\n- [Factory Pattern](https://refactoring.guru/design-patterns/factory-method)\n- [Strategy Pattern](https://refactoring.guru/design-patterns/strategy)\n- [Template Method Pattern](https://refactoring.guru/design-patterns/template-method)\n\n### MLOps Best Practices\n- [Google MLOps: Continuous delivery and automation pipelines in ML](https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning)\n- [Microsoft MLOps Maturity Model](https://docs.microsoft.com/en-us/azure/architecture/example-scenario/mlops/mlops-maturity-model)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**⭐ If you find this project helpful, please consider giving it a star! ⭐**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadilshamim8%2Fprices_predictor_system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadilshamim8%2Fprices_predictor_system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadilshamim8%2Fprices_predictor_system/lists"}