Download Latest Version v0.6.0 drop Python 3.9, breaking API changes and enhancements source code.zip (9.3 MB)
Home / v0.6.0
Name Modified Size InfoDownloads / Week
Parent folder
ngboost-0.6.0.dev0-py3-none-any.whl 2026-11-07 55.4 kB
ngboost-0.6.0.dev0.tar.gz 2026-11-07 44.5 kB
ngboost-0.6.0-py3-none-any.whl 2026-11-07 55.3 kB
ngboost-0.6.0.tar.gz 2026-11-07 44.5 kB
README.md 2026-11-07 3.3 kB
v0.6.0 drop Python 3.9, breaking API changes and enhancements source code.tar.gz 2026-11-07 9.3 MB
v0.6.0 drop Python 3.9, breaking API changes and enhancements source code.zip 2026-11-07 9.3 MB
Totals: 7 Items   18.8 MB 0

RELEASE NOTES

Version 0.6.0

Breaking changes

  • Drop support for Python 3.9, which reached end-of-life in October 2025. The minimum supported version is now Python 3.10
  • NGBoost.score now returns the negative of the average scoring rule (the mean log-likelihood for LogScore), so that higher is better as scikit-learn expects. Previously, GridSearchCV and cross_val_score without an explicit scoring argument selected the worst model (issue [#418], PR [#423])
  • Base learners are now seeded from the model random_state, so fits are reproducible and independent of n_jobs. Output for the default base learner shifts relative to 0.5.x (PR [#417])

New features

  • Add optional n_jobs parameter to fit base learners in parallel with threads (PR [#416])
  • Support a distinct base learner for each distribution parameter, including scikit-learn nested parameters and feature importances for all-tree configurations (issue [#338], PR [#411])
  • Add validation_fraction and early_stopping_rounds to NGBClassifier and NGBSurvival for API parity with NGBRegressor (issue [#402], PR [#407])
  • Report fitted status to scikit-learn's check_is_fitted via __sklearn_is_fitted__, fixing NotFittedError in Pipeline.predict on sklearn >= 1.8 (PR [#429])
  • Set scikit-learn classifier metadata on NGBClassifier so that scikit-learn correctly identifies it as a classifier (PR [#413])
  • Handle array-like sample weights positionally and validate them at fit time; weights with wrong length, shape, NaN, or inf now raise ValueError (PR [#425])
  • Document saving and loading models with skops and test the round trip (PR [#427])

Bug fixes

  • Fix the CRPScore metric of Normal, NormalFixedMean, and LogNormal, which was off by a factor of the predicted scale. Fits using CRPScore with these distributions now produce correct natural gradients (issue [#421], PR [#424])
  • Fix the scale gradient of the Laplace CRPScore, which dropped a 0.75 * scale term (PR [#419])
  • Fix censored scores and gradients for Exponential and LogNormal, which swapped censored and observed rows and had sign and extra-term errors (PR [#420])
  • Fix the log-scale Fisher information of TFixedDf and Cauchy, which was off by a factor of 4 * var (PR [#422])
  • Reset validation iteration metadata on refit so that re-calling fit on the same model behaves identically to fitting a fresh one (PR [#426])
  • Keep random_state as given and seed a fresh generator in fit, so that get_params returns the original value and clones behave identically (PR [#417])
  • Replace the deprecated friedman_mse criterion with squared_error for the default tree learner (issue [#408], PR [#409])

Documentation and CI

  • Build the user guide with Jupyter Book 2 in GitHub Actions and deploy on push to master (PR [#428])
  • Remove the old prebuilt docs site generated by jupyter-book 0.x in 2020 (PR [#430])
  • Run user guide notebooks during the docs build with --execute, replacing removed load_boston calls with load_diabetes (PR [#431])
  • Mark observed rows as events in the survival examples (PR [#436])
  • Run the test matrix once per commit and cancel stale PR runs via concurrency groups (PR [#444])
  • Fix scikit-learn wheel resolution on Python 3.14 (PR [#414])
Source: README.md, updated 2026-11-07