# mikesh112/real-estate-ml-econ architecture

> Architecture diagram of the GitHub repository mikesh112/real-estate-ml-econ, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-07-31). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mikesh112/real-estate-ml-econ
- Repository: https://github.com/mikesh112/real-estate-ml-econ

## Overview

#### Purpose
Notebook-based Russian real-estate pricing analysis project. It preprocesses CIAN housing data, explores price drivers, and compares linear-regression and ensemble ML approaches for interpretable property valuation.

#### Entry Points
- `EDA.ipynb` — primary starting point for raw-data preprocessing and exploratory data analysis.
- `ML_Econ_Real_Estate.ipynb` — linear-regression modeling workflow.
- `ML_Econ_Real_Estate_2.ipynb` — ensemble-model workflow.
- `Interpretiruemoe-cenoobrazovanie-nedvizhimosti.pdf` — presentation of the project’s valuation/interpretability conclusions.

#### Data Asset and Boundary
- `cian_processed_data-2.csv` is the processed dataset consumed by modeling notebooks.
- The repository does not expose an application, API, package, or deployment runtime; execution occurs interactively in Jupyter notebooks.
- The raw source-acquisition process is not represented in the tree. The durable handoff boundary is from `EDA.ipynb` to `cian_processed_data-2.csv`.

#### Stage 1: Preparation and EDA
`EDA.ipynb` performs primary data preparation and exploratory analysis. Its architectural responsibility is converting initial housing observations into a model-ready tabular dataset, identifying feature distributions, quality issues, and relationships relevant to price prediction.

Grounding paths:
- `EDA.ipynb`
- `cian_processed_data-2.csv`

#### Stage 2: Linear Econometric Baseline
`ML_Econ_Real_Estate.ipynb` evaluates linear regression. This is the interpretable baseline: property attributes become explanatory variables and a real-estate price-related target is estimated through a linear model. Results establish a transparent comparison point for more flexible methods.

Grounding path:
- `ML_Econ_Real_Estate.ipynb`

#### Stage 3: Ensemble Modeling
`ML_Econ_Real_Estate_2.ipynb` evaluates ensemble machine-learning methods against the same processed-data domain. This stage captures nonlinearities and feature interactions that the linear baseline may miss, trading some direct interpretability for predictive capacity.

Grounding path:
- `ML_Econ_Real_Estate_2.ipynb`

#### Primary Flow and Outputs
1. Housing data is prepared and examined in `EDA.ipynb`.
2. Processed records are persisted as `cian_processed_data-2.csv`.
3. The linear notebook loads/uses processed data for baseline valuation analysis.
4. The ensemble notebook uses the processed-data domain for alternative predictive models.
5. Findings are communicated in `Interpretiruemoe-cenoobrazovanie-nedvizhimosti.pdf`.

#### Runtime and Dependencies
The material runtime is Python in Jupyter Notebook/IPython, implied by the `.ipynb` artifacts. No dependency manifest, service integration, database, cloud infrastructure, scheduled pipeline, or production inference endpoint is present. Reproducibility therefore depends on notebook cell order, locally installed Python ML/data-analysis libraries, and availability of `cian_processed_data-2.csv`.

