Skip to content

Add FastRiskScoreClassifier, Python 3.14 support, and bug fixes

Choose a tag to compare

@csinva csinva released this 06 Oct 00:56
· 61 commits to master since this release
f796864

New

  • FastRiskScoreClassifier: sparse integer risk scores. A few conditions, each worth a small number of points, with a calibrated risk for every total. It fits about 225× faster than FasterRisk by the median, with a lower training loss. See the post.
  • New blog index for the "Our favorite methods" posts.

Compatibility

  • Tested on Python 3.10, 3.13 and 3.14, with the newest numpy, pandas, scikit-learn and numba.
  • MarginalShrinkageLinearModelRegressor is renamed MarginalShrinkageLinearRegressor; the old name still works, with a FutureWarning.
  • Importing SLIMClassifier warns that it is deprecated in favour of FastRiskScoreClassifier.
  • The numba-based models print a one-time notice before their first compile on a machine.

Fixes (from a pre-release bug sweep, each with a regression test)

  • FastSmallTree:
    • time_limit / memory_limit are honoured
    • predictions follow the certified tree in float64
    • exact tie-breaks under balance / costs
  • GPGam: correct predictions for features with a few uneven levels or a heavily tied minimum, and explicit settings are no longer overridden.
  • All models:
    • a refit on a numpy array removes a stale feature_names_in_
    • classifiers reject continuous targets
    • clear errors for single-class targets
  • Older models:
    • TaoTreeRegressor fits again
    • GreedyRuleListClassifier(class_weight=...) takes effect
    • numpy-2 fixes in RF+ and BRL
    • DecisionTreeCCP* construct without arguments
  • Packaging: the license now ships. The package no longer contains docs, notebooks or tests.

Full changes: #306, #307, #308