Changelog¶
All notable changes to OGBoost are documented here.
[0.8.3]¶
Moved the package’s canonical source to a new dedicated repository, asmahani/ogboost, split out of the private research/manuscript repo. Added a Sphinx documentation site (Furo theme, MyST Markdown, autodoc/autosummary with Napoleon), published to GitHub Pages at https://asmahani.github.io/ogboost/, along with
tests.yml/docs.yml/release.ymlCI workflows (the latter publishing to PyPI via Trusted Publishing onv*tags).Fixed:
pytestis no longer installed as a core runtime dependency; it now lives in the newdevoptional-dependency group (along withpytest-cov), alongside a newdocsgroup for building the documentation site.Added
[project.urls](Homepage, Repository, Documentation), PyPI classifiers, and switched to the SPDXlicense = "MIT"field.Fixed several docstring formatting issues (non-standard section headers, malformed bullet lists, a stray Markdown code fence, a nested list under
load_wine_quality’sreturn_X_yparameter, and a copy-pastemymoduleimport in the module docstring example) that were producing incorrect rendering and, in some cases, breaking a strict Sphinx build.
[0.8.2]¶
Added
__version__attribute to package, accessible viaimport ogboost; ogboost.__version__. Version is dynamically read from package metadata for consistency withpyproject.toml.
[0.8.1]¶
Fixed numerical overflow warnings in logit link function by replacing manual
np.exp()implementation withscipy.special.expit(), which provides better numerical stability for extreme values.
[0.8.0]¶
Improved numerical stability across core methods by adding probability clipping and safeguards against division by zero and log of zero.
Introduced stratified cross-validation early stopping, with smart fallback to regular KFold and enhanced warning handling.
Added robust line search safeguards to prevent infinite loops and improve error handling, especially for unstable base learners.
Expanded testing infrastructure with a new module for CV stratification and improved handling of optional dependencies.
Enhanced documentation and code comments, clarifying new features and robustness improvements.
[0.7.1]¶
Added
loglogandcauchitdistributions to theLinkFunctionclass.Renamed the optional module containing the wrapper class
StatsModelsOrderedModelfromlineartoparametric.Updated the license file.
[0.7.0]¶
Added the
StatsModelsOrderedModelclass, which provides ascikit-learnwrapper for theOrderedModelclass from thestatsmodelspackage.Added support for custom (user-supplied) link functions.
[0.6.3]¶
Improved documentation.
[0.6.2]¶
Added link to package vignette on arxiv to
README.md.Simplified the initialization of fold level models in
_fit_cv.Fixed a bug in
_fit_cvthat prevented using CV-based early stopping with heterogeneous base learners.
[0.6.1]¶
Debugged
_fit_cvandplot_lossmethods ofGradientBoostingOrdinalto produce correct plots of training/validation loss, and loss improvement after each g and theta update when using cross-validation for early stopping.Enhanced docstrings for
plot_loss.
[0.6.0]¶
Improved the logic for detecting
random_stateas a parameter in the base learners (switching fromhasattrtoget_params), as the old method was tricked by sklearn’s inheritance mechanics into thinking estimators such as SVM includedrandom_stateas a modifiable parameter.Added a utility function,
generate_heterogeneous_learners, to stochastically generate a list of base learners to supply toGradientBoostingOrdinal(heterogeneous boosting ensemble).Edited code examples in
README.mdto reflect the enhancements to the package.Enhanced
load_wine_qualityto add option for returning X and y - instead of a single dataframe - for red and white datasets.
[0.5.6]¶
Tweaked the default hyperparameters of
DecisionTreeRegressor(itself the defaultbase_learnerforGradientBoostingOrdinal) to match those in scikit-learn’sGradientBoostingClassifier.Small improvements to the
plot_lossmethod ofGradientBoostingOrdinal.Added the Release Notes section to the
README.mdfile.Small edits to the text and code in
README.md.
[0.5.5]¶
First public release.