Phase 0 — public benchmark

How we measure which engine wins

MatrixAI Studio can pick between several training engines for a model. This page shows exactly how that choice is checked: 40 public datasets, 7 engines, one rule sealed before a single number was measured.

Measured September 16, 2026 · 3,479 attempts · 17.18 h of wall clock

01 · The rule

What "the best engine" means here

On each dataset, every engine is trained with its default settings — no hyperparameter search — and scored with the metric that task uses. The engine with the best average is the winner of that dataset; any other engine that lands within a fixed number of points of that winner still counts as having met the bar there. A crash or a timeout counts as a lost dataset for that engine, not as a zero.

As recorded in the artefact (translated; the registered protocol is written in Spanish):
the engine with the best mean over the fits on THAT dataset, excluding the dummy baseline; a failure (timeout/crash) counts as a lost dataset for that engine
The bar: staying within 2 points of the best on a dataset.
The pass mark: meeting the bar on at least 80% of the 40 datasets.
Metric used per task
TaskMetric
Binary classificationAUROC
Multiclass classificationaccuracy or macro-F1
Regression
02 · A real example

kc2Binary classification

Worked from the same JSON this whole page reads — nothing here is typed by hand. · 522×22 · OpenML ↗

EngineScoreDistance from bestMeets the bar?
scikit-learn HGB0.9130Yes
MatrixAI dense net(ours)0.9080.51Yes
CatBoost0.9031.02Yes
XGBoost0.8912.27No
LightGBM0.8882.55No
scikit-learn (linear)0.8625.18No

On kc2, the best engine was scikit-learn HGB, at 0.913. Of the 6 engines that competed, 3 stayed within 2 points of the best and so meet the rule on this dataset.

03 · The full table

40 datasets × 7 engines

Filter by task or by dataset size. On a phone the table keeps its own horizontal scroll — the page itself never scrolls sideways.

Task
Size
  • ✓ meets the bar (within 2 points of the best on that dataset)
  • ★ best engine on that dataset
  • — crashed or timed out (counted as a lost dataset, not a zero)
Average closing metric per dataset and engine in the Phase 0 run, with whether each engine met the rule’s bar on that dataset.
DatasetTaskSizeBaseline (dummy)CatBoostLightGBMMatrixAI dense netscikit-learn HGBscikit-learn (linear)XGBoost
APSFailure Binary classificationLarge0.50.9950.9930.9920.9920.9780.995
Allstate_Claims_Severity RegressionLarge-00.5610.5620.5620.5090.568
Amazon_employee_access Binary classificationLarge0.50.7760.8230.6320.820.5450.818
Internet-Advertisements Binary classificationMedium0.50.980.9760.9640.9750.9880.978
KDDCup09_appetency Binary classificationLarge0.50.8170.7360.7750.5960.752
Moneyball RegressionSmall-0.0020.9330.9330.7520.9340.8730.925
PhishingWebsites Binary classificationMedium0.50.9940.9940.9870.9940.980.994
SEALEDSatellite Binary classificationMedium0.50.9470.9710.9850.9730.9760.956
adult Binary classificationLarge0.50.9240.9290.8920.9290.8820.928
balance-scale Multiclass classificationSmall0.460.9010.8720.8920.8630.8650.866
SEALEDbanknote-authentication Binary classificationSmall0.5110.999111
breast-w Binary classificationSmall0.50.990.9880.9920.9870.9930.987
climate-model-simulation-crashes Binary classificationSmall0.50.960.9490.8880.9360.9490.937
connect-4 Multiclass classificationLarge0.6580.7590.7920.7680.8060.6620.78
diabetes Binary classificationSmall0.50.7990.7640.80.7570.7840.775
SEALEDdiamonds RegressionLarge-00.9790.9810.9660.9810.9180.981
elevators RegressionMedium-0.0020.8450.8570.8390.8560.2040.855
house_16H RegressionLarge-00.6460.6620.4090.6620.2640.658
house_prices_nominal RegressionSmall-00.9160.902-80.5560.9030.8860.913
house_sales RegressionLarge-0.0010.8510.8680.6260.870.6810.862
jm1 Binary classificationMedium0.50.7370.7430.7120.7440.5560.742
kc2 Binary classificationSmall0.50.9030.8880.9080.9130.8620.891
SEALEDkr-vs-kp Binary classificationMedium0.50.99910.99910.9941
SEALEDletter Multiclass classificationMedium0.0410.8420.9520.8160.9530.7610.939
mfeat-factors Multiclass classificationSmall0.10.9580.9770.9620.9770.9790.97
micro-mass Multiclass classificationSmall0.1060.7940.8640.5340.8650.8150.838
okcupid-stem Multiclass classificationLarge0.7160.7560.7550.7550.7370.755
optdigits Multiclass classificationMedium0.1010.9670.9880.9780.9890.9690.981
ozone-level-8hr Binary classificationMedium0.50.9170.9340.9110.9350.9180.937
pc1 Binary classificationSmall0.50.8110.7810.6970.780.6010.781
SEALEDpc3 Binary classificationSmall0.50.810.8020.7570.8020.7430.807
pc4 Binary classificationSmall0.50.9360.9310.9040.9320.8670.928
pendigits Multiclass classificationMedium0.1040.9710.9890.9830.9880.9410.985
SEALEDpol RegressionMedium-00.9740.9820.9770.9820.4570.982
sick Binary classificationMedium0.50.9950.9940.9320.9940.9590.992
SEALEDsplice Multiclass classificationMedium0.5190.9440.9560.9350.9550.930.957
us_crime RegressionSmall-00.7220.7150.6670.7150.7040.716
wilt Binary classificationMedium0.50.9980.9960.7280.9970.9840.998
wine_quality RegressionMedium-00.4170.430.320.4290.3040.431
yeast Multiclass classificationSmall0.3120.6040.5790.5650.5760.5510.579

