hessboost 0.2.3__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hessboost-0.2.3 → hessboost-0.2.4}/Cargo.toml +1 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/PKG-INFO +62 -7
- {hessboost-0.2.3 → hessboost-0.2.4}/README.md +5 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/python/Cargo.lock +3 -2
- {hessboost-0.2.3 → hessboost-0.2.4}/python/Cargo.toml +3 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/python/README.md +61 -6
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/__init__.py +14 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_booster.py +324 -2
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_hessboost.pyi +32 -9
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_training.py +176 -25
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/target_stats.py +69 -12
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/booster.rs +114 -3
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/data.rs +2 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/errors.rs +7 -4
- hessboost-0.2.4/python/src/info.rs +254 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/lib.rs +13 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/online.rs +59 -15
- hessboost-0.2.4/python/src/pool.rs +116 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/target_stats.rs +23 -2
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/train.rs +152 -66
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_ebm.py +37 -0
- hessboost-0.2.4/python/tests/test_fork.py +72 -0
- hessboost-0.2.4/python/tests/test_model_info.py +209 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_online.py +79 -5
- hessboost-0.2.4/python/tests/test_prediction.py +219 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_target_stats.py +126 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_training.py +108 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/backend/shared.rs +1 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/params.rs +6 -31
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/dmatrix.rs +146 -64
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/mod.rs +3 -1
- hessboost-0.2.4/src/data/rows.rs +55 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/mod.rs +3 -2
- {hessboost-0.2.3 → hessboost-0.2.4}/src/ebm/mod.rs +31 -13
- {hessboost-0.2.3 → hessboost-0.2.4}/src/lib.rs +18 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/compact/mod.rs +7 -11
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/mod.rs +102 -33
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/native.rs +3 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/predict.rs +486 -116
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/serde.rs +1 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/shap.rs +3 -3
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/shrinkage.rs +27 -20
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/slice.rs +2 -0
- hessboost-0.2.4/src/model/transform.rs +133 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/uncertainty.rs +4 -18
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/classification.rs +5 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/count.rs +3 -3
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/mod.rs +10 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/multiclass.rs +9 -3
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/spec.rs +4 -11
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/survival/aft.rs +2 -3
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/survival/cox.rs +5 -3
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/survival/mod.rs +0 -8
- {hessboost-0.2.3 → hessboost-0.2.4}/src/simd/aarch64.rs +35 -183
- {hessboost-0.2.3 → hessboost-0.2.4}/src/simd/mod.rs +11 -57
- {hessboost-0.2.3 → hessboost-0.2.4}/src/simd/tests.rs +4 -140
- {hessboost-0.2.3 → hessboost-0.2.4}/src/simd/x86_64.rs +13 -72
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/api.rs +16 -3
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/budget.rs +1 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/cv/mod.rs +272 -72
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/ebm/boulevard.rs +86 -20
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/ebm/classic.rs +78 -29
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/ebm/mod.rs +111 -37
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/eval.rs +28 -13
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/gblinear.rs +1 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/margins.rs +4 -4
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/mod.rs +3 -2
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/online/mod.rs +1 -1
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/train.rs +27 -11
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/validate.rs +10 -6
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/compact.rs +60 -50
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/linear.rs +7 -4
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/regtree.rs +34 -4
- hessboost-0.2.4/tests/cv.rs +240 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/aft.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/aft.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/aft.json +694 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/aft.margins +7 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/categorical_splits.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/categorical_splits.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/categorical_splits.json +864 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/categorical_splits.margins +5 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dart.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dart.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dart.json +850 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dart.margins +1 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_flow_matching.hbdm +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_flow_matching.hbdm.json +2874 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_flow_matching.hbdm.probe +1 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_score.hbdm +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_score.hbdm.json +2879 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_score.hbdm.probe +1 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_treeffuser_vp.hbdm +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_treeffuser_vp.hbdm.json +2526 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/diffusion_treeffuser_vp.hbdm.probe +1 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_negbinomial.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_negbinomial.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_negbinomial.json +1173 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_negbinomial.margins +1 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_normal.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_normal.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_normal.json +1589 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_normal.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_normal_vector_leaves.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_normal_vector_leaves.json +975 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/dist_normal_vector_leaves.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/early_stopping.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/early_stopping.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/early_stopping.json +798 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/early_stopping.margins +1 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/expectiles.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/expectiles.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/expectiles.json +1384 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/expectiles.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/forest_diffusion.hbff +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/forest_diffusion.hbff.json +127628 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/forest_diffusion.hbff.probe +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/forest_flow.hbff +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/forest_flow.hbff.json +88629 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/forest_flow.hbff.probe +3 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/gblinear.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/gblinear.json +42 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/gblinear.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/linear_leaves.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/linear_leaves.json +1066 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/linear_leaves.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multi_target.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multi_target.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multi_target.json +1615 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multi_target.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multiclass_forest.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multiclass_forest.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multiclass_forest.json +6028 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/multiclass_forest.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/quantiles.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/quantiles.hbtd +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/quantiles.json +2358 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/quantiles.margins +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/vector_leaves.bin +0 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/vector_leaves.json +1036 -0
- hessboost-0.2.4/tests/data/saved/0.2.4/vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/diffusion.rs +9 -7
- hessboost-0.2.4/tests/dmatrix.rs +223 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/ebm.rs +228 -5
- hessboost-0.2.4/tests/row_prediction.rs +401 -0
- hessboost-0.2.4/tests/row_prediction_alloc.rs +161 -0
- hessboost-0.2.4/tests/row_prediction_pool.rs +59 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/tree_options.rs +106 -6
- {hessboost-0.2.3 → hessboost-0.2.4}/LICENSE +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/benches/training.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/balanced_bagging.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/bench_compare.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/binary_classification.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/boulevard_inference.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/budget.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/common/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/compact_model.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/conformal.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/constraints.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/custom_objective.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/distributional.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/ebm.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/forest_flow.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/metal.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/model_io.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/multiclass.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/online_update.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/ordered_target_stats.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/pfn_boost.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/rank_xendcg.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/ranking.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/shap.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/train_regression.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/tree_diffusion.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/virtual_ensembles.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/examples/wgpu.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/pyproject.toml +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_core.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_data.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_exceptions.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_matrix.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_model_io.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_sklearn_base.pyi +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/_sklearn_common.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/conformal.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/diffusion/__init__.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/diffusion/forest.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/ebm.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/folds.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/inference.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/online.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/py.typed +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/hessboost/sklearn.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/codec.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/compact.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/conformal.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/diffusion.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/dist.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/ebm.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/forest.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/gpu.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/inference.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/src/params.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/conftest.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_compact.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_conformal.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_data.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_diffusion.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_forest.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_gpu.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_inference.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_model_io.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_params.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_polars.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_sklearn.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_stubs.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/python/tests/test_threads.py +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/backend/exact_sum.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/backend/metal.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/backend/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/backend/wgpu.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/check.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/groups.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/xgboost/emit.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/xgboost/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/xgboost/parse.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/xgboost/schema.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/config/xgboost/tests.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/conformal.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/ghist.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/loaders.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/meta.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/quantile.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/sketch.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/sort.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/data/target_stats.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/fit.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/forest/encoding.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/forest/fit.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/forest/format.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/forest/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/format.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/io.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/process.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/diffusion/sample.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/ebm/grid.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/error.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/inference/ebm.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/inference/kernel.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/inference/linalg.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/inference/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/inference/refit.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/inference/solver.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/inference/term_kernel.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/curve.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/distributional.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/elementwise.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/factory.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/quantile.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/ranking.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/metric/survival.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/categories.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/compact/bitstream.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/compact/decode.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/compact/encode.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/compact/tests.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/container.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/embed.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/io.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/lightgbm.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/objective.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/predictions.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/sections.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/ubjson.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/validate.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/xgboost/document.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/xgboost/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/xgboost/objective.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/xgboost/parse.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/xgboost/tests.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/model/xgboost/tree.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/absolute.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/custom.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/distributional/count.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/distributional/dist.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/distributional/family.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/distributional/loss.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/distributional/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/distributional/special.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/distributional/tests.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/multi_target.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/params.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/quantile.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/query.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/ranking.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/regression.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/survival/tests.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/objective/xendcg.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/rng.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/simd/aarch64/tests.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/simd/scalar.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/test_support.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/boulevard.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/continuation.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/cv/fold.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/dart.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/ebm/fast.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/multi_output.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/online/cache.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/online/update.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/prepare.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/refresh.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/round.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/row_sampling.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/sampling.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/sglb.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/training/train/tests.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/budget.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/categorical.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/exact.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/hist/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/hist/search.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/lightgbm.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/multi.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/oblivious.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/online.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/partition.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/shared.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/builder/split.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/constraints.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/gain.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/hist/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/hist/quantized.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/hist/walk.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/linear_fit.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/oblivious.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/reuse.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/src/tree/sampler.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/boulevard.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/budget.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/common/bits.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/common/fixtures.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/common/gpu.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/common/mod.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/common/smooth.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/continuation.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/lightgbm-4.7.0-binary.expected.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/lightgbm-4.7.0-binary.txt +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/lightgbm-4.7.0-linear.expected.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/lightgbm-4.7.0-linear.txt +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/aft.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/aft.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/aft.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/aft.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/categorical_splits.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/categorical_splits.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/categorical_splits.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/categorical_splits.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dart.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dart.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dart.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dart.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_negbinomial.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_negbinomial.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_negbinomial.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_negbinomial.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_normal.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_normal.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_normal.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_normal.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_normal_vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_normal_vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/dist_normal_vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/early_stopping.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/early_stopping.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/early_stopping.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/early_stopping.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/expectiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/expectiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/expectiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/expectiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/gblinear.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/gblinear.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/gblinear.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/linear_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/linear_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/linear_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multi_target.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multi_target.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multi_target.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multi_target.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multiclass_forest.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multiclass_forest.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multiclass_forest.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/multiclass_forest.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/quantiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/quantiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/quantiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/quantiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.0/vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/aft.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/aft.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/aft.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/aft.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/categorical_splits.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/categorical_splits.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/categorical_splits.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/categorical_splits.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dart.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dart.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dart.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dart.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_flow_matching.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_flow_matching.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_flow_matching.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_score.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_score.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_score.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_treeffuser_vp.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_treeffuser_vp.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/diffusion_treeffuser_vp.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_negbinomial.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_negbinomial.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_negbinomial.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_negbinomial.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_normal.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_normal.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_normal.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_normal.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_normal_vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_normal_vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/dist_normal_vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/early_stopping.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/early_stopping.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/early_stopping.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/early_stopping.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/expectiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/expectiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/expectiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/expectiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/forest_diffusion.hbff +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/forest_diffusion.hbff.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/forest_diffusion.hbff.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/forest_flow.hbff +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/forest_flow.hbff.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/forest_flow.hbff.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/gblinear.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/gblinear.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/gblinear.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/linear_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/linear_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/linear_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multi_target.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multi_target.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multi_target.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multi_target.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multiclass_forest.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multiclass_forest.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multiclass_forest.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/multiclass_forest.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/quantiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/quantiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/quantiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/quantiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.1/vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/aft.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/aft.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/aft.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/aft.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/categorical_splits.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/categorical_splits.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/categorical_splits.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/categorical_splits.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dart.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dart.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dart.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dart.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_flow_matching.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_flow_matching.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_flow_matching.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_score.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_score.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_score.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_treeffuser_vp.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_treeffuser_vp.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/diffusion_treeffuser_vp.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_negbinomial.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_negbinomial.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_negbinomial.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_negbinomial.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_normal.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_normal.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_normal.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_normal.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_normal_vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_normal_vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/dist_normal_vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/early_stopping.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/early_stopping.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/early_stopping.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/early_stopping.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/expectiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/expectiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/expectiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/expectiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/forest_diffusion.hbff +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/forest_diffusion.hbff.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/forest_diffusion.hbff.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/forest_flow.hbff +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/forest_flow.hbff.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/forest_flow.hbff.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/gblinear.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/gblinear.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/gblinear.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/linear_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/linear_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/linear_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multi_target.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multi_target.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multi_target.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multi_target.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multiclass_forest.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multiclass_forest.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multiclass_forest.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/multiclass_forest.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/quantiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/quantiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/quantiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/quantiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.2/vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/aft.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/aft.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/aft.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/aft.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/categorical_splits.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/categorical_splits.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/categorical_splits.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/categorical_splits.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dart.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dart.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dart.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dart.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_flow_matching.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_flow_matching.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_flow_matching.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_score.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_score.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_score.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_treeffuser_vp.hbdm +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_treeffuser_vp.hbdm.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/diffusion_treeffuser_vp.hbdm.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_negbinomial.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_negbinomial.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_negbinomial.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_negbinomial.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_normal.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_normal.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_normal.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_normal.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_normal_vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_normal_vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/dist_normal_vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/early_stopping.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/early_stopping.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/early_stopping.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/early_stopping.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/expectiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/expectiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/expectiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/expectiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/forest_diffusion.hbff +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/forest_diffusion.hbff.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/forest_diffusion.hbff.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/forest_flow.hbff +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/forest_flow.hbff.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/forest_flow.hbff.probe +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/gblinear.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/gblinear.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/gblinear.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/linear_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/linear_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/linear_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multi_target.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multi_target.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multi_target.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multi_target.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multiclass_forest.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multiclass_forest.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multiclass_forest.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/multiclass_forest.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/quantiles.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/quantiles.hbtd +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/quantiles.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/quantiles.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/vector_leaves.bin +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/vector_leaves.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/saved/0.2.3/vector_leaves.margins +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/xgboost-3.4.2-categorical.json +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/data/xgboost-3.4.2-categorical.ubj +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/distributional.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/forest.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/lightgbm_parity.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/metal.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/model_format.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/multi_output.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/native_format.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/online.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/parity.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/properties.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/quantized.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/round_hook.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/sampling.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/sglb.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/shap_accumulation.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/target_stats.rs +0 -0
- {hessboost-0.2.3 → hessboost-0.2.4}/tests/wgpu.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hessboost
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -51,6 +51,8 @@ UBJSON.
|
|
|
51
51
|
model at any `nthread`.
|
|
52
52
|
- **Typed** (`py.typed`, complete type information), with the GIL released
|
|
53
53
|
while training and predicting, and free-threaded CPython supported.
|
|
54
|
+
Native work runs on the extension's own thread pool, which a child
|
|
55
|
+
forked with `os.fork()` rebuilds instead of hanging.
|
|
54
56
|
- **Modern modeling (opt-in).** Conformal prediction intervals,
|
|
55
57
|
confidence intervals for the regression function (Boulevard boosting),
|
|
56
58
|
distributional boosting (a predictive distribution per row), LightGBM/CatBoost
|
|
@@ -115,6 +117,28 @@ leaves = booster.predict(X[800:], pred_leaf=True) # (rows, trees) int32, all tr
|
|
|
115
117
|
print(booster.best_iteration, booster.get_score(importance_type="gain"))
|
|
116
118
|
```
|
|
117
119
|
|
|
120
|
+
Values and margins of a plain 2-D numpy array are predicted from the array
|
|
121
|
+
itself, without building a `DMatrix` (bit-identical to the `DMatrix` path).
|
|
122
|
+
For serving one row at a time, `predict_row` skips the matrix altogether;
|
|
123
|
+
`out=` reuses a result array, and `transform_margin(s)` applies the
|
|
124
|
+
objective's transform to margins computed elsewhere (bit for bit what
|
|
125
|
+
`predict` reports):
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
row = booster.predict_row(X[0]) # == booster.predict(X[:1])[0], 1-D float32
|
|
129
|
+
out = np.empty(1, dtype=np.float32)
|
|
130
|
+
booster.predict_row(X[1], output_margin=True, out=out) # writes into out
|
|
131
|
+
probability = booster.transform_margin(float(out[0]))
|
|
132
|
+
probabilities = booster.transform_margins(margins) # == booster.predict(X[800:])
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
`booster.model_info()` returns the model's structure as numpy arrays, enough
|
|
136
|
+
to walk the trees and recompute the margins without parsing a model file: a
|
|
137
|
+
`ModelInfo` with the layout, base margins, per-tree weights and outputs, and
|
|
138
|
+
the `gblinear` and model-shrinkage records, and per tree a `TreeInfo` of node
|
|
139
|
+
arrays (children, split features, thresholds, categories, leaf values, covers,
|
|
140
|
+
gains, linear leaves).
|
|
141
|
+
|
|
118
142
|
### Input data
|
|
119
143
|
|
|
120
144
|
`DMatrix` takes numpy arrays of any numeric dtype and memory layout (a
|
|
@@ -166,7 +190,18 @@ and `callbacks`. Ctrl-C stops training at the end of the current round
|
|
|
166
190
|
and raises `KeyboardInterrupt`. `hessboost.cv` cross-validates over
|
|
167
191
|
shuffled folds, explicit folds, or a scikit-learn splitter; on ranking data
|
|
168
192
|
each fold must hold whole query groups (e.g. `GroupKFold` over the query
|
|
169
|
-
ids). `
|
|
193
|
+
ids). `cv(xgb_model=...)` continues a model in every fold, and
|
|
194
|
+
`cv(refit=True)` also retrains on every row for the chosen round count (the
|
|
195
|
+
best one under early stopping), returning a `CvRefit` with the `history`
|
|
196
|
+
and that `booster`:
|
|
197
|
+
|
|
198
|
+
```python
|
|
199
|
+
refit = hessboost.cv(params, dtrain, 500, early_stopping_rounds=20, refit=True)
|
|
200
|
+
refit.history["test-rmse-mean"], refit.num_boost_round
|
|
201
|
+
predictions = refit.booster.predict(X_test)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
`hessboost.train_with_budget(params, dtrain, budget)` trains with one
|
|
170
205
|
fitting budget in place of `eta`, tree limits, and a round count
|
|
171
206
|
(PerpetualBooster's algorithm).
|
|
172
207
|
|
|
@@ -388,6 +423,13 @@ A Boulevard EBM (`{"booster": "ebm", "ebm_boulevard": True}`) additionally
|
|
|
388
423
|
supports confidence bands on its shapes via
|
|
389
424
|
`hessboost.inference.EbmInference.term_bands`.
|
|
390
425
|
|
|
426
|
+
EBMs take eval sets like any booster: `train(..., evals=[(dvalid, "valid")],
|
|
427
|
+
early_stopping_rounds=5)` records the history and `best_score` (classic
|
|
428
|
+
EBMs stop early on it), and `cv` (with `refit=True` too) cross-validates
|
|
429
|
+
them. `cv` refuses `ebm_early_stopping_rounds`, which would stop each fold's
|
|
430
|
+
stages at different rounds; its `early_stopping_rounds` stops on the fold
|
|
431
|
+
means instead.
|
|
432
|
+
|
|
391
433
|
### Boulevard inference
|
|
392
434
|
|
|
393
435
|
Boulevard boosting (`{"booster": "boulevard"}`) samples trees with dropout
|
|
@@ -538,7 +580,10 @@ result = hessboost.cv({"max_depth": 4}, dtrain, 100, folds=splits)
|
|
|
538
580
|
with CatBoost-style ordered target means: a training row's encoding never
|
|
539
581
|
sees its own label. `label=` supplies the target for a multi-target matrix
|
|
540
582
|
or a class's 0/1 indicator. In `cv`, `target_stats=` fits the encoder on
|
|
541
|
-
each fold's training rows only, so no held-out label reaches an encoding
|
|
583
|
+
each fold's training rows only, so no held-out label reaches an encoding
|
|
584
|
+
(`target_stats_label=` supplies its target, split with the folds); with
|
|
585
|
+
`refit=True`, `CvRefit.target_encoder` is the encoder fitted on every row,
|
|
586
|
+
which encodes new data for the refit booster:
|
|
542
587
|
|
|
543
588
|
```python
|
|
544
589
|
from hessboost.target_stats import OrderedTargetEncoder
|
|
@@ -548,8 +593,15 @@ dtrain_encoded, stats = encoder.fit_transform(dtrain, ["city"])
|
|
|
548
593
|
booster = hessboost.train({"max_depth": 4}, dtrain_encoded, 100)
|
|
549
594
|
predictions = booster.predict(stats.transform(X_test))
|
|
550
595
|
result = hessboost.cv({"max_depth": 4}, dtrain, 100, target_stats=["city"], target_encoder=encoder)
|
|
596
|
+
refit = hessboost.cv({"max_depth": 4}, dtrain, 100, target_stats=["city"], refit=True)
|
|
597
|
+
predictions = refit.booster.predict(refit.target_encoder.transform(X_test))
|
|
551
598
|
```
|
|
552
599
|
|
|
600
|
+
`stats.save(path)` / `FittedTargetEncoder.load(path)` (and
|
|
601
|
+
`to_bytes`/`from_bytes`) store the Rust crate's serde JSON, which keeps
|
|
602
|
+
column indices and category codes but not feature names or frame
|
|
603
|
+
categories; pickle the statistics to keep them.
|
|
604
|
+
|
|
553
605
|
### Extra training options
|
|
554
606
|
|
|
555
607
|
Every hessboost training option (`path_smooth`, `extra_trees`,
|
|
@@ -585,7 +637,8 @@ LightGBM's `rank_xendcg` stream.
|
|
|
585
637
|
Unlike XGBoost, which accepts both, hessboost refuses `objective` alongside
|
|
586
638
|
`obj`: drop `objective` from ported `params`; the callback needs no change.
|
|
587
639
|
- `cv` returns a dict of numpy arrays (`test-<metric>-mean`/`-std`) with
|
|
588
|
-
held-out metrics only
|
|
640
|
+
held-out metrics only (or, with `refit=True`, a `CvRefit` holding it and
|
|
641
|
+
the retrained booster); there is no `stratified` or `as_pandas`.
|
|
589
642
|
- `predict` defaults to the iterations through `best_iteration` (XGBoost's
|
|
590
643
|
scikit-learn behavior); pass `iteration_range=(0, 0)` for all. SHAP and
|
|
591
644
|
leaf ranges start at iteration 0; `pred_leaf` defaults to every iteration
|
|
@@ -596,9 +649,11 @@ LightGBM's `rank_xendcg` stream.
|
|
|
596
649
|
instead of predicting on the training device.
|
|
597
650
|
- Model files do not store feature names or categories (pickles do).
|
|
598
651
|
- Not available: `DMatrix` from files or `QuantileDMatrix`, `inplace_predict`
|
|
599
|
-
(`predict` takes arrays directly
|
|
600
|
-
|
|
601
|
-
|
|
652
|
+
(`predict` takes arrays directly, and `predict_row` single rows),
|
|
653
|
+
`Booster.get_dump`/`trees_to_dataframe`/`dump_model` (`model_info()`
|
|
654
|
+
returns the trees as arrays), attributes (`set_attr`), plotting,
|
|
655
|
+
distributed (Dask/Spark) and CUDA training, `approx_contribs`, and
|
|
656
|
+
`strict_shape`.
|
|
602
657
|
|
|
603
658
|
## Development
|
|
604
659
|
|
|
@@ -160,8 +160,12 @@ See [`python/README.md`](python/README.md).
|
|
|
160
160
|
binary/multiclass classification, ranking (LambdaMART, XE-NDCG), count, and survival (Cox, AFT),
|
|
161
161
|
plus typed objective and metric APIs and custom loss hooks.
|
|
162
162
|
- **Validation & workflow:** Cross-validation (including purged and forward time-series folds,
|
|
163
|
-
whole-query ranking folds,
|
|
163
|
+
whole-query ranking folds, per-fold target statistics, continuing a model, and refitting on all
|
|
164
|
+
rows at the chosen round count), early stopping, feature importance,
|
|
164
165
|
SHAP values and interactions, model slicing, and iteration ranges.
|
|
166
|
+
- **Prediction & inspection:** Batch, in-place (borrowed rows), and allocation-free single-row
|
|
167
|
+
prediction, bit-identical in every batch; read-only model metadata (tree weights and nodes,
|
|
168
|
+
`gblinear` weights, model-shrinkage records).
|
|
165
169
|
- **Interchange:** Native binary and JSON formats, XGBoost JSON/UBJSON import/export, LightGBM model import, and models embedded in the binary at compile time.
|
|
166
170
|
- **Modern modeling (opt-in):**
|
|
167
171
|
- [Conformal intervals](https://docs.rs/hessboost/latest/hessboost/conformal/): Finite-sample coverage guarantees.
|
|
@@ -290,7 +290,7 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
290
290
|
|
|
291
291
|
[[package]]
|
|
292
292
|
name = "hessboost"
|
|
293
|
-
version = "0.2.
|
|
293
|
+
version = "0.2.4"
|
|
294
294
|
dependencies = [
|
|
295
295
|
"bytemuck",
|
|
296
296
|
"objc2",
|
|
@@ -306,11 +306,12 @@ dependencies = [
|
|
|
306
306
|
|
|
307
307
|
[[package]]
|
|
308
308
|
name = "hessboost-python"
|
|
309
|
-
version = "0.2.
|
|
309
|
+
version = "0.2.4"
|
|
310
310
|
dependencies = [
|
|
311
311
|
"hessboost",
|
|
312
312
|
"numpy",
|
|
313
313
|
"pyo3",
|
|
314
|
+
"rayon",
|
|
314
315
|
"self_cell",
|
|
315
316
|
"serde",
|
|
316
317
|
"serde_json",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "hessboost-python"
|
|
3
3
|
# Must equal the root crate's version: the wheel version comes from here.
|
|
4
|
-
version = "0.2.
|
|
4
|
+
version = "0.2.4"
|
|
5
5
|
authors = ["Brenden Matthews <brenden@brndn.io>"]
|
|
6
6
|
description = "Python bindings for hessboost"
|
|
7
7
|
edition = "2024"
|
|
@@ -38,6 +38,8 @@ doctest = false
|
|
|
38
38
|
hessboost = { path = "..", features = ["wgpu"] }
|
|
39
39
|
numpy = "0.29"
|
|
40
40
|
pyo3 = { version = "0.29", features = ["abi3-py311"] }
|
|
41
|
+
# The extension's own pool, which a forked child rebuilds (`src/pool.rs`).
|
|
42
|
+
rayon = "1.12"
|
|
41
43
|
# Method configurations cross the boundary as their serde JSON.
|
|
42
44
|
serde = "1.0"
|
|
43
45
|
# Parameter mappings deserialize into `TrainingParams` through serde;
|
|
@@ -12,6 +12,8 @@ UBJSON.
|
|
|
12
12
|
model at any `nthread`.
|
|
13
13
|
- **Typed** (`py.typed`, complete type information), with the GIL released
|
|
14
14
|
while training and predicting, and free-threaded CPython supported.
|
|
15
|
+
Native work runs on the extension's own thread pool, which a child
|
|
16
|
+
forked with `os.fork()` rebuilds instead of hanging.
|
|
15
17
|
- **Modern modeling (opt-in).** Conformal prediction intervals,
|
|
16
18
|
confidence intervals for the regression function (Boulevard boosting),
|
|
17
19
|
distributional boosting (a predictive distribution per row), LightGBM/CatBoost
|
|
@@ -76,6 +78,28 @@ leaves = booster.predict(X[800:], pred_leaf=True) # (rows, trees) int32, all tr
|
|
|
76
78
|
print(booster.best_iteration, booster.get_score(importance_type="gain"))
|
|
77
79
|
```
|
|
78
80
|
|
|
81
|
+
Values and margins of a plain 2-D numpy array are predicted from the array
|
|
82
|
+
itself, without building a `DMatrix` (bit-identical to the `DMatrix` path).
|
|
83
|
+
For serving one row at a time, `predict_row` skips the matrix altogether;
|
|
84
|
+
`out=` reuses a result array, and `transform_margin(s)` applies the
|
|
85
|
+
objective's transform to margins computed elsewhere (bit for bit what
|
|
86
|
+
`predict` reports):
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
row = booster.predict_row(X[0]) # == booster.predict(X[:1])[0], 1-D float32
|
|
90
|
+
out = np.empty(1, dtype=np.float32)
|
|
91
|
+
booster.predict_row(X[1], output_margin=True, out=out) # writes into out
|
|
92
|
+
probability = booster.transform_margin(float(out[0]))
|
|
93
|
+
probabilities = booster.transform_margins(margins) # == booster.predict(X[800:])
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
`booster.model_info()` returns the model's structure as numpy arrays, enough
|
|
97
|
+
to walk the trees and recompute the margins without parsing a model file: a
|
|
98
|
+
`ModelInfo` with the layout, base margins, per-tree weights and outputs, and
|
|
99
|
+
the `gblinear` and model-shrinkage records, and per tree a `TreeInfo` of node
|
|
100
|
+
arrays (children, split features, thresholds, categories, leaf values, covers,
|
|
101
|
+
gains, linear leaves).
|
|
102
|
+
|
|
79
103
|
### Input data
|
|
80
104
|
|
|
81
105
|
`DMatrix` takes numpy arrays of any numeric dtype and memory layout (a
|
|
@@ -127,7 +151,18 @@ and `callbacks`. Ctrl-C stops training at the end of the current round
|
|
|
127
151
|
and raises `KeyboardInterrupt`. `hessboost.cv` cross-validates over
|
|
128
152
|
shuffled folds, explicit folds, or a scikit-learn splitter; on ranking data
|
|
129
153
|
each fold must hold whole query groups (e.g. `GroupKFold` over the query
|
|
130
|
-
ids). `
|
|
154
|
+
ids). `cv(xgb_model=...)` continues a model in every fold, and
|
|
155
|
+
`cv(refit=True)` also retrains on every row for the chosen round count (the
|
|
156
|
+
best one under early stopping), returning a `CvRefit` with the `history`
|
|
157
|
+
and that `booster`:
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
refit = hessboost.cv(params, dtrain, 500, early_stopping_rounds=20, refit=True)
|
|
161
|
+
refit.history["test-rmse-mean"], refit.num_boost_round
|
|
162
|
+
predictions = refit.booster.predict(X_test)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
`hessboost.train_with_budget(params, dtrain, budget)` trains with one
|
|
131
166
|
fitting budget in place of `eta`, tree limits, and a round count
|
|
132
167
|
(PerpetualBooster's algorithm).
|
|
133
168
|
|
|
@@ -349,6 +384,13 @@ A Boulevard EBM (`{"booster": "ebm", "ebm_boulevard": True}`) additionally
|
|
|
349
384
|
supports confidence bands on its shapes via
|
|
350
385
|
`hessboost.inference.EbmInference.term_bands`.
|
|
351
386
|
|
|
387
|
+
EBMs take eval sets like any booster: `train(..., evals=[(dvalid, "valid")],
|
|
388
|
+
early_stopping_rounds=5)` records the history and `best_score` (classic
|
|
389
|
+
EBMs stop early on it), and `cv` (with `refit=True` too) cross-validates
|
|
390
|
+
them. `cv` refuses `ebm_early_stopping_rounds`, which would stop each fold's
|
|
391
|
+
stages at different rounds; its `early_stopping_rounds` stops on the fold
|
|
392
|
+
means instead.
|
|
393
|
+
|
|
352
394
|
### Boulevard inference
|
|
353
395
|
|
|
354
396
|
Boulevard boosting (`{"booster": "boulevard"}`) samples trees with dropout
|
|
@@ -499,7 +541,10 @@ result = hessboost.cv({"max_depth": 4}, dtrain, 100, folds=splits)
|
|
|
499
541
|
with CatBoost-style ordered target means: a training row's encoding never
|
|
500
542
|
sees its own label. `label=` supplies the target for a multi-target matrix
|
|
501
543
|
or a class's 0/1 indicator. In `cv`, `target_stats=` fits the encoder on
|
|
502
|
-
each fold's training rows only, so no held-out label reaches an encoding
|
|
544
|
+
each fold's training rows only, so no held-out label reaches an encoding
|
|
545
|
+
(`target_stats_label=` supplies its target, split with the folds); with
|
|
546
|
+
`refit=True`, `CvRefit.target_encoder` is the encoder fitted on every row,
|
|
547
|
+
which encodes new data for the refit booster:
|
|
503
548
|
|
|
504
549
|
```python
|
|
505
550
|
from hessboost.target_stats import OrderedTargetEncoder
|
|
@@ -509,8 +554,15 @@ dtrain_encoded, stats = encoder.fit_transform(dtrain, ["city"])
|
|
|
509
554
|
booster = hessboost.train({"max_depth": 4}, dtrain_encoded, 100)
|
|
510
555
|
predictions = booster.predict(stats.transform(X_test))
|
|
511
556
|
result = hessboost.cv({"max_depth": 4}, dtrain, 100, target_stats=["city"], target_encoder=encoder)
|
|
557
|
+
refit = hessboost.cv({"max_depth": 4}, dtrain, 100, target_stats=["city"], refit=True)
|
|
558
|
+
predictions = refit.booster.predict(refit.target_encoder.transform(X_test))
|
|
512
559
|
```
|
|
513
560
|
|
|
561
|
+
`stats.save(path)` / `FittedTargetEncoder.load(path)` (and
|
|
562
|
+
`to_bytes`/`from_bytes`) store the Rust crate's serde JSON, which keeps
|
|
563
|
+
column indices and category codes but not feature names or frame
|
|
564
|
+
categories; pickle the statistics to keep them.
|
|
565
|
+
|
|
514
566
|
### Extra training options
|
|
515
567
|
|
|
516
568
|
Every hessboost training option (`path_smooth`, `extra_trees`,
|
|
@@ -546,7 +598,8 @@ LightGBM's `rank_xendcg` stream.
|
|
|
546
598
|
Unlike XGBoost, which accepts both, hessboost refuses `objective` alongside
|
|
547
599
|
`obj`: drop `objective` from ported `params`; the callback needs no change.
|
|
548
600
|
- `cv` returns a dict of numpy arrays (`test-<metric>-mean`/`-std`) with
|
|
549
|
-
held-out metrics only
|
|
601
|
+
held-out metrics only (or, with `refit=True`, a `CvRefit` holding it and
|
|
602
|
+
the retrained booster); there is no `stratified` or `as_pandas`.
|
|
550
603
|
- `predict` defaults to the iterations through `best_iteration` (XGBoost's
|
|
551
604
|
scikit-learn behavior); pass `iteration_range=(0, 0)` for all. SHAP and
|
|
552
605
|
leaf ranges start at iteration 0; `pred_leaf` defaults to every iteration
|
|
@@ -557,9 +610,11 @@ LightGBM's `rank_xendcg` stream.
|
|
|
557
610
|
instead of predicting on the training device.
|
|
558
611
|
- Model files do not store feature names or categories (pickles do).
|
|
559
612
|
- Not available: `DMatrix` from files or `QuantileDMatrix`, `inplace_predict`
|
|
560
|
-
(`predict` takes arrays directly
|
|
561
|
-
|
|
562
|
-
|
|
613
|
+
(`predict` takes arrays directly, and `predict_row` single rows),
|
|
614
|
+
`Booster.get_dump`/`trees_to_dataframe`/`dump_model` (`model_info()`
|
|
615
|
+
returns the trees as arrays), attributes (`set_attr`), plotting,
|
|
616
|
+
distributed (Dask/Spark) and CUDA training, `approx_contribs`, and
|
|
617
|
+
`strict_shape`.
|
|
563
618
|
|
|
564
619
|
## Development
|
|
565
620
|
|
|
@@ -29,10 +29,15 @@ from hessboost._booster import (
|
|
|
29
29
|
Booster,
|
|
30
30
|
CompactModel,
|
|
31
31
|
Distributions,
|
|
32
|
+
GbLinearInfo,
|
|
32
33
|
GpuModel,
|
|
33
34
|
ImportanceType,
|
|
35
|
+
LinearLeavesInfo,
|
|
34
36
|
ModelFormat,
|
|
37
|
+
ModelInfo,
|
|
35
38
|
ModelSizeReport,
|
|
39
|
+
ShrinkageInfo,
|
|
40
|
+
TreeInfo,
|
|
36
41
|
)
|
|
37
42
|
from hessboost._core import Uncertainty
|
|
38
43
|
from hessboost._exceptions import (
|
|
@@ -44,6 +49,8 @@ from hessboost._exceptions import (
|
|
|
44
49
|
from hessboost._matrix import DMatrix
|
|
45
50
|
from hessboost._training import (
|
|
46
51
|
CustomMetric,
|
|
52
|
+
CvHistory,
|
|
53
|
+
CvRefit,
|
|
47
54
|
EvalsResult,
|
|
48
55
|
Objective,
|
|
49
56
|
TrainingCallback,
|
|
@@ -59,19 +66,26 @@ __all__ = [
|
|
|
59
66
|
"Booster",
|
|
60
67
|
"CompactModel",
|
|
61
68
|
"CustomMetric",
|
|
69
|
+
"CvHistory",
|
|
70
|
+
"CvRefit",
|
|
62
71
|
"DMatrix",
|
|
63
72
|
"Distributions",
|
|
64
73
|
"EvalsResult",
|
|
74
|
+
"GbLinearInfo",
|
|
65
75
|
"GpuModel",
|
|
66
76
|
"HessboostError",
|
|
67
77
|
"ImportanceType",
|
|
68
78
|
"IncompatibleModelError",
|
|
69
79
|
"InvalidDataError",
|
|
80
|
+
"LinearLeavesInfo",
|
|
70
81
|
"ModelFormat",
|
|
71
82
|
"ModelFormatError",
|
|
83
|
+
"ModelInfo",
|
|
72
84
|
"ModelSizeReport",
|
|
73
85
|
"Objective",
|
|
86
|
+
"ShrinkageInfo",
|
|
74
87
|
"TrainingCallback",
|
|
88
|
+
"TreeInfo",
|
|
75
89
|
"Uncertainty",
|
|
76
90
|
"__version__",
|
|
77
91
|
"conformal",
|