# Rec Splitting Eval

> Evaluates how different data splitting strategies (leave-one-last-item, leave-one-last-basket, temporal global) impact the performance ranking of recommendation models on e-commerce datasets. It probes whether evaluation protocols introduce temporal leakage or distribution shifts that confound model comparisons and invalidate cross-paper rankings. Use when the user wants to benchmark on Tafeng Dataset, Dunnhumby Dataset, or asks about evaluating this task. Reports NDCG@10.

- Skill: `qhjqhj00/rec-splitting-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/rec-splitting-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/rec-splitting-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/rec-splitting-eval

---


# rec-splitting-eval

> Exploring Data Splitting Strategies for the Evaluation of Recommendation Models — Meng et al. (2020) (arXiv:2007.13237, 2020)

## What this evaluates

Evaluates how different data splitting strategies (leave-one-last-item, leave-one-last-basket, temporal global) impact the performance ranking of recommendation models on e-commerce datasets. It probes whether evaluation protocols introduce temporal leakage or distribution shifts that confound model comparisons and invalidate cross-paper rankings.

## Datasets

- **Tafeng Dataset** — total ?; splits: train (-1), test (-1)
- **Dunnhumby Dataset** — total ?; splits: train (-1), test (-1)

## Metrics

- `NDCG@10` **(primary)** — range: [0, 1]
  - Normalized Discounted Cumulative Gain at rank 10. Measures the quality of the ranked recommendation list by applying a logarithmic discount to gains based on position, normalized by the ideal DCG.
- `Recall@10` — range: [0, 1]
  - Fraction of relevant (ground truth) items successfully retrieved within the top 10 recommended items for each user.

## Input / output format

**Input**: User-item interaction histories (often structured as baskets or sessions) with implicit timestamps, used to train collaborative filtering or neural recommendation models.

**Output**: A ranked list of candidate items for each user, typically truncated to top-K for evaluation against held-out ground truth interactions.

## Scoring recipe

```python
def ndcg_at_k(relevant, pred, k=10):
    dcg = sum(1.0 / math.log2(i + 2) for i, item in enumerate(pred[:k]) if item in relevant)
    idcg = sum(1.0 / math.log2(i + 2) for i in range(min(len(relevant), k)))
    return dcg / idcg if idcg > 0 else 0.0

def recall_at_k(relevant, pred, k=10):
    hits = sum(1 for item in pred[:k] if item in relevant)
    return hits / len(relevant) if relevant else 0.0
```

## Common pitfalls

- Temporal leakage occurs when future interactions are inadvertently included in training due to non-temporal splits, artificially inflating performance.
- Ranking swaps between models are highly sensitive to the splitting strategy, making cross-paper comparisons invalid without standardized protocols.
- Leave-one-last-basket splits group interactions by session/basket, fundamentally changing the evaluation distribution compared to item-level splits.

## Evidence (verbatim from paper)

> Figure 2 plots the NDCG@10 performance of these models for pairs of splitting strategies across each of the two datasets, as well as reporting Kendall's  $	au$  correlation between the score distributions for each.

## Citation

```bibtex
@misc{meng2020exploring,
  title={Exploring Data Splitting Strategies for the Evaluation of Recommendation Models},
  author={Meng et al. (2020)},
  year={2020},
  note={arXiv:2007.13237}
}
```

- arXiv: 2007.13237

