← All work

Published research · Biomedical Signal Processing and Control (Elsevier, Q1) · Jan 2025

Non-Invasive Blood Glucose Estimation

PPG SignalsFeature EngineeringSymbolic Regression (PySR)scikit-learn

Finger-prick tests work, but nobody enjoys doing them four times a day. Photoplethysmography — the same optical technique your phone's camera can approximate for a heart-rate reading — offers a non-invasive alternative, if you can get a model to reliably pull blood glucose out of what's essentially a light-absorption waveform. I worked on this as part of a research team collecting PPG recordings from 611 participants, paired with reference glucose readings from a standard glucometer.

Most of the actual work happened before any model saw the data. PPG signals are noisy and drift, so the pipeline runs Kalman smoothing to cut high-frequency noise, a wavelet-based algorithm to correct baseline wander, and the AMPD algorithm to automatically find the trough of every pulse so individual heartbeats can be isolated and measured. From those isolated pulses we extracted 392 candidate features — polynomial fits, spectral and heart-rate-variability measures, and a set of novel area-based features I helped design, which measure how much of a pulse's area sits above or below given amplitude and time thresholds. Feature selection cut that down to 26, then 16, then as few as 5, with almost no loss in accuracy — the area-based features turned out to carry most of the signal.

The interesting split is between two very different models trained on the same features. A Voting Regressor ensemble hit an R² of 0.921, the strongest result in the study. But a black-box ensemble can't tell a clinician why it made a prediction, so we also trained a white-box model using PySR — symbolic regression that searches for an actual mathematical expression rather than fitting opaque weights. It landed at an R² of 0.815: a real drop, but the entire model is a single equation a person can read, evolved through generations of mutation and crossover rather than gradient descent. On the Clarke Error Grid, the clinical benchmark for glucose monitoring, 90% of the ensemble's predictions and over 70% of the white-box model's landed in Zone A — accurate enough that a wrong reading wouldn't lead to the wrong treatment decision.

Live white-box glucose model

Seven physiologic features from the paper — PPI, CE, RAAB90PA, CP, RAAB75PA, RABA90PA, and AB30PA — recomputed in real time.

4.2
5.3
6.4
4.8
6.7
5.8
4.5
PySR-style expression
BGL = 68 + 2.1*sinh(PPI/2) + 1.9*cosh(CE/2) - 2.8*tanh(RAAB90PA/2) + 2.4*sin(CP) + 3.5*atan(RAAB75PA/2) - 2.1*cos(RABA90PA/2) + 1.9*sinh(AB30PA/2)
Predicted BGL 0 mg/dL
Clarke zone A