Garmin Workout Classifier
Machine Learning · Personal Data
Reads twelve years of my running — 3,370 Garmin runs — by segmenting every pace trace into effort states with change-point detection and k-means, all scaled to a trailing 90-day window so effort means effort at that month's fitness. A gradient-boosted model trained on 272 blind hand labels beats a transparent 9-rule baseline by 22 points and stamps the corpus; the next stage is predicting my race times from the same history.
Python · pandas · scikit-learn · ruptures
Nightbrain
iOS App · In Progress
A sleep app that fits an n-of-1 model on your own nights: how rested you feel is the label, your wearable's data are the features, and the model runs entirely on-device. Last night's data stays locked until you've rated the night, and no insight surfaces until it clears a real confidence threshold — "too uncertain to say" is a valid answer.
Swift · SwiftUI · GRDB · Oura API
Predicting Accident Cleanup Time
Data Science · MS&E 226
Five regression models — OLS through random forests and KNN — cross-validated on a stratified 100K sample of 7.7M U.S. accidents to predict how long a crash closes the road. The best lands ~28 minutes off, so the verdict was don't deploy: an honest case study in knowing when not to ship a model.
Python · scikit-learn · statsmodels
More landing here soon.