Releases: interpretml/interpret
Releases · interpretml/interpret
Version 0.6.5
v0.6.5 - 2024-10-23
Changed
- default EBM parameters changed to improve model performance
- switch to using exact versions of exp/log instead of the previously used approximate versions
Fixed
- fix issue where very large feature values fail in the UI PR #581 by @degenfabian
Version 0.6.4
v0.6.4 - 2024-09-28
Added
- support for regularization parameters reg_alpha, and reg_lambda in EBMs
- support for the parameter max_delta_step in EBMs
- improved fitting speed for most of the alternative objectives
Version 0.6.3
v0.6.3 - 2024-08-07
Added
- visualizations for the APRL (Automatic Piecewise Linear Regression) package by @mathias-von-ottenbreit
Changed
- early_stopping_tolerance default changed to 1e-5 to reduce EBMs fitting time slightly
- shuffle initial feature order within each bag and during greedy boosting
Fixed
- fixed numpy 2.0 issue in the Marginal class
Version 0.6.2
v0.6.2 - 2024-06-22
Added
- pass optional kwargs to DecisionTreeClassifier in PR #537 by @busFred
- support for multiclass purification
- support for higher dimensional purification
- allow higher levels of purification than would be supported via the tolerance parameter
Changed
- numpy 2.0 support for EBMs
- update documentation regarding monotonicity in PR #531 by @Krzys25
- moved purification utility from "interpret/glassbox/_ebm/_research" to "interpret.utils"
Fixed
- possible fix for issue #543 where merge_ebms was creating unexpected NaN values
Version 0.6.1
Version 0.6.0
v0.6.0 - 2024-03-16
Added
- 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
Version 0.5.1
v0.5.1 - 2024-02-08
Added
- Added new __init__ parameter: interaction_smoothing_rounds
- Added new __init__ parameter: min_hessian
- synthetic dataset generator (make_synthetic) for testing GAMs and for documentation
Changed
- default parameters have been modified to improve the accuracy of EBMs
- changed boosting internals to use LogitBoost to improve accuracy
- changed interaction detection to use hessians to improve interaction selection
- enabled smoothing_rounds by default to improve the smoothness of EBMs
- added the ability to specify interactions via feature names or negative indexing
- improved the speed of Morris sensitivity and partial dependence
- python 3.12 support for core EBMs. Some of our optional dependencies do not yet support python 3.12 though
- made early stopping more consistent and changed the early_stopping_tolerance to be a percentage
Fixed
- avoid displaying a scroll bar by default in jupyter notebook cells
- removed the dependency on deprecated distutils
Breaking Changes
- changed the internal representation for classifiers that have just 1 class
Version 0.5.0
v0.5.0 - 2023-12-13
Added
- 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
Version 0.4.4
v0.4.4 - 2023-08-26
Added
- added the following model editing functions: copy, remove_terms, remove_features, sweep, scale
- added experimental support for a JSON exporter function: to_json
Version 0.4.3
v0.4.3 - 2023-08-04
Changed
- 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