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.yml CI workflows (the latter publishing to PyPI via Trusted Publishing on v* tags).

  • Fixed: pytest is no longer installed as a core runtime dependency; it now lives in the new dev optional-dependency group (along with pytest-cov), alongside a new docs group for building the documentation site.

  • Added [project.urls] (Homepage, Repository, Documentation), PyPI classifiers, and switched to the SPDX license = "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’s return_X_y parameter, and a copy-paste mymodule import 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 via import ogboost; ogboost.__version__. Version is dynamically read from package metadata for consistency with pyproject.toml.

[0.8.1]

  • Fixed numerical overflow warnings in logit link function by replacing manual np.exp() implementation with scipy.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 loglog and cauchit distributions to the LinkFunction class.

  • Renamed the optional module containing the wrapper class StatsModelsOrderedModel from linear to parametric.

  • Updated the license file.

[0.7.0]

  • Added the StatsModelsOrderedModel class, which provides a scikit-learn wrapper for the OrderedModel class from the statsmodels package.

  • 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_cv that prevented using CV-based early stopping with heterogeneous base learners.

[0.6.1]

  • Debugged _fit_cv and plot_loss methods of GradientBoostingOrdinal to 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_state as a parameter in the base learners (switching from hasattr to get_params), as the old method was tricked by sklearn’s inheritance mechanics into thinking estimators such as SVM included random_state as a modifiable parameter.

  • Added a utility function, generate_heterogeneous_learners, to stochastically generate a list of base learners to supply to GradientBoostingOrdinal (heterogeneous boosting ensemble).

  • Edited code examples in README.md to reflect the enhancements to the package.

  • Enhanced load_wine_quality to 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 default base_learner for GradientBoostingOrdinal) to match those in scikit-learn’s GradientBoostingClassifier.

  • Small improvements to the plot_loss method of GradientBoostingOrdinal.

  • Added the Release Notes section to the README.md file.

  • Small edits to the text and code in README.md.

[0.5.5]

  • First public release.