Spaces:
Running
Running
Download index.html from SelectArena/Leaderboard: direct link, hf CLI and curl.
- Browser
- Download file 11.4 kB
-
https://huggingface.co/spaces/SelectArena/Leaderboard/resolve/main/index.html
- Command line
-
hf download hf://spaces/SelectArena/Leaderboard/index.html
-
curl -L -o index.html https://huggingface.co/spaces/SelectArena/Leaderboard/resolve/main/index.html
11.4 kB
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <!-- Bumped with every data refresh, together with the version history at the bottom. --> | |
| <meta name="selectarena-version" content="0.2.1"> | |
| <title>SelectArena Leaderboard</title> | |
| <meta name="description" content="Leaderboard of feature selection methods on real-world tabular data."> | |
| <link rel="icon" type="image/svg+xml" href="assets/logo.svg"> | |
| <link rel="stylesheet" href="assets/style.css"> | |
| </head> | |
| <body> | |
| <div class="page"> | |
| <header class="header"> | |
| <div class="brand"> | |
| <img class="logo" src="assets/logo.svg" alt="" width="120" height="84"> | |
| <div> | |
| <h1><span class="mark">Select</span>Arena</h1> | |
| <p class="subtitle">A modern benchmark for feature selection on real-world tabular data</p> | |
| </div> | |
| </div> | |
| <ul class="facts" id="facts"></ul> | |
| <nav class="links"> | |
| <a href="https://arxiv.org/abs/2610.13644" target="_blank" rel="noopener">Paper</a> | |
| <a href="https://github.com/schaeferbasti/SelectArena" target="_blank" rel="noopener">Code</a> | |
| <a href="https://github.com/autogluon/tabarena" target="_blank" rel="noopener">Built on TabArena</a> | |
| </nav> | |
| </header> | |
| <p class="intro"> | |
| Each feature selection method keeps a fixed budget of a dataset's features; a downstream model is | |
| then trained on the selected features only. Methods compete on the same dataset split, downstream | |
| model and budget, and the leaderboard ranks them by <strong>Elo</strong>. Pick a task type, | |
| downstream model or budget to see the leaderboard of that slice. | |
| </p> | |
| <div class="tabs" role="tablist" aria-label="Leaderboard sections"> | |
| <button role="tab" id="tab-leaderboard" aria-controls="panel-leaderboard" aria-selected="true" data-tab="leaderboard">Leaderboard</button> | |
| <button role="tab" id="tab-datasets" aria-controls="panel-datasets" aria-selected="false" data-tab="datasets">Per dataset</button> | |
| <button role="tab" id="tab-robustness" aria-controls="panel-robustness" aria-selected="false" data-tab="robustness">Stability & validity</button> | |
| <button role="tab" id="tab-about" aria-controls="panel-about" aria-selected="false" data-tab="about">About</button> | |
| </div> | |
| <!-- Leaderboard --> | |
| <section role="tabpanel" id="panel-leaderboard" aria-labelledby="tab-leaderboard"> | |
| <div id="no-results" class="notice" hidden> | |
| <strong>No results published yet.</strong> The leaderboard fills in once the first benchmark | |
| results are published from the | |
| <a href="https://github.com/schaeferbasti/SelectArena" target="_blank" rel="noopener">SelectArena repository</a>. | |
| </div> | |
| <div id="leaderboard-content" hidden> | |
| <div class="controls"> | |
| <div class="control"><span class="control-label" id="label-tasks">Task type</span> | |
| <div class="chips" id="chips-tasks" role="group" aria-labelledby="label-tasks"></div></div> | |
| <div class="control"><span class="control-label" id="label-model">Downstream model</span> | |
| <div class="chips" id="chips-model" role="group" aria-labelledby="label-model"></div></div> | |
| <div class="control"><span class="control-label" id="label-budget">Feature budget</span> | |
| <div class="chips" id="chips-budget" role="group" aria-labelledby="label-budget"></div></div> | |
| </div> | |
| <p class="summary" id="summary" aria-live="polite"></p> | |
| <div id="subset-missing" class="notice" hidden> | |
| No leaderboard for this selection: fewer than two methods have results. | |
| </div> | |
| <div id="subset-content"> | |
| <iframe class="frame sa-frame" id="frame-figure" title="Elo rating with stability and validity" style="height:480px"></iframe> | |
| <p class="caption"> | |
| <strong>Elo rating of each feature selection method, from worst to best.</strong> Elo | |
| summarizes how often a method beats another on the same dataset, budget and downstream model | |
| (lower downstream error wins), with Random anchored at 1000 (dashed line). Error bars are 95% | |
| intervals from cluster-bootstrap resamples of the datasets. The left bar of each method is | |
| shaded by <span class="stab">stability</span> (how little the selected subset changes across | |
| bootstrap resamples of the data), the right bar by <span class="val">validity</span> (how well | |
| injected noise features are rejected); darker is better for both. Hatched bars have no | |
| stability or validity result yet. | |
| </p> | |
| <iframe class="frame sa-frame" id="frame-table" title="Leaderboard table" style="height:640px"></iframe> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Per dataset --> | |
| <section role="tabpanel" id="panel-datasets" aria-labelledby="tab-datasets" hidden> | |
| <p class="prose">Mean rank of each method on each dataset, over splits, downstream models and budgets (1 is best).</p> | |
| <div id="datasets-missing" class="notice" hidden>No per-dataset results published yet.</div> | |
| <iframe class="frame sa-frame" id="frame-datasets" title="Mean rank per dataset" style="height:900px"></iframe> | |
| </section> | |
| <!-- Stability & validity --> | |
| <section role="tabpanel" id="panel-robustness" aria-labelledby="tab-robustness" hidden> | |
| <div class="prose"> | |
| <p>These metrics come from runs of the selectors alone, without a downstream model.</p> | |
| <ul> | |
| <li><strong>Stability</strong> (Nogueira, Sechidis & Brown, JMLR 2018): agreement of the | |
| selected features across bootstrap resamples of the data, corrected for chance; 1 means | |
| identical selections, 0 the agreement of random selections.</li> | |
| <li><strong>Validity</strong>: share of the budget filled with original features after synthetic | |
| noise features are added (the noise level is the number of noise features per original one). | |
| The leaderboard and the figure use the validity at noise level <span id="validity-noise">1.0</span>.</li> | |
| </ul> | |
| </div> | |
| <h2>Stability</h2> | |
| <div id="stability-missing" class="notice" hidden>No stability results published yet.</div> | |
| <iframe class="frame sa-frame" id="frame-stability" title="Stability per method" style="height:640px"></iframe> | |
| <h2>Validity</h2> | |
| <div id="validity-missing" class="notice" hidden>No validity results published yet.</div> | |
| <div id="validity-tables"></div> | |
| </section> | |
| <!-- About --> | |
| <section role="tabpanel" id="panel-about" aria-labelledby="tab-about" hidden> | |
| <div class="prose"> | |
| <h2>How the leaderboard is computed</h2> | |
| <p>Methods are compared within a <em>comparison group</em>: one dataset split, one downstream | |
| model configuration and one feature budget.</p> | |
| <ul> | |
| <li><strong>Elo</strong>: Bradley-Terry rating fit on all pairwise matches. Within each dataset, | |
| every combination of budget and downstream model (errors averaged over splits) is a setting in | |
| which every pair of methods plays a match, won by the lower error; ties are skipped. Random is | |
| anchored at 1000; a gap of 150 points means about 70% win probability. The 95% interval comes | |
| from cluster-bootstrap resamples of the datasets.</li> | |
| <li><strong>Avg. rank</strong>: mean rank of the method's downstream error within the groups (1 is best).</li> | |
| <li><strong>Win rate</strong>: share of pairwise comparisons won against the other methods (ties count half).</li> | |
| <li><strong>Improvability</strong>: mean relative gap <code>(error − best error) / error</code> to | |
| the best method of the group (0 is best).</li> | |
| <li><strong>Error vs. all features</strong>: mean ratio of the error to the same model trained on | |
| all features. Below 1 means the selection improved the model.</li> | |
| <li><strong>Stability</strong> and <strong>Validity</strong>: see the <em>Stability & validity</em> tab.</li> | |
| <li><strong>Time</strong>: median wall-clock time of the selection. <strong>Fallback</strong>: | |
| share of runs in which the method ran out of time and random features filled the budget.</li> | |
| </ul> | |
| <p><strong>Budgets.</strong> Budget <em>i</em> of <em>b</em> keeps <code>ceil(d · i / (b + 1))</code> | |
| of the <code>d</code> features when <code>d ≤ 100</code>, and <code>ceil(d ^ (i / (b + 1)))</code> otherwise.</p> | |
| <p><strong>Method types.</strong> The Type column follows the paper's functional taxonomy | |
| (Appendix A). <em>Search</em> methods evaluate many feature subsets with a model-dependent | |
| utility: forward search (SFS), backward search (SBE, MarkovBlanket) and leave-one-out (LOCO). | |
| <em>Non-search</em> methods avoid repeated subset evaluations and rely on a proxy instead: | |
| correlation (F-Test), distance ((R)ReliefF, LaplacianScore), information theory (MI, mRMR, | |
| GainRatio), trees (CART, RFImportance) and regularization (Lasso, ElasticNet). Random is the | |
| baseline.</p> | |
| <h2>Adding a method</h2> | |
| <p>Implement the method as described in the | |
| <a href="https://github.com/schaeferbasti/SelectArena" target="_blank" rel="noopener">SelectArena repository</a> | |
| (one <code>AbstractFeatureSelector</code> subclass) and open a pull request or an issue there.</p> | |
| <h2>Data</h2> | |
| <p>Everything shown here is plain files in this Space's <code>data/</code> folder: | |
| <a href="data/meta.json" target="_blank">meta.json</a> lists every published leaderboard, and each | |
| one is a CSV, e.g. the | |
| <a href="data/subsets/tasks_all/models_all/budgets_all/website_leaderboard.csv" target="_blank">overall leaderboard</a>. | |
| Every table and figure also has its own CSV / SVG / PNG download button.</p> | |
| </div> | |
| </section> | |
| <footer> | |
| <details> | |
| <summary>Citation</summary> | |
| <pre>@article{schaefer2026selectarena, | |
| title = {SelectArena: A Modern Benchmark for Feature Selection on Real-world Tabular Data}, | |
| author = {Sch{\"a}fer, Bastian and Matus, Dominika and Purucker, Lennart and Knauer, Ricardo and | |
| Rodner, Erik and Hutter, Frank and Sokolov, Anton and Liefooghe, Arnaud}, | |
| journal = {arXiv preprint arXiv:2610.13644}, | |
| year = {2026} | |
| }</pre> | |
| </details> | |
| <details> | |
| <summary>Version history (current: <span id="current-version"></span>)</summary> | |
| <!-- version-history: newest entry first; the top entry's version must equal selectarena-version above. --> | |
| <ul class="history" id="version-history"> | |
| <li><strong>2026/10/14 · v0.2.1</strong>: New logo; datasets named for results that use | |
| TabArena task ids.</li> | |
| <li><strong>2026/10/14 · v0.2.0</strong>: Type column follows the paper's taxonomy (search / | |
| non-search subgroups); datasets are shown by name in the per-dataset table; one validity | |
| table per noise level.</li> | |
| <li><strong>2026/10/13 · v0.1.0</strong>: Static leaderboard site (free Hugging Face static Space): | |
| one leaderboard per task type, downstream model and budget, interactive main figure (Elo with | |
| stability and validity), per-dataset ranks and stability / validity tables.</li> | |
| </ul> | |
| <!-- /version-history --> | |
| </details> | |
| </footer> | |
| </div> | |
| <script src="assets/app.js"></script> | |
| </body> | |
| </html> | |