adapt-tabarena

Adapt TabArena and bencheval as the task, model, and leaderboard layer for a domain-specific benchmark.

313|74|Updated May 15, 2023
One-click install
npx skills add https://github.com/autogluon/tabarena --skill adapt-tabarena-autogluon
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: adapt-tabarena
Source: https://github.com/autogluon/tabarena/tree/main/.claude/skills/adapt-tabarena
Command: npx skills add https://github.com/autogluon/tabarena --skill adapt-tabarena-autogluon

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires tabarena, bencheval, scikit-learn, autogluon.

What problem does it solve? Building a benchmark for a new data domain (spectroscopy, genomics, time series) normally means reimplementing model zoos, cross-validation splitting, experiment runners, and leaderboard statistics from scratch. This Skill guides you through reusing TabArena's model registry, task runner, and bencheval's leaderboard math from your own external repository instead of forking or reimplementing that layer. ## Core Features & Use Cases - Task and Split Construction: Convert domain datasets into UserTask objects with repeated k-fold, group-aware, or temporal outer splits, plus inner bagging protocols via ValidationProtocol. - Model Registry Extension: Register domain-specific models with register_model_info alongside TabArena's zoo, or wrap self-tuning pipelines as ExternalSystemModel baselines. - Leaderboard and Publishing: Compute Elo, win-rates, and improvability with bencheval.BenchmarkEvaluator, handle imputation and Elo anchoring, and host results with MethodMetadata artifact tiers. - Use Case: A research lab building a Raman spectroscopy benchmark (RamanBench) uses this Skill to depend on tabarena and bencheval, register a spectral CNN model, define group-aware splits per specimen, and publish a leaderboard comparable to TabArena's. ## Quick Start Ask the assistant to adapt TabArena as the tasks, models, and leaderboard layer for your new domain benchmark, naming your benchmark and its data domain.

Frequently Asked Questions about adapt-tabarena

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a benchmark on top of TabArena for my own data domain?

Depend on the tabarena and bencheval packages, convert each dataset into a UserTask with your own outer splits, register domain models via register_model_info, and run experiments through an AbstractArenaContext subclass. The context's compare method then computes the leaderboard.

What is the difference between the tabarena and bencheval packages?

bencheval is a lightweight standalone package that computes leaderboards (Elo, win-rates, ranks) from an existing results DataFrame. tabarena adds the model registry, search spaces, task and experiment runner, contexts, and plotting, and depends on bencheval.

How do I handle grouped or temporal data in TabArena splits?

Build group-aware outer splits with StratifiedGroupKFold or GroupKFold per repeat, and declare a ValidationProtocol with task_specific_validation=True so inner bagging folds respect group_on or time_on. The default TabArena protocol leaks groups across inner folds.

Can I register my own model with TabArena without forking it?

Yes. Call tabarena.models.register_model_info from your package's __init__ with a ModelInfo containing your AutoGluon AbstractModel subclass and ConfigGenerator. The model then becomes addressable by name in experiment bundles like any built-in model.

Why does my custom model fail when running TabArena with Ray?

Ray workers cannot unpickle model classes defined in __main__ or a script. Move the model class into an importable module of your installed package; debug_mode=True hides this because it runs everything in-process.

When should I use bencheval alone instead of the full tabarena package?

Use bencheval alone when your benchmark keeps its own models and splitting logic and only needs TabArena-grade leaderboard math over a results DataFrame. It has minimal dependencies (numpy, pandas, scipy, scikit-learn) and no AutoGluon requirement.