# linafaik08/survival_analysis architecture

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

- Interactive diagram: https://gitdiagram.com/linafaik08/survival_analysis
- Repository: https://github.com/linafaik08/survival_analysis

## Overview

This is an experimentation project for survival analysis, with two use cases: customer subscription churn and hospital readmission. The documented workflow runs preprocessing, exploration, survival-model training, and evaluation notebooks in order; the project also includes reusable splitting, ML and deep-learning training, and scoring code. The README supports the notebook workflow and saved model-score outputs. Notebook internals and their specific calls into `src` were not sampled, so those implementation links are omitted.

Main entry points: [`notebooks/03_modeling_survival_customer_subscription.ipynb`](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/03_modeling_survival_customer_subscription.ipynb) (Customer modeling), [`notebooks/13_modeling_survival_hospitalisation.ipynb`](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/13_modeling_survival_hospitalisation.ipynb) (Hospital modeling), [`notebooks/01_data_preprocessing_customer_subscription.ipynb`](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/01_data_preprocessing_customer_subscription.ipynb) (Customer preprocessing), [`notebooks/11_data_preprocessing_hospitalisation.ipynb`](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/11_data_preprocessing_hospitalisation.ipynb) (Hospital preprocessing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Use-case data"]
  node_customer_data[("Subscription data")]
  node_hospital_data[("Hospital data")]
end

subgraph group_workflow["Experiment workflow"]
  node_customer_pre["Customer preprocessing"]
  node_customer_explore["Customer exploration"]
  node_customer_model["Customer modeling"]
  node_customer_eval["Customer evaluation"]
  node_hospital_pre["Hospital preprocessing"]
  node_hospital_explore["Hospital exploration"]
  node_hospital_model["Hospital modeling"]
  node_hospital_eval["Hospital evaluation"]
end

subgraph group_runtime["Training and evaluation code"]
  node_splitter["Data splitting<br/>[train.py]"]
  node_ml_training["Survival ML"]
  node_deep_training["Deep survival"]
  node_scoring["Score analysis<br/>[evaluate.py]"]
end

subgraph group_results["Saved results"]
  node_model_files[("Saved models")]
  node_score_files[("Model scores")]
end

node_analyst(("Experimenter"))

node_analyst -->|"runs first"| node_customer_pre
node_customer_data -->|"prepares"| node_customer_pre
node_customer_pre -->|"then explores"| node_customer_explore
node_customer_explore -->|"then trains"| node_customer_model
node_customer_model -->|"then evaluates"| node_customer_eval
node_customer_model -->|"saves models"| node_model_files
node_customer_eval -->|"records scores"| node_score_files
node_analyst -->|"runs first"| node_hospital_pre
node_hospital_data -->|"prepares"| node_hospital_pre
node_hospital_pre -->|"then explores"| node_hospital_explore
node_hospital_explore -->|"then trains"| node_hospital_model
node_hospital_model -->|"then evaluates"| node_hospital_eval
node_hospital_model -->|"saves models"| node_model_files
node_hospital_eval -->|"records scores"| node_score_files

click node_customer_data "https://github.com/linafaik08/survival_analysis/tree/main/datasets/customer_subscription"
click node_hospital_data "https://github.com/linafaik08/survival_analysis/tree/main/datasets/hospitalisation"
click node_customer_pre "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/01_data_preprocessing_customer_subscription.ipynb"
click node_customer_explore "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/02_data_exploration_customer_subscription.ipynb"
click node_customer_model "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/03_modeling_survival_customer_subscription.ipynb"
click node_customer_eval "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/04_evaluation_customer_subscription.ipynb"
click node_hospital_pre "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/11_data_preprocessing_hospitalisation.ipynb"
click node_hospital_explore "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/12_data_exploration_hospitalisation.ipynb"
click node_hospital_model "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/13_modeling_survival_hospitalisation.ipynb"
click node_hospital_eval "https://github.com/linafaik08/survival_analysis/blob/main/notebooks/14_evaluation_hospitalisation.ipynb"
click node_splitter "https://github.com/linafaik08/survival_analysis/blob/main/src/train.py"
click node_ml_training "https://github.com/linafaik08/survival_analysis/blob/main/src/train_survival_ml.py"
click node_deep_training "https://github.com/linafaik08/survival_analysis/blob/main/src/train_survival_deep.py"
click node_scoring "https://github.com/linafaik08/survival_analysis/blob/main/src/evaluate.py"
click node_model_files "https://github.com/linafaik08/survival_analysis/tree/main/outputs/models"
click node_score_files "https://github.com/linafaik08/survival_analysis/tree/main/outputs"

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_customer_data,node_hospital_data toneBlue
class node_customer_pre,node_customer_explore,node_customer_model,node_customer_eval,node_hospital_pre,node_hospital_explore,node_hospital_model,node_hospital_eval toneAmber
class node_splitter,node_ml_training,node_deep_training,node_scoring toneMint
class node_model_files,node_score_files toneRose
class node_analyst toneIndigo
```

## Components

### Use-case data

- [Subscription data](https://github.com/linafaik08/survival_analysis/tree/main/datasets/customer_subscription): `datasets/customer_subscription`
- [Hospital data](https://github.com/linafaik08/survival_analysis/tree/main/datasets/hospitalisation): `datasets/hospitalisation`

### Experiment workflow

- [Customer preprocessing](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/01_data_preprocessing_customer_subscription.ipynb): `notebooks/01_data_preprocessing_customer_subscription.ipynb`
- [Customer exploration](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/02_data_exploration_customer_subscription.ipynb): `notebooks/02_data_exploration_customer_subscription.ipynb`
- [Customer modeling](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/03_modeling_survival_customer_subscription.ipynb): `notebooks/03_modeling_survival_customer_subscription.ipynb`
- [Customer evaluation](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/04_evaluation_customer_subscription.ipynb): `notebooks/04_evaluation_customer_subscription.ipynb`
- [Hospital preprocessing](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/11_data_preprocessing_hospitalisation.ipynb): `notebooks/11_data_preprocessing_hospitalisation.ipynb`
- [Hospital exploration](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/12_data_exploration_hospitalisation.ipynb): `notebooks/12_data_exploration_hospitalisation.ipynb`
- [Hospital modeling](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/13_modeling_survival_hospitalisation.ipynb): `notebooks/13_modeling_survival_hospitalisation.ipynb`
- [Hospital evaluation](https://github.com/linafaik08/survival_analysis/blob/main/notebooks/14_evaluation_hospitalisation.ipynb): `notebooks/14_evaluation_hospitalisation.ipynb`

### Training and evaluation code

- [Data splitting](https://github.com/linafaik08/survival_analysis/blob/main/src/train.py): `src/train.py`
- [Survival ML](https://github.com/linafaik08/survival_analysis/blob/main/src/train_survival_ml.py): `src/train_survival_ml.py`
- [Deep survival](https://github.com/linafaik08/survival_analysis/blob/main/src/train_survival_deep.py): `src/train_survival_deep.py`
- [Score analysis](https://github.com/linafaik08/survival_analysis/blob/main/src/evaluate.py): `src/evaluate.py`

### Saved results

- [Saved models](https://github.com/linafaik08/survival_analysis/tree/main/outputs/models): `outputs/models`
- [Model scores](https://github.com/linafaik08/survival_analysis/tree/main/outputs): `outputs`

### Other components

- **Experimenter**

## Connections

- Experimenter → Customer preprocessing: runs first (evidence: `README.md`)
- Subscription data → Customer preprocessing: prepares (evidence: `README.md`)
- Customer preprocessing → Customer exploration: then explores (evidence: `README.md`)
- Customer exploration → Customer modeling: then trains (evidence: `README.md`)
- Customer modeling → Customer evaluation: then evaluates (evidence: `README.md`)
- Customer modeling → Saved models: saves models (evidence: `README.md`)
- Customer evaluation → Model scores: records scores (evidence: `README.md`)
- Experimenter → Hospital preprocessing: runs first (evidence: `README.md`)
- Hospital data → Hospital preprocessing: prepares (evidence: `README.md`)
- Hospital preprocessing → Hospital exploration: then explores (evidence: `README.md`)
- Hospital exploration → Hospital modeling: then trains (evidence: `README.md`)
- Hospital modeling → Hospital evaluation: then evaluates (evidence: `README.md`)
- Hospital modeling → Saved models: saves models (evidence: `README.md`)
- Hospital evaluation → Model scores: records scores (evidence: `README.md`)
