Documentation on recommended hyperparameters to help users optimize their models.
Support for monotone_constraints during model fitting, although post-processed monotonization is still suggested/preferred.
The EBMModel class now includes _more_tags for better integration with the scikit-learn API, thanks to contributions from @DerWeh.
Changed
Default max_rounds parameter increased from 5,000 to 25,000, for improved model accuracy.
Numerous code simplifications, additional tests, and enhancements for scikit-learn compatibility, thanks to @DerWeh.
The greedy boosting algorithm has been updated to support variable-length greedy sections, offering more flexibility during model training.
Full compatibility with Python 3.12.
Removal of the DecisionListClassifier from our documentation, as the skope-rules package seems to no longer be actively maintained.
Fixed
The sweep function now properly returns self, correcting an oversight identified by @alvanli.
Default exclude parameter set to None, aligning with scikit-learn's expected defaults, fixed by @DerWeh.
A potential bug when converting features from categorical to continuous values has been addressed.
Updated to handle the new return format for TreeShap in the SHAP 0.45.0 release.
Breaking Changes
replaced the greediness __init__ parameter with greedy_ratio and cyclic_progress parameters for better control of the boosting process
(see documentation for notes on greedy_ratio and cyclic_progress)
replaced breakpoint_iteration_ with best_iteration_, which now contains the number of boosting steps rather than the number of boosting rounds
added support for AVX-512 in PyPI installations to improve fitting speed
introduced an option to disable SIMD optimizations through the debug_mode function in python
exposed public utils.link_func and utils.inv_link functions
Changed
the interpret-core package now installs the dependencies required to build and predict EBMs
by default without needing to specify the [required] pip install flag
experimental/private support for OVR multiclass EBMs
added bagged_intercept_ attribute to store the intercepts for the bagged models
Fixed
resolved an issue in merge_ebms where the merge would fail if all EBMs in the
merge contained features with only one bin (issue #485)
resolved multiple future warnings from other packages
Breaking Changes
changed how monoclassification (degenerate classification with 1 class) is expressed
replaced predict_and_contrib function with simpler eval_terms function that returns
only the per-term contribution values. If you need both the contributions and predictions use:
interpret.utils.inv_link(ebm.eval_terms(X).sum(axis=1) + ebm.intercept_, ebm.link_)
separate to_json into to_jsonable (for python objects) and to_json (for files) functions
create a new link function string for multiclass that is separate from binary classification
for better scikit-learn compliance, removed the decision_function from the ExplainableBoostingRegressor
Training speed improvements due to the use of SIMD on Intel processors in PyPI release
Results may vary, but expect approx 2.75x faster for classification and 1.3x faster for RMSE regression
Changed from using 64-bit floats to using 32-bit floats internally. Regression performed on datasets with large
targets that sum to greater than 3.4E+38 will overflow.
Fixed
Fixed an issue with the monotonize function that would occur when monotonizing a feature with missing values
Resolved issue where excluding the 1st feature would cause an exception