Skip to content

Daily And Sport Activities Dataset and Classification Task - #1053

Open
niampattni wants to merge 6 commits into
sunlabuiuc:masterfrom
niampattni:master
Open

Daily And Sport Activities Dataset and Classification Task#1053
niampattni wants to merge 6 commits into
sunlabuiuc:masterfrom
niampattni:master

Conversation

@niampattni

@niampattni niampattni commented Apr 21, 2026

Copy link
Copy Markdown

Authors: Niam Pattni (npattni2@illinois.edu) and Sezim Zamirbekova (szami2@illinois.edu)
Dataset
Paper

Overview

This PR adds a dataset and classification task for the Daily and Sports Activities dataset. Below is a description of the implementation, including lists of all file changes for review.

Dataset

Files

  • pyhealth/datasets/daily_sport_activities.py
  • pyhealth/datasets/__init__.py
  • pyhealth/datasets/configs/daily_sport_activities.yaml
  • docs/api/datasets.rst
  • docs/api/datasets/pyhealth.datasets.DailyAndSportActivities.rst

Description

  • Downloads dataset from UC Irvine repository upon request.
  • Infers metadata from path information.
  • Implements a custom data loader.
  • Initializes BaseDataset class.

Task

Files

  • pyhealth/tasks/daily_sport_activities.py
  • pyhealth/tasks/__init__.py
  • docs/api/tasks.rst
  • docs/api/tasks/pyhealth.tasks.DailyAndSportActivity.rst

Description

  • Generates classification samples for a single patient.
  • Uses a customizable sliding window and stride to prepare data.
  • Adds optional normalization and feature selection.

Example

Files

  • examples/daily_sport_activities.ipynb

Description

  • Trains an RNN classifier on test data
  • Compares accuracy of varying window sizes, strides, and normalization parameters
  • Extendable to other models/parameterizations

Tests

Files

  • tests/core/test_daily_sport_activities.py

Description

Uses dummy data to fully test dataset and task functionality including:

  • Data loading
  • Error handling
  • Invalid data
  • Data parsing
  • Task sample generation
  • Metadata labelling
  • Feature selection
  • Feature validity
  • Rolling window parameterization

@niampattni
niampattni marked this pull request as ready for review April 21, 2026 11:56
@niampattni
niampattni marked this pull request as draft April 21, 2026 12:53
@niampattni
niampattni marked this pull request as ready for review April 21, 2026 13:49
- fixed test_task_window_larger_than_signal_raises, _sliding_windows now
  raises error
- fixed "datasetes" typo in docs/api/datasets.rst
- fixed missing "::" in docs/api/datasets/pyhealth.datasets.DailyAndSportActivities.rst
- fixed typo in docstring "Activitiesy"

@jhnwu3 jhnwu3 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tldr; your dataset class can be much simpler given your .yaml file.


class DailyAndSportActivitiesDataset(BaseDataset):
"""
PyHealth dataset for Daily and Sports Activities data.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey niam, sorry for the late reply, some quick thoughts:

the load_data() is pretty redundant. The way PyHealth.base_dataset works is after you write your metadata file defining how to load each file or map to each feature/file for your pyhealth.task, you can just write a .yaml file and have it be loaded. See this example: https://github.com/sunlabuiuc/PyHealth/blob/master/pyhealth/datasets/covid19_cxr.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants