# mihirj2002/airquality_index_predictionmodel architecture

> Architecture diagram of the GitHub repository mihirj2002/airquality_index_predictionmodel, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mihirj2002/airquality_index_predictionmodel
- Repository: https://github.com/mihirj2002/airquality_index_predictionmodel
- Video tour (about a minute): https://gitdiagram.com/mihirj2002/airquality_index_predictionmodel/video

## Overview

This repository is an air-quality regression project that predicts Relative Humidity (RH) from sensor measurements. Its documented workflow runs from dataset ingestion through data understanding, outlier handling, feature preparation, model training, and evaluation. The sampled Python modules confirm Excel loading, winsorization, an RH feature/target split, train/test scaling, and K-nearest-neighbor regression with an R² score. The README documents broader analysis and model-comparison capabilities; their detailed implementation and wiring cannot be confirmed from the sampled source.

Main entry points: [`src/Data_Preprocessing.py`](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py) (Feature scaling), [`src/Model_building.py`](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Model_building.py) (KNN regressor), [`src/Data_Ingestion.py`](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Ingestion.py) (Data ingestion), [`experiment/model.ipynb`](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb) (Model comparison)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data analysis"]
  node_dataset["Air quality data<br/>[AirQualityUCI.xlsx]"]
  node_ingestion["Data ingestion<br/>[Data_Ingestion.py]"]
  node_eda["Exploratory analysis<br/>[model.ipynb]"]
  node_quality["Quality assessment<br/>[model.ipynb]"]
end

subgraph group_prep["Data preparation"]
  node_outliers["Outlier treatment"]
  node_features["Feature preparation"]
  node_split["Train test split"]
  node_scaling["Feature scaling"]
end

subgraph group_model["Modeling"]
  node_regression["Regression models<br/>[model.ipynb]"]
  node_knn["KNN regressor<br/>[Model_building.py]"]
end

subgraph group_eval["Evaluation"]
  node_comparison["Model comparison<br/>[model.ipynb]"]
  node_diagnostics["Prediction diagnostics<br/>[model.ipynb]"]
  node_score["R² score<br/>[Model_building.py]"]
end

node_analyst(("Analyst"))

node_analyst -->|"starts workflow"| node_ingestion
node_dataset -->|"reads"| node_ingestion
node_ingestion -->|"provides data"| node_eda
node_eda -->|"assesses"| node_quality
node_quality -->|"examines data"| node_outliers
node_outliers -->|"prepares data"| node_features
node_features -->|"separates RH"| node_split
node_split -->|"splits data"| node_scaling
node_scaling -->|"provides features"| node_regression
node_scaling -->|"provides arrays"| node_knn
node_knn -->|"computes R²"| node_score
node_regression -->|"compares models"| node_comparison
node_knn -->|"contributes score"| node_comparison
node_comparison -->|"analyzes predictions"| node_diagnostics

click node_dataset "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/data/AirQualityUCI.xlsx"
click node_ingestion "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Ingestion.py"
click node_eda "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb"
click node_quality "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb"
click node_outliers "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py"
click node_features "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py"
click node_split "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py"
click node_scaling "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py"
click node_regression "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb"
click node_knn "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Model_building.py"
click node_comparison "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb"
click node_diagnostics "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb"
click node_score "https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Model_building.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dataset,node_ingestion,node_eda,node_quality toneBlue
class node_outliers,node_features,node_split,node_scaling toneAmber
class node_regression,node_knn toneMint
class node_comparison,node_diagnostics,node_score toneRose
class node_analyst toneIndigo
```

## Components

### Data analysis

- [Air quality data](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/data/AirQualityUCI.xlsx): `data/AirQualityUCI.xlsx`
- [Data ingestion](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Ingestion.py): `src/Data_Ingestion.py`
- [Exploratory analysis](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb): `experiment/model.ipynb`
- [Quality assessment](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb): `experiment/model.ipynb`

### Data preparation

- [Outlier treatment](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py): `src/Data_Preprocessing.py`
- [Feature preparation](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py): `src/Data_Preprocessing.py`
- [Train test split](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py): `src/Data_Preprocessing.py`
- [Feature scaling](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Data_Preprocessing.py): `src/Data_Preprocessing.py`

### Modeling

- [Regression models](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb): `experiment/model.ipynb`
- [KNN regressor](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Model_building.py): `src/Model_building.py`

### Evaluation

- [Model comparison](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb): `experiment/model.ipynb`
- [Prediction diagnostics](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/experiment/model.ipynb): `experiment/model.ipynb`
- [R² score](https://github.com/mihirj2002/airquality_index_predictionmodel/blob/main/src/Model_building.py): `src/Model_building.py`

### Other components

- **Analyst**

## Connections

- Analyst → Data ingestion: starts workflow
- Air quality data → Data ingestion: reads
- Data ingestion → Exploratory analysis: provides data
- Exploratory analysis → Quality assessment: assesses
- Quality assessment → Outlier treatment: examines data
- Outlier treatment → Feature preparation: prepares data
- Feature preparation → Train test split: separates RH
- Train test split → Feature scaling: splits data
- Feature scaling → Regression models: provides features
- Feature scaling → KNN regressor: provides arrays
- KNN regressor → R² score: computes R²
- Regression models → Model comparison: compares models
- KNN regressor → Model comparison: contributes score
- Model comparison → Prediction diagnostics: analyzes predictions
