Benchmark Results¶
Wall-clock performance of all runnable shinrin algorithms measured across
a suite of synthetic and real datasets. Produced by
scripts/benchmarks/bench_all.py; regenerate locally with:
Environment¶
| Date (UTC) | 2026-08-23 |
| OS | Darwin 25.6.0 |
| CPU | Apple M1 Max |
| Cores | 10 |
| Python | 3.14.3 |
| shinrin | 0.2.0 |
| NumPy | 2.5.2 |
| scikit-learn | 1.9.0 |
| Backends | Rust (Mondrian) |
Methodology¶
- Fit time: best of 3 fits on datasets up to 5,000 training rows, otherwise a single fit.
- Predict time: mean over 10 predictions of the held-out test set; also normalized per 1,000 samples.
- Score: R^2 on the test set for regression, accuracy for classification.
- All algorithms run single-threaded on identical train/test splits (
random_state=0, 80/20). - Mondrian models use the Rust backend.
- Model configurations: MondrianTree depth 16; MondrianForest 20 trees, depth 16; RandomForest / ExtraTrees 100 trees; quantile forests 50 trees.
- GOSDT runs behind the threshold-guessing binarization pipeline (
depth_budget=4, 60 s search limit), capped at 6,000 training rows. (GOSDT is now named SPOT /SPOTClassifier; the tables below keep the name used at measurement time.) - CORELS runs on quantile one-hot binarized features (
max_card=1), capped at 6,000 training rows. - Not included: SkopeRules (requires optional
pandas).
Times are seconds unless stated otherwise; predict columns are milliseconds per full test-set call / per 1,000 samples.
Regression¶
Fit time (seconds).
| Dataset | MondrianTree | MondrianForest | RandomForest | ExtraTrees | RF-Quantile | ET-Quantile |
|---|---|---|---|---|---|---|
| diabetes | 0.000446 | 0.00686 | 0.112 | 0.0743 | 0.12 | 0.0999 |
| friedman1-2k | 0.00117 | 0.0224 | 0.479 | 0.29 | 0.687 | 0.554 |
| friedman1-10k | 0.00462 | 0.0892 | 3.14 | 1.5 | 8.35 | 7.23 |
| california-10k | 0.00361 | 0.0667 | 2.58 | 1.17 | 7.73 | 6.91 |
| make-regression-5k | 0.00322 | 0.0624 | 3.05 | 1.4 | 3.47 | 2.39 |
Predict: ms per full test-set call / ms per 1k samples.
| Dataset | MondrianTree | MondrianForest | RandomForest | ExtraTrees | RF-Quantile | ET-Quantile |
|---|---|---|---|---|---|---|
| diabetes | 0.0782 / 0.879 | 1.36 / 15.3 | 4.03 / 45.3 | 4.31 / 48.5 | 2.1 / 23.6 | 2.18 / 24.4 |
| friedman1-2k | 0.214 / 0.536 | 4.63 / 11.6 | 8.02 / 20 | 8.87 / 22.2 | 4.21 / 10.5 | 4.25 / 10.6 |
| friedman1-10k | 1.01 / 0.507 | 20.5 / 10.3 | 36.4 / 18.2 | 44.6 / 22.3 | 19.1 / 9.54 | 18.9 / 9.45 |
| california-10k | 0.803 / 0.401 | 15.4 / 7.69 | 35.7 / 17.9 | 43.6 / 21.8 | 18.2 / 9.1 | 18.2 / 9.1 |
| make-regression-5k | 0.712 / 0.712 | 14.4 / 14.4 | 17.1 / 17.1 | 21 / 21 | 8.73 / 8.73 | 8.94 / 8.94 |
R^2 on the held-out test set.
| Dataset | MondrianTree | MondrianForest | RandomForest | ExtraTrees | RF-Quantile | ET-Quantile |
|---|---|---|---|---|---|---|
| diabetes | -0.2540 | 0.2996 | 0.2687 | 0.2372 | 0.2648 | 0.3072 |
| friedman1-2k | -0.0170 | 0.6604 | 0.8502 | 0.8655 | 0.8510 | 0.8491 |
| friedman1-10k | 0.3615 | 0.6951 | 0.9089 | 0.9159 | 0.9074 | 0.9036 |
| california-10k | -0.0526 | 0.1940 | 0.7871 | 0.7878 | 0.7844 | 0.7747 |
| make-regression-5k | -0.0098 | 0.2703 | 0.7489 | 0.7747 | 0.7481 | 0.7346 |
Classification¶
Fit time (seconds).
| Dataset | MondrianTree | MondrianForest | GOSDT | CORELS |
|---|---|---|---|---|
| breast-cancer | 0.000466 | 0.00941 | 0.00158 | 0.0122 |
| wine | 0.00028 | 0.0059 | - | - |
| digits | 0.00225 | 0.0442 | - | - |
| synthetic-binary-5k | 0.00256 | 0.0518 | 13 | 0.0438 |
| synthetic-binary-20k | 0.0197 | 0.394 | - | - |
| synthetic-multiclass-5k | 0.00281 | 0.0549 | - | - |
Predict: ms per full test-set call / ms per 1k samples.
| Dataset | MondrianTree | MondrianForest | GOSDT | CORELS |
|---|---|---|---|---|
| breast-cancer | 0.109 / 0.954 | 1.27 / 11.2 | 0.0772 / 0.677 | 0.0173 / 0.152 |
| wine | 0.0612 / 1.36 | 0.454 / 10.1 | - | - |
| digits | 0.587 / 1.63 | 10.3 / 28.5 | - | - |
| synthetic-binary-5k | 0.639 / 0.639 | 11.4 / 11.4 | 0.381 / 0.381 | 0.0506 / 0.0506 |
| synthetic-binary-20k | 4.57 / 1.14 | 88.6 / 22.1 | - | - |
| synthetic-multiclass-5k | 0.75 / 0.75 | 13.6 / 13.6 | - | - |
Accuracy on the held-out test set.
| Dataset | MondrianTree | MondrianForest | GOSDT | CORELS |
|---|---|---|---|---|
| breast-cancer | 0.9123 | 0.9123 | 0.9035 | 0.9386 |
| wine | 0.6222 | 0.7778 | - | - |
| digits | 0.7028 | 0.9500 | - | - |
| synthetic-binary-5k | 0.7300 | 0.8640 | 0.7330 | 0.7590 |
| synthetic-binary-20k | 0.6322 | 0.8117 | - | - |
| synthetic-multiclass-5k | 0.4000 | 0.6500 | - | - |
Skipped / failed cells¶
winexGOSDT: skipped (binary targets only)winexCORELS: skipped (binary targets only)digitsxGOSDT: skipped (binary targets only)digitsxCORELS: skipped (binary targets only)synthetic-binary-20kxGOSDT: skipped (row cap 6,000)synthetic-binary-20kxCORELS: skipped (row cap 6,000)synthetic-multiclass-5kxGOSDT: skipped (binary targets only)synthetic-multiclass-5kxCORELS: skipped (binary targets only)