03Personal
Health Metric Prediction
ML-Powered Health Analytics
Trained regression models exposed through a Streamlit interface for live health-metric prediction and visualisation.
- Company
- Personal Project
- Role
- Solo build — data and application
- Category
- Data Analytics
/images/work/health-metric-prediction/cover.webp
Full-bleed project cover. Wide editorial crop of the interface or its subject matter.
01Impact
By the numbers.
ML
Trained model
Live
Interactive inference
Viz
Data visualisation
E2E
Data to interface
02Overview
The brief.
Most student ML work stops at a notebook with a printed accuracy score. This project carries a trained scikit-learn model through to something a non-technical person can actually use: enter values, get a prediction, see the data behind it.
Problem
A model that lives in a notebook cannot be evaluated by anyone who does not read Python. Without an interface, there is no way to test whether the inputs make sense to a real user or whether the predictions are legible.
Solution
A Streamlit application wrapping the trained model — preprocessing applied consistently between training and inference, inputs validated at the form layer, and predictions presented alongside visualisations that give them context.
03Features
What it does.
Live inference
Form inputs run through the trained model and return a prediction immediately.
- scikit-learn
- Streamlit
Consistent preprocessing
The same transformation pipeline applied at training and inference, so predictions are not silently skewed.
- Pandas
- NumPy
Data visualisation
Distributions and relationships plotted so a prediction can be read in context.
- Matplotlib
- Streamlit
Input validation
Bounds enforced at the form layer to keep out-of-range values from reaching the model.
- Streamlit
04Architecture
How it's built.
data
- Pandas
- NumPy
- Preprocessing pipeline
model
- scikit-learn
- Trained estimator
- Serialised artefact
application
- Streamlit
- Form inputs
- Result rendering
visualisation
- Matplotlib
- Distribution plots
05Challenges
What was hard.
Training and inference drifting apart
Preprocessing factored into one pipeline used by both paths, rather than reimplemented in the app.
Making a numeric output meaningful to a non-technical reader
Predictions presented alongside the underlying distribution instead of as a bare number.
06Gallery
A closer look.
/images/work/health-metric-prediction/01.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
/images/work/health-metric-prediction/02.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
/images/work/health-metric-prediction/03.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
/images/work/health-metric-prediction/04.webp
Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.
07Stack
Built with.
- Python
- Streamlit
- scikit-learn
- Pandas
- NumPy
- Matplotlib
Outcomes
- Model taken from notebook to usable interface
- Preprocessing shared between training and inference
- Predictions presented with visual context