agentleFS
topprismdatatopprismdata/cultivating-ml-agent/skills/examples/multi-level-aggregation-overfitting/SKILL.md

multi-level-aggregation-overfitting

Skill5 starsChanged 34 days agoMITView on GitHub

Use when: (1) considering adding family-level or store-level aggregation features to day-specific models, (2) tempted to copy hierarchical features from 1st place solutions, (3) CV improves but LB degrades after adding aggregated features. WARN: Multi-level aggregation features that work in unified models may OVERFIT in day-specific (direct) forecasting frameworks.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Safer alternative: Use target encoding at family/store level instead of raw aggregation

    line 53
  2. Distinctive:

    Feature budget: Prefer fewer high-signal features (like YoY) over many correlated ones

    line 54

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Multi-Level Aggregation Overfitting in Day-Specific Models

Problem

1st place solutions often use family-level and store-level aggregation features (family lag, store rolling mean, store-family ratio features). However, when applied to day-specific models (separate model per horizon day), these features can cause overfitting: CV improves but LB degrades.

Why It Overfits

In day-specific models, each model trains on ~2.87M samples covering all (store, family) pairs. The model already sees sufficient examples per pair. Family/store level features add redundancy:

  1. Leakage via aggregation: Family-level lags are highly correlated with individual store-family lags (especially for families with few stores). The ratio features (sf_to_fam_ratio) may capture noise rather than signal.
  2. Cross-pair interference: Day-specific models learn patterns across all pairs simultaneously. Adding aggregated features increases the feature space without adding truly independent information.
  3. CV overfitting: The expanding-window CV may not penalize these features enough because the family/store patterns are stable across time, but they don't generalize to the test period's specific dynamics.

Evidence

VersionFeaturesCV RMSLELB
R11b (base)82 features0.420410.40073
R12 multilevel82 + 18 agg0.41668 (better)0.39874 (worse vs R11c=0.39824)

CV improved by 0.00373 but LB got worse by 0.00050 relative to R11c.

In contrast, YoY features (only 4 features) improved LB by 0.00045 with less CV improvement.

Rule of Thumb

  • Unified model: Multi-level aggregation likely helps (model needs hints about hierarchy)
  • Day-specific model: Multi-level aggregation may overfit (model already sees all pairs)
  • Safer alternative: Use target encoding at family/store level instead of raw aggregation
  • Feature budget: Prefer fewer high-signal features (like YoY) over many correlated ones

Related

  • yoy-364day-features — the feature that actually worked instead
  • controlled-submission-experiment — how we isolated this finding
  • ts-day-specific-forecasting — the framework where this applies

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.