Skip to content

Releases: xRiskLab/woeboost

WoeBoost Version 1.2.0

Choose a tag to compare

@xRiskLab xRiskLab released this 02 Oct 16:14
83e0e36
  • Parallel by default: features are binned and transformed on a ThreadPoolExecutor without any configuration (n_tasks=1 restores sequential processing).
  • Faster binning: bin statistics are computed in a single pass (searchsorted + bincount) instead of one mask per bin; fitted bins are unchanged.
  • Feature binning now also runs in parallel (previously only transform did, and only with an explicit executor_cls).
  • n_tasks=None is resolved at fit/transform time from the number of features instead of in __init__.
  • Free-threading detection uses sys._is_gil_enabled(), so it reports the runtime GIL state.
  • Build backend switched to hatchling (previously no [build-system] was declared, so builds fell back to legacy setuptools).
  • Removed requirements.txt (dependencies are managed in pyproject.toml / uv.lock).
  • Moved pydocstyle from runtime to dev dependencies.
  • Removed the freethreaded extra: it only repeated the base dependencies, and free-threaded Python needs no extra packages.
  • Free-threaded CI now runs the test suite on Python 3.13t with the GIL disabled.

v1.1.0

Choose a tag to compare

@xRiskLab xRiskLab released this 16 Sep 18:06

🚀 WoeBoost v1.1.0

Free-threaded Python Support with 3.67× Speedup

  • 3.67× faster training with Python 3.14+freethreaded (real measured performance)
  • Zero configuration - pip install woeboost[freethreaded] and go
  • Automatic detection - WoeBoost auto-detects free-threading and optimizes threads
  • Same results, faster computation - identical convergence, 3.67× speedup
from woeboost import WoeLearner
learner = WoeLearner()
print(f"Free-threading detected: {learner.is_freethreaded}")

Installation:

pip install woeboost[freethreaded]

Tested on: Python 3.14.0a5+freethreaded
Backward compatible ✅

WoeBoost Version 1.0.2

Choose a tag to compare

@xRiskLab xRiskLab released this 22 Mar 19:14

WoeBoost Version 1.0.2

🔄 Key Changes

  • Support for n_tasks with legacy n_threads fallback (deprecated in the future).
  • Updated concurrency support via a callable for (e.g., ThreadPoolExecutor).
  • Type hint improvements.

Full Changelog: v1.0.1...v1.0.2

WoeBoost Version 1.0.1

Choose a tag to compare

@xRiskLab xRiskLab released this 09 Dec 18:09

WoeBoost Version 1.0.0

🔄 Key Changes

  • Enhanced formatting for README.md, including new badges and improved layout.
  • Updated links to ensure compatibility with GitHub and PyPI views.
  • Adjusted figure defaults in feature contributions plots for better rendering in notebooks.
  • Added icons to highlight key features.

📚 Documentation Updates

  • Improved consistency in linking technical notes and module details and update of formulas.

WoeBoost Version 1.0.0

Choose a tag to compare

@xRiskLab xRiskLab released this 08 Dec 17:39

WoeBoost Version 1.0.0

This is the initial release of WoeBoost, a gradient boosting framework leveraging the concept of Weight of Evidence (WOE).

Key Features

  • WoeLearner: Supports feature binning, monotonicity constraints, and WOE transformations.
  • WoeBoostClassifier: Boosted WOE-based scoring with early stopping and deciban outputs.
  • Explainer Tools: Partial Dependence Plots (PDP), evidence analysis, and WOE inference.

Documentation

  • Module-specific documentation (learner.py, classifier.py, explainer.py).
  • Index file for navigation.

Quality Assurance

  • Comprehensive pytest-based tests.
  • Pre-commit hooks for style and consistency.

Installation

pip install woeboost