Skip to content
Stephan.

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
012400×1000

/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.

01

Live inference

Form inputs run through the trained model and return a prediction immediately.

  • scikit-learn
  • Streamlit
02

Consistent preprocessing

The same transformation pipeline applied at training and inference, so predictions are not silently skewed.

  • Pandas
  • NumPy
03

Data visualisation

Distributions and relationships plotted so a prediction can be read in context.

  • Matplotlib
  • Streamlit
04

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.

01

Training and inference drifting apart

Preprocessing factored into one pipeline used by both paths, rather than reimplemented in the app.

02

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.

021600×1200

/images/work/health-metric-prediction/01.webp

Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.

031600×1200

/images/work/health-metric-prediction/02.webp

Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.

041600×1200

/images/work/health-metric-prediction/03.webp

Interface detail. Crop tight on one screen or one interaction — not a full-page screenshot shrunk down.

051600×1200

/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