Colab-first pipeline for turning the RecSys 2015 / YOOCHOOSE click log into prefix→target training pairs. Everything happens inside notebooks/session_based_prefix_target_datasets.ipynb, which you can rerun end-to-end to recreate data/processed/.
- Setup & download – mounts Drive, installs Kaggle CLI, pulls the 33M-row
yoochoose-clicks.dat, and prints file sizes for quick checks. - EDA & sorting – loads the clicks table, reports key stats (sessions, items, session-length histogram), and globally sorts events by
session_id+ timestamp. - Temporal split – derives session end-times and slices train/valid/test by chronology (80/10/10) to avoid leakage.
- Filtering & remapping – keeps train items with ≥5 interactions, drops sessions <2 events, optional session-length cap, and remaps
item_idto contiguous ids. - Pair generation – streams prefix lists and next-item targets into Parquet (
train|valid|test_pairs.parquet) plus an accompanyingitem_map.json. - Validation & viz – reloads the Parquet files, checks prefix length distributions/ID bounds, and includes optional Plotly timelines for sampled sessions.
| Artifact | Purpose |
|---|---|
data/processed/train_pairs.parquet |
Training prefixes/targets post-filtering |
data/processed/valid_pairs.parquet |
Chronological validation split |
data/processed/test_pairs.parquet |
Held-out evaluation split |
data/processed/item_map.json |
Original item → contiguous id lookup |
pip install -r requirements.txt- Open the notebook (locally or in Colab), upload your
kaggle.json, run all cells. - Consume the Parquet outputs:
import pandas as pd train_pairs = pd.read_parquet("data/processed/train_pairs.parquet")
├── data/ # external/raw/interim/processed
├── notebooks/ # notebook named session_based_prefix_target_datasets (1).ipynb
├── src/ # placeholder package for downstream code
├── requirements.txt
└── README.md
Project based on the cookiecutter data science project template. #cookiecutterdatascience