Main entry points: [`cian_processed_data-2.csv`](https://github.com/mikesh112/real-estate-ml-econ/blob/main/cian_processed_data-2.csv) (Processed CIAN data), [`ML_Econ_Real_Estate.ipynb`](https://github.com/mikesh112/real-estate-ml-econ/blob/main/ML_Econ_Real_Estate.ipynb) (Linear regression workflow), [`ML_Econ_Real_Estate_2.ipynb`](https://github.com/mikesh112/real-estate-ml-econ/blob/main/ML_Econ_Real_Estate_2.ipynb) (Ensemble workflow), [`EDA.ipynb`](https://github.com/mikesh112/real-estate-ml-econ/blob/main/EDA.ipynb) (Preparation & EDA)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interactive["Interactive Jupyter workflow"]
  node_eda["Preparation &amp; EDA<br/>Jupyter notebook<br/>[EDA.ipynb]"]
  node_jupyter_runtime["Local Python/Jupyter<br/>interactive runtime"]
end

subgraph group_modeling["Valuation modeling"]
  node_linear_notebook["Linear regression workflow<br/>Jupyter notebook"]
  node_linear_features["Explanatory variables<br/>model inputs"]
  node_linear_model["Linear valuation model<br/>linear regression"]
  node_baseline_results["Baseline findings<br/>model results"]
  node_ensemble_notebook["Ensemble workflow<br/>Jupyter notebook"]
  node_ensemble_models["Ensemble models<br/>ML models"]
  node_ensemble_results["Ensemble findings<br/>model results"]
end

node_processed_data[("Processed CIAN data<br/>CSV dataset")]
node_presentation["Valuation conclusions<br/>project presentation"]

node_jupyter_runtime -.->|"runs"| node_eda
node_eda -->|"persists"| node_processed_data
node_jupyter_runtime -.->|"runs"| node_linear_notebook
node_processed_data -->|"loads"| node_linear_notebook
node_linear_notebook -->|"derives"| node_linear_features
node_linear_features -->|"fits"| node_linear_model
node_linear_model -->|"produces"| node_baseline_results
node_jupyter_runtime -.->|"runs"| node_ensemble_notebook
node_processed_data -->|"loads"| node_ensemble_notebook
node_ensemble_notebook -->|"evaluates"| node_ensemble_models
node_ensemble_models -->|"produces"| node_ensemble_results
node_baseline_results -->|"informs"| node_presentation
node_ensemble_results -->|"informs"| node_presentation

click node_eda "https://github.com/mikesh112/real-estate-ml-econ/blob/main/EDA.ipynb"
click node_processed_data "https://github.com/mikesh112/real-estate-ml-econ/blob/main/cian_processed_data-2.csv"
click node_linear_notebook "https://github.com/mikesh112/real-estate-ml-econ/blob/main/ML_Econ_Real_Estate.ipynb"
click node_ensemble_notebook "https://github.com/mikesh112/real-estate-ml-econ/blob/main/ML_Econ_Real_Estate_2.ipynb"
click node_presentation "https://github.com/mikesh112/real-estate-ml-econ/blob/main/Interpretiruemoe-cenoobrazovanie-nedvizhimosti.pdf"

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_eda,node_jupyter_runtime toneBlue
class node_linear_notebook,node_linear_features,node_linear_model,node_baseline_results,node_ensemble_notebook,node_ensemble_models,node_ensemble_results toneAmber
class node_processed_data,node_presentation toneNeutral
```

## Components

### Interactive Jupyter workflow

Python notebooks are run manually.

- [Preparation & EDA](https://github.com/mikesh112/real-estate-ml-econ/blob/main/EDA.ipynb): Jupyter notebook · Cleans housing observations and examines price drivers. · `EDA.ipynb`
- **Local Python/Jupyter**: interactive runtime · Execution depends on notebook order, local libraries, and the CSV.

### Valuation modeling

- [Linear regression workflow](https://github.com/mikesh112/real-estate-ml-econ/blob/main/ML_Econ_Real_Estate.ipynb): Jupyter notebook · Interpretable econometric valuation baseline. · `ML_Econ_Real_Estate.ipynb`
- **Explanatory variables**: model inputs · Property attributes derived from processed records.
- **Linear valuation model**: linear regression · Estimates the price-related target.
- **Baseline findings**: model results · Transparent reference for comparison.
- [Ensemble workflow](https://github.com/mikesh112/real-estate-ml-econ/blob/main/ML_Econ_Real_Estate_2.ipynb): Jupyter notebook · Evaluates nonlinear valuation approaches. · `ML_Econ_Real_Estate_2.ipynb`
- **Ensemble models**: ML models · Capture nonlinearities and feature interactions.
- **Ensemble findings**: model results · Predictive comparison with the linear baseline.

### Other components

- [Processed CIAN data](https://github.com/mikesh112/real-estate-ml-econ/blob/main/cian_processed_data-2.csv): CSV dataset · Durable model-ready handoff dataset. · `cian_processed_data-2.csv`
- [Valuation conclusions](https://github.com/mikesh112/real-estate-ml-econ/blob/main/Interpretiruemoe-cenoobrazovanie-nedvizhimosti.pdf): project presentation · Communicates valuation and interpretability conclusions. · `Interpretiruemoe-cenoobrazovanie-nedvizhimosti.pdf`

## Connections

- Local Python/Jupyter → Preparation & EDA: runs
- Preparation & EDA → Processed CIAN data: persists
- Local Python/Jupyter → Linear regression workflow: runs
- Processed CIAN data → Linear regression workflow: loads
- Linear regression workflow → Explanatory variables: derives
- Explanatory variables → Linear valuation model: fits
- Linear valuation model → Baseline findings: produces
- Local Python/Jupyter → Ensemble workflow: runs
- Processed CIAN data → Ensemble workflow: loads
- Ensemble workflow → Ensemble models: evaluates
- Ensemble models → Ensemble findings: produces
- Baseline findings → Valuation conclusions: informs
- Ensemble findings → Valuation conclusions: informs
