# gourabrajak-cloud/aml_lab architecture

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

- Interactive diagram: https://gitdiagram.com/gourabrajak-cloud/aml_lab
- Repository: https://github.com/gourabrajak-cloud/aml_lab

## Overview

This repository is a sequence of hands-on applied machine-learning labs, delivered mainly as Jupyter notebooks with companion Python exercises and datasets. The user workflow is to work through regression, optimization, polynomial modeling, and model-evaluation lessons, then explore feature selection and PCA. The graph preserves those documented-by-name curriculum branches and shows internal calls only where sampled source demonstrates them. Notebook contents and most later-lab implementations were not sampled, so their internal workflows are not inferred.

Main entry points: [`Lab_8/Lab_8_Solved/poly_gradient.py`](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_8/Lab_8_Solved/poly_gradient.py) (Polynomial Descent), [`Lab_9/Lab_9_Solved/bias_variance_tools.py`](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_9/Lab_9_Solved/bias_variance_tools.py) (Model Helpers), [`Lab_3`](https://github.com/gourabrajak-cloud/aml_lab/tree/main/Lab_3) (Simple Regression), [`Lab_4`](https://github.com/gourabrajak-cloud/aml_lab/tree/main/Lab_4) (Multiple Regression)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_regression["Linear Regression Labs"]
  node_slr_labs["Simple Regression"]
  node_mlr_labs["Multiple Regression"]
  node_ols_impl["OLS Implementation<br/>[mlr_ols_student.py]"]
end

subgraph group_optimization["Gradient Descent Labs"]
  node_batch_gd["Batch Descent"]
  node_minibatch_gd["Mini-batch Descent"]
end

subgraph group_polynomial["Polynomial Modeling"]
  node_poly_gd["Polynomial Descent<br/>[poly_gradient.py]"]
  node_poly_features["Polynomial Features<br/>[poly_gradient.py]"]
  node_poly_ols["Polynomial OLS<br/>[poly_ols.py]"]
end

subgraph group_evaluation["Model Evaluation"]
  node_bias_variance["Bias-Variance Study"]
  node_bias_tools["Model Helpers"]
  node_academic_data["Academic Dataset"]
end

subgraph group_features["Feature Analysis"]
  node_selection_lab["Feature Selection"]
  node_pca_lab["PCA Lab"]
  node_advanced_lab["Further ML Lab"]
end

node_learner(("Learner"))

node_learner -->|"works through"| node_slr_labs
node_learner -->|"works through"| node_mlr_labs
node_learner -->|"practices"| node_batch_gd
node_learner -->|"practices"| node_minibatch_gd
node_learner -->|"explores"| node_poly_gd
node_learner -->|"studies"| node_bias_variance
node_learner -->|"practices"| node_selection_lab
node_learner -->|"practices"| node_pca_lab
node_learner -->|"works through"| node_advanced_lab
node_poly_gd -->|"creates features"| node_poly_features
node_poly_gd -->|"uses features"| node_poly_features
node_bias_tools -->|"reads data"| node_academic_data

click node_slr_labs "https://github.com/gourabrajak-cloud/aml_lab/tree/main/Lab_3"
click node_mlr_labs "https://github.com/gourabrajak-cloud/aml_lab/tree/main/Lab_4"
click node_ols_impl "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_4/Lab_4_notebook_solved/mlr_ols_student.py"
click node_batch_gd "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_5/Lab_5_BGD_MLR_Solved/mlr_gradient_descent.py"
click node_minibatch_gd "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_6/Lab_6_Solved/mlr_gradient_descent_minibatch.py"
click node_poly_gd "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_8/Lab_8_Solved/poly_gradient.py"
click node_poly_features "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_8/Lab_8_Solved/poly_gradient.py"
click node_poly_ols "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_8/Lab_8_Solved/poly_ols.py"
click node_bias_variance "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_9/Lab_9_Solved/Lab_9_Bias_Variance.ipynb"
click node_bias_tools "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_9/Lab_9_Solved/bias_variance_tools.py"
click node_academic_data "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_9/academic_outcomes.csv"
click node_selection_lab "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_10/Lab_10_Feature_Selection/AML_Lab_10_Feature_Selection_Student_TODO.ipynb"
click node_pca_lab "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_11/L11_Student_PCA_TODO.ipynb"
click node_advanced_lab "https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_12/Lab_12_Colab_Notebook_Todo.ipynb"

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_slr_labs,node_mlr_labs,node_ols_impl toneBlue
class node_batch_gd,node_minibatch_gd toneAmber
class node_poly_gd,node_poly_features,node_poly_ols toneMint
class node_bias_variance,node_bias_tools,node_academic_data toneRose
class node_selection_lab,node_pca_lab,node_advanced_lab,node_learner toneIndigo
```

## Components

### Linear Regression Labs

- [Simple Regression](https://github.com/gourabrajak-cloud/aml_lab/tree/main/Lab_3): `Lab_3`
- [Multiple Regression](https://github.com/gourabrajak-cloud/aml_lab/tree/main/Lab_4): `Lab_4`
- [OLS Implementation](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_4/Lab_4_notebook_solved/mlr_ols_student.py): `Lab_4/Lab_4_notebook_solved/mlr_ols_student.py`

### Gradient Descent Labs

- [Batch Descent](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_5/Lab_5_BGD_MLR_Solved/mlr_gradient_descent.py): `Lab_5/Lab_5_BGD_MLR_Solved/mlr_gradient_descent.py`
- [Mini-batch Descent](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_6/Lab_6_Solved/mlr_gradient_descent_minibatch.py): `Lab_6/Lab_6_Solved/mlr_gradient_descent_minibatch.py`

### Polynomial Modeling

- [Polynomial Descent](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_8/Lab_8_Solved/poly_gradient.py): `Lab_8/Lab_8_Solved/poly_gradient.py`
- [Polynomial Features](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_8/Lab_8_Solved/poly_gradient.py): `Lab_8/Lab_8_Solved/poly_gradient.py`
- [Polynomial OLS](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_8/Lab_8_Solved/poly_ols.py): `Lab_8/Lab_8_Solved/poly_ols.py`

### Model Evaluation

- [Bias-Variance Study](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_9/Lab_9_Solved/Lab_9_Bias_Variance.ipynb): `Lab_9/Lab_9_Solved/Lab_9_Bias_Variance.ipynb`
- [Model Helpers](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_9/Lab_9_Solved/bias_variance_tools.py): `Lab_9/Lab_9_Solved/bias_variance_tools.py`
- [Academic Dataset](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_9/academic_outcomes.csv): `Lab_9/academic_outcomes.csv`

### Feature Analysis

- [Feature Selection](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_10/Lab_10_Feature_Selection/AML_Lab_10_Feature_Selection_Student_TODO.ipynb): `Lab_10/Lab_10_Feature_Selection/AML_Lab_10_Feature_Selection_Student_TODO.ipynb`
- [PCA Lab](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_11/L11_Student_PCA_TODO.ipynb): `Lab_11/L11_Student_PCA_TODO.ipynb`
- [Further ML Lab](https://github.com/gourabrajak-cloud/aml_lab/blob/main/Lab_12/Lab_12_Colab_Notebook_Todo.ipynb): `Lab_12/Lab_12_Colab_Notebook_Todo.ipynb`

### Other components

- **Learner**

## Connections

- Learner → Simple Regression: works through
- Learner → Multiple Regression: works through
- Learner → Batch Descent: practices
- Learner → Mini-batch Descent: practices
- Learner → Polynomial Descent: explores
- Learner → Bias-Variance Study: studies
- Learner → Feature Selection: practices
- Learner → PCA Lab: practices
- Learner → Further ML Lab: works through
- Polynomial Descent → Polynomial Features: creates features (evidence: `Lab_8/Lab_8_Solved/poly_gradient.py`)
- Polynomial Descent → Polynomial Features: uses features (evidence: `Lab_8/Lab_8_Solved/poly_gradient.py`)
- Model Helpers → Academic Dataset: reads data (evidence: `Lab_9/Lab_9_Solved/bias_variance_tools.py`)
