Skip to content

v0.2.2

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Sep 02:06
· 2 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.2.2
4830610

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 separate label=), with unseen categories encoding to the prior while real nulls stay missing.
  • hessboost.train_with_budget(params, dtrain, budget=...) returns a Booster.
  • 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 a CompactModel with bit-identical predictions (save/load, pickling, feature schema preserved); Booster.size_report() reports compression ratio and reuse factor; new metadata num_trees(), num_outputs, num_targets, num_parallel_tree, base_margins, vector_leaves.

Rust

  • DMatrix::select_rows keeps 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::run applies the same check to every fold before training.
  • OrderedTargetEncoder::fit_transform_with_labels fits 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_model refuses models whose first-tree leaves are not the params' Newton steps on the data (e.g. LightGBM imports, other eta); 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.save no 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)

Misc