| --- |
| license: mit |
| language: en |
| library_name: pytorch-lightning |
| tags: |
| - pytorch |
| - pytorch-lightning |
| - timeseries |
| - forecasting |
| - headache-prediction |
| - custom-code |
| pipeline_tag: tabular-classification |
| |
| |
| metrics: |
| - f1 |
| - accuracy |
| - precision |
| - recall |
| - roc_auc |
| --- |
| |
| # Headache Prediction Model (Time Series Transformer) |
|
|
| ## Model Description |
|
|
| This repository contains a model trained to predict the probability of experiencing a headache for the **next 5 days**. It utilizes a **Transformer Encoder** architecture implemented using PyTorch and PyTorch Lightning. |
|
|
| The model takes into account the previous **14 days** of historical data, including: |
| * Weather features (temperature, humidity, pressure, precipitation) |
| * Engineered features (pressure change, day of week) |
| * User-reported diary features (stress level, sleep hours) |
| * Lagged headache occurrences (status from day-1 to day-4) |
| * Static user features (age, gender, chronic condition) |
|
|
| **Developed by:** [Your Name / Organization] |
| **Model Version:** [e.g., v1.1 - corresponding to the uploaded checkpoint] |
|
|
| ## Intended Uses & Limitations |
|
|
| * **Intended Use:** To provide a daily forecast of headache risk for the subsequent 5 days, based on a user providing the required 14-day historical sequence and static features. Can be used for personal awareness or potentially integrated into health tracking applications. |
| * **Limitations:** |
| * Requires a **complete, chronologically ordered sequence of 14 days** of input data ending on the day *before* the first prediction day. |
| * Requires the **specific input features** listed in `config/settings.py` (`MODEL_INPUT_FEATURES` and `STATIC_FEATURES_USED`). |
| * Requires the **custom Python code** provided in this repository (`headache_model.py`, `base_model.py`, `config/settings.py`) to load and run the model correctly. |
| * Depends heavily on the **`scalers.pkl`** file for correct input preprocessing. Using data outside the distribution seen during training may yield poor results. |
| * Trained on [**Describe your training data source briefly - e.g., synthetic data, specific user group data**]. Performance may vary significantly on data from different sources or demographics. |
| * The model provides probabilities; a **threshold** (default 0.5 or 0.6 used in training eval) must be applied for binary yes/no predictions, impacting the Precision/Recall trade-off. |
|
|
| ## How to Use |
|
|
| **1. Installation:** |
|
|
| Ensure you have Python 3.9+ and install the necessary libraries. It's recommended to use the versions specified in `requirements.txt`. |
|
|
| ```bash |
| # Clone the repository (includes code, config, requirements) |
| git lfs install # Run once per machine if not done before |
| git clone [https://huggingface.co/YourUsername/YourRepoName](https://huggingface.co/YourUsername/YourRepoName) # Replace with your Repo ID |
| cd YourRepoName |
| |
| # Install dependencies |
| pip install -r requirements.txt |