CoolFace
Datasetpublic

seahorse-stpp/uber_pickups_nyc_stpp

Uber Pickups NYC STPP Benchmark Dataset A benchmark-ready Spatio-Temporal Point Process (STPP) dataset derived from Uber Pickups (NYC) (~4.5 Million records), following the standard split semantics for Neural STPP evaluation. Dataset Description Each record represents a sequence of events. The dataset covers historical Uber pickups across NYC, partitioned sequentially into train / val / test subsets (70% / 15% / 15% ratio). Source Format Raw data… See the full description on the dataset page: https://huggingface.co/datasets/seahorse-stpp/uber_pickups_nyc_stpp.

sourceHugging Faceunknownupdated 4mo agoView on Hugging Face
0likes19downloads
Dataset Card

Uber Pickups NYC STPP Benchmark Dataset

A benchmark-ready Spatio-Temporal Point Process (STPP) dataset derived from Uber Pickups (NYC) (~4.5 Million records), following the standard split semantics for Neural STPP evaluation.

Dataset Description

Each record represents a sequence of events. The dataset covers historical Uber pickups across NYC, partitioned sequentially into train / val / test subsets (70% / 15% / 15% ratio).

Source Format

Raw data was obtained from Kaggle (fivethirtyeight/uber-pickups-in-new-york-city). Each sequence maps to a (N, 3) float64 array with columns [t, x, y].

Sequence Unit

One sequence corresponds to a chunk of contiguous events. No new windowing or segmentation was applied. The dataset unit aligns with benchmark STPP formulations.

Event Schema

FieldTypeDescription
tfloatTime of event
xfloatLongitude or X coordinate
yfloatLatitude or Y coordinate

Values are exported as-is — no normalization applied. The Neural STPP codebase applies StdScaler normalization at training time, not during preprocessing.

Split Semantics

SplitSequencesEventsRatio
train31,7413,174,02870%
val6,802680,15015%
test6,802680,14915%

Split logic mirrors a sequential temporal split sequential_split_ratio_(0.7, 0.15, 0.15) — no random splitting, no reshuffling.

File Structure

uber_pickups_nyc/
├── train.jsonl        # 31741 sequences
├── val.jsonl          # 6802 sequences
├── test.jsonl         # 6802 sequences
├── dataset_meta.json  # Task/schema metadata
└── README.md

JSONL Row Schema

Each line in a .jsonl file is a JSON object:

json
{
  "sequence_id": "seq_0",
  "events": [
    {"t": 1.062, "x": -87.629, "y": 41.878},
    {"t": 2.318, "x": -87.630, "y": 41.879}
  ]
}

Example (Python)

python
import json

with open("train.jsonl") as f:
    for line in f:
        seq = json.loads(line)
        sid    = seq["sequence_id"]
        events = seq["events"]        # list of {"t", "x", "y"} dicts
        t = [e["t"] for e in events]
        x = [e["x"] for e in events]
        y = [e["y"] for e in events]

Source & License

Source data: Kaggle URL: https://www.kaggle.com/datasets/fivethirtyeight/uber-pickups-in-new-york-city

Version 1.0.0 Time Ordering Fix

Version 1.0.0 applies a deterministic data-level repair: events are stable-sorted by t globally before chunking. Validation ensures non-decreasing timestamps for every sequence in train/val/test.