·
2 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
hessboost v0.2.2
Patch release: the Python bindings gain target statistics, budget training, and compact models, and approximate online updates get two correctness fixes. No breaking changes.
Full Changelog: v0.2.1...v0.2.2
Highlights Since v0.2.1
Python bindings
hessboost.target_stats:OrderedTargetEncoder/FittedTargetEncoder(fit by column index or name, optional separatelabel=), with unseen categories encoding to the prior while real nulls stay missing.hessboost.train_with_budget(params, dtrain, budget=...)returns aBooster.hessboost.cv(..., target_stats=..., target_encoder=...)fits the encoder on each fold's training rows only; ranking data cross-validates with whole-query folds.Booster.to_compact()returns aCompactModelwith bit-identical predictions (save/load, pickling, feature schema preserved);Booster.size_report()reports compression ratio and reuse factor; new metadatanum_trees(),num_outputs,num_targets,num_parallel_tree,base_margins,vector_leaves.
Rust
DMatrix::select_rowskeeps whole query groups (repeated or omitted groups allowed); a selection that splits, reorders, or interleaves a group is refused instead of silently dropping the groups.CrossValidation::runapplies the same check to every fold before training.OrderedTargetEncoder::fit_transform_with_labelsfits on a separate per-row target without relabeling the matrix;CrossValidation::target_stats(encoder, columns)encodes each fold's test rows from its training rows.- Approximate online mode:
OnlineModel::from_modelrefuses models whose first-tree leaves are not the params' Newton steps on the data (e.g. LightGBM imports, othereta); refreshed margins now follow prediction's fold order, fixing wrong residuals at large intercepts.
Behavior change: code that sliced ranking data mid-group used to get an ungrouped matrix; it now gets an InvalidParameter error.
Bug fixes
CompactModel.saveno longer holds the GIL while copying the serialized model.- An all-null pandas categorical no longer crashes frame re-coding with
IndexError.
Pull Requests by Category
Features
- feat(python): target statistics, budget training, compact models; keep query groups in select_rows (#136)
Bug Fixes
- fix(online): refuse non-Newton first-tree leaves on approximate resume; refresh margins in prediction order (#135)
- fix(python): encode CompactModel bytes without the GIL (#137)