# samirshaikh2425/student-performance-prediction architecture

> Architecture diagram of the GitHub repository samirshaikh2425/student-performance-prediction, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/samirshaikh2425/student-performance-prediction
- Repository: https://github.com/samirshaikh2425/student-performance-prediction

## Overview

This repository is a student exam-score prediction and feature-engineering analysis project. Its main workflow loads the CSV, cleans and enriches student records, encodes categorical features, compares three Random Forest regression setups, and prints regression metrics. The README also documents feature importance and visualizations, but their implementation in the notebook was not sampled, so those relationships are not asserted. The Python source supports the modeling flow; no separate application or persistent model store is shown.

Main entry points: [`src/model.py`](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py) (Run Analysis), [`data/student_performance.csv`](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/data/student_performance.csv) (Student Records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Student Data"]
  node_records["Student Records"]
end

subgraph group_preparation["Data Preparation"]
  node_preprocess["Clean Data<br/>[model.py]"]
  node_engineer["Engineer Features<br/>[model.py]"]
  node_encode["Encode Categories<br/>[model.py]"]
end

subgraph group_analysis["Model Analysis"]
  node_orchestrator["Run Analysis<br/>[model.py]"]
  node_baseline["Baseline Model<br/>[model.py]"]
  node_engineered["Engineered Model<br/>[model.py]"]
  node_selection["Select Features<br/>[model.py]"]
  node_selected["Selected Model<br/>[model.py]"]
  node_metrics["Regression Metrics<br/>[model.py]"]
  node_comparison["Model Comparison<br/>[model.py]"]
end

node_analyst(("Analyst"))

node_analyst -->|"runs"| node_orchestrator
node_orchestrator -->|"loads and cleans"| node_preprocess
node_preprocess -->|"reads"| node_records
node_orchestrator -->|"engineers"| node_engineer
node_orchestrator -->|"encodes"| node_encode
node_orchestrator -->|"trains and predicts"| node_baseline
node_baseline -->|"evaluates predictions"| node_metrics
node_orchestrator -->|"trains and predicts"| node_engineered
node_engineered -->|"evaluates predictions"| node_metrics
node_orchestrator -->|"selects features"| node_selection
node_orchestrator -->|"trains and predicts"| node_selected
node_selected -->|"evaluates predictions"| node_metrics
node_orchestrator -->|"prints summary"| node_comparison

click node_records "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/data/student_performance.csv"
click node_preprocess "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_engineer "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_encode "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_orchestrator "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_baseline "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_engineered "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_selection "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_selected "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_metrics "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py"
click node_comparison "https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.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_records toneBlue
class node_preprocess,node_engineer,node_encode toneAmber
class node_orchestrator,node_baseline,node_engineered,node_selection,node_selected,node_metrics,node_comparison toneMint
class node_analyst toneIndigo
```

## Components

### Student Data

- [Student Records](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/data/student_performance.csv): `data/student_performance.csv`

### Data Preparation

- [Clean Data](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Engineer Features](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Encode Categories](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`

### Model Analysis

- [Run Analysis](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Baseline Model](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Engineered Model](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Select Features](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Selected Model](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Regression Metrics](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`
- [Model Comparison](https://github.com/samirshaikh2425/student-performance-prediction/blob/main/src/model.py): `src/model.py`

### Other components

- **Analyst**

## Connections

- Analyst → Run Analysis: runs (evidence: `src/model.py`)
- Run Analysis → Clean Data: loads and cleans (evidence: `src/model.py`)
- Clean Data → Student Records: reads (evidence: `src/model.py`)
- Run Analysis → Engineer Features: engineers (evidence: `src/model.py`)
- Run Analysis → Encode Categories: encodes (evidence: `src/model.py`)
- Run Analysis → Baseline Model: trains and predicts (evidence: `src/model.py`)
- Baseline Model → Regression Metrics: evaluates predictions (evidence: `src/model.py`)
- Run Analysis → Engineered Model: trains and predicts (evidence: `src/model.py`)
- Engineered Model → Regression Metrics: evaluates predictions (evidence: `src/model.py`)
- Run Analysis → Select Features: selects features (evidence: `src/model.py`)
- Run Analysis → Selected Model: trains and predicts (evidence: `src/model.py`)
- Selected Model → Regression Metrics: evaluates predictions (evidence: `src/model.py`)
- Run Analysis → Model Comparison: prints summary (evidence: `src/model.py`)