Datasets marked SEALED are the portfolio’s final exam: they are never used to pick or tune anything, only to grade the result once, at the end.

Baseline is a dummy predictor shown for reference only — it never competes for "the best" and is excluded from every verdict below.

Who passes, across all 40 datasets
04 · The verdict, per engine

An engine passes when it meets the bar on at least 80% of the 40 datasets. The baseline is excluded — it never competes.

EngineDatasets metFractionPasses?
LightGBM34/4085%Passes
scikit-learn HGB34/4085%Passes
CatBoost33/4082.5%Passes
XGBoost30/4075%Does not pass
scikit-learn (linear)15/4037.5%Does not pass
What these numbers do NOT say

Placed next to the verdict on purpose, with the same weight — not a footnote at the bottom of the page.

  • The intervals measure how much the result changes when RETRAINING on other splits of the same dataset, not how the engine would do on another data sample.
  • “2 points” does not weigh the same in every metric: 2 points of R² are not 2 of AUROC.
  • Each engine runs with its default values, with no hyperparameter search: with a search, the order could change.
  • A one-dataset difference in the count does not tell two engines apart.
Our own network, MatrixAI’s dense net
05 · In development

It does not pass the rule yet: it meets the bar on 15/40 (37.5%) in this pass, and on 16/40 in the latest measurement. What it already does well: it was the best engine on 2 datasets here, and on 4 in the latest measurement. We keep measuring it with the same rule as everyone else, and publish its figure as it is.

It is not what the Studio gives you by default: a study makes it compete, and it only wins when it is the best on that dataset.

06 · Provenance

Is this run anchorable to one exact commit?

All 3479 attempts in this run were measured with the matrixAI and matrixai-engines repositories CLEAN — each one comes from an exact commit, so this run is fully anchorable to one specific point in history.

MeasuredAttemptsRepository state
September 15, 20263,479clean
07 · Downloads

The protocol and the raw artefact

This page does not redistribute the datasets — each row of the table links out to its own page on OpenML. What you can download here is the sealed protocol and the raw measurement artefact this whole page reads, each with the digest that proves it has not been touched.

protocolo_exploratorio.json

The protocol sealed before measuring: what counts as "the best", the point bar, the pass fraction, the metric per task.

Protocol version: 101-C1.v1 · September 6, 2026

SHA-256  ea50ca482a815627364b3439bfcf10e78295a13ae5f821219d0fb40329e65301
protocolo_exploratorio.json
pasada_amplia_101_c5_resultado.json

The raw result of the run: every attempt, every engine, every dataset — this is what the JSON on this page is generated from.

SHA-256  3646af61b155c1321ad3fd71f25e9300ed9797b9b5dec0f37ed835cd835ecf48
pasada_amplia_101_c5_resultado.json

Nothing on this page redistributes a dataset — every dataset name links to its own OpenML page.

08 · Latest measurement

The most recent measurement, kept apart

Everything above — the table, the verdict, the downloads — comes from the run that backs the current engine portfolio, because it is fully anchorable to one exact commit. This run is newer and was the one that decided a portfolio change on 2026-09-22, but part of it was measured with a dirty working tree, so it is shown here on its own rather than mixed into the numbers above.

Measured September 22, 2026 · 3,479 attempts · 5.82 h of wall clock

110 of the 3479 attempts in this run were measured with the matrixAI tree dirty after a restart — they do not come from a clean commit, so this run is NOT fully anchorable to one exact point in history.

Verdict on this run
EngineDatasets metFractionPasses?
LightGBM33/4082.5%Passes
scikit-learn HGB33/4082.5%Passes
CatBoost29/4072.5%Does not pass
XGBoost29/4072.5%Does not pass
scikit-learn (linear)14/4035%Does not pass

An engine passes when it meets the bar on at least 80% of the 40 datasets. The baseline is excluded — it never competes.

Our dense net, in development: 16/40, and the best engine on 4 datasets.

protocolo_exploratorio_v2.json

Protocol version: 113-C0.v2 · September 21, 2026

SHA-256  1b4e902e61e06edcfda8e9f4ccef1232a233d46718089c5f0a2f814feb9dc878
protocolo_exploratorio_v2.json
pasada_v2_113_resultado.json
SHA-256  600ebdaad2ca206eac148e25c38b57add8ad2d64652fafca3d8226758010c0d0
pasada_v2_113_resultado.json
Keep going
How a model’s receipt is verified →Three models you can redo →EU AI Act traceability →

Every number on this page is read live from src/datos/fase0_publico.json, copied byte-for-byte from the artefact MatrixAI generates from the sealed Phase 0 run — nothing here is typed by hand.