context
Turning wearable signals into useful recovery guidance
Wearable platforms generate rich physiological data, yet raw metrics rarely help a person decide how to recover. The project explored whether machine learning and a fine-tuned language model could provide a useful, cautious interpretation layer.
problem
Useful recommendations without overstating certainty
Fatigue is subjective, labels are uncertain and health recommendations can create safety risks. A single high-confidence classifier would overstate what the data can support.
constraints
Small cohorts, imbalance and safety boundaries
The LifeSnaps dataset contained 71 participants and an imbalanced fatigued class. Recommendations had to avoid diagnosis, remain actionable and expose the uncertainty of the predictive signal.
approach
A dual predictive and generative architecture
I designed a dual architecture. A LightGBM module produced an interpretable fatigue-risk indicator, while a fine-tuned GPT-4.1 layer generated structured recommendations. The backend used FastAPI, SQLite and Docker; the interface used React. SMOTETomek addressed class imbalance and evaluation prioritized recall and F1 for the fatigued class.
results
Measured gains with zero critical safety errors
The predictive module reached 77.3% recall, 50.6% precision, 62.0% accuracy and 0.61 F1. The fine-tuned recommendation layer scored 9.6/10, compared with 5.3/10 for the baseline. It produced zero critical safety errors in the evaluation set; the baseline produced 10%.
limitations
A risk signal, never a diagnosis
The cohort was small and not representative enough for clinical claims. The system is an informative risk signal, never a diagnostic tool. A larger longitudinal dataset and prospective user study are the next validation steps.