Skip to content

Commit

Permalink
version 0.6.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
paulbkoch committed Mar 16, 2024
1 parent 7c2284a commit ee3b5fe
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 34 deletions.
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,27 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and the versioning is mostly derived from [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [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

## [v0.5.1] - 2024-02-08
### Added
- Added new init parameter: interaction_smoothing_rounds
Expand Down
2 changes: 1 addition & 1 deletion docs/interpret/hyperparameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ guidance: greedy_ratio is a good candidate for hyperparameter tuning as the best
## cyclic_progress
default: 1.0

hyperparameters: [0.0, 0.25, 0.5, 1.0]
hyperparameters: [0.0, 0.5, 1.0]

guidance: cyclic_progress is a good candidate for hyperparameter tuning as the best value is dataset dependent.

Expand Down
2 changes: 1 addition & 1 deletion python/interpret-core/interpret/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# Distributed under the MIT software license

# NOTE: Version is replaced by a regex script.
__version__ = "0.5.1"
__version__ = "0.6.0"
40 changes: 20 additions & 20 deletions python/interpret-core/interpret/glassbox/_ebm/_ebm.py
Original file line number Diff line number Diff line change
Expand Up @@ -2421,18 +2421,18 @@ class ExplainableBoostingClassifier(EBMModel, ClassifierMixin, ExplainerMixin):
Maximum number of leaves allowed in each tree.
monotone_constraints: list of int, default=None
This parameter allows you to specify monotonic constraints for each feature's
relationship with the target variable during model fitting. However, it is
generally recommended to apply monotonic constraints post-fit using the
`monotonize` function rather than setting them during the fitting process.
This recommendation is based on the observation that, during fitting,
the boosting algorithm may compensate for a monotone constraint on one
feature by utilizing another correlated feature, potentially obscuring
This parameter allows you to specify monotonic constraints for each feature's
relationship with the target variable during model fitting. However, it is
generally recommended to apply monotonic constraints post-fit using the
`monotonize` function rather than setting them during the fitting process.
This recommendation is based on the observation that, during fitting,
the boosting algorithm may compensate for a monotone constraint on one
feature by utilizing another correlated feature, potentially obscuring
any monotonic violations.
If you choose to define monotone constraints, `monotone_constraints`
should be a list with a length equal to the number of features.
Each element in the list corresponds to a feature and should take
If you choose to define monotone constraints, `monotone_constraints`
should be a list with a length equal to the number of features.
Each element in the list corresponds to a feature and should take
one of the following values:
- 0: No monotonic constraint is imposed on the corresponding feature's partial response.
Expand Down Expand Up @@ -2742,18 +2742,18 @@ class ExplainableBoostingRegressor(EBMModel, RegressorMixin, ExplainerMixin):
Maximum number of leaves allowed in each tree.
monotone_constraints: list of int, default=None
This parameter allows you to specify monotonic constraints for each feature's
relationship with the target variable during model fitting. However, it is
generally recommended to apply monotonic constraints post-fit using the
`monotonize` function rather than setting them during the fitting process.
This recommendation is based on the observation that, during fitting,
the boosting algorithm may compensate for a monotone constraint on one
feature by utilizing another correlated feature, potentially obscuring
This parameter allows you to specify monotonic constraints for each feature's
relationship with the target variable during model fitting. However, it is
generally recommended to apply monotonic constraints post-fit using the
`monotonize` function rather than setting them during the fitting process.
This recommendation is based on the observation that, during fitting,
the boosting algorithm may compensate for a monotone constraint on one
feature by utilizing another correlated feature, potentially obscuring
any monotonic violations.
If you choose to define monotone constraints, `monotone_constraints`
should be a list with a length equal to the number of features.
Each element in the list corresponds to a feature and should take
If you choose to define monotone constraints, `monotone_constraints`
should be a list with a length equal to the number of features.
Each element in the list corresponds to a feature and should take
one of the following values:
- 0: No monotonic constraint is imposed on the corresponding feature's partial response.
Expand Down
2 changes: 1 addition & 1 deletion python/interpret-core/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from setuptools.command.sdist import sdist

# NOTE: Version is replaced by a regex script.
version = "0.5.1"
version = "0.6.0"


def _copy_native_code_to_setup():
Expand Down
2 changes: 1 addition & 1 deletion python/interpret/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

name = "interpret"
# NOTE: Version is replaced by a regex script.
version = "0.5.1"
version = "0.6.0"
long_description = """
In the beginning machines learned in darkness, and data scientists struggled in the void to explain them.
Expand Down
19 changes: 10 additions & 9 deletions scripts/release_process.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,16 @@
- bdist: interpret-*-py3-none-any.whl
- bdist: interpret_core-*-py3-none-any.whl

- check the docs
- cd <PACKAGE_DOWNLOAD_DIRECTORY>
- unzip the docs.zip file
- open one of the html files and go to the first document in the list
- do a side by side browser comparison to the existing documentation at: https://interpret.ml/docs
- clone the repo: https://github.com/interpretml/docs
- delete all the files, except possibly for ".gitignore" (TODO: can we remove .gitignore even since all the files are uploaded?)
- copy the new files into that repo
- commit changes to the docs repo, BUT DO NOT PUSH YET

- test the bdist:
- open anaconda console window
- cd <PACKAGE_DOWNLOAD_DIRECTORY>
Expand Down Expand Up @@ -76,15 +86,6 @@ set_visualize_provider(InlineProvider())
- upload the R package at <PACKAGE_DOWNLOAD_DIRECTORY> to test on multiple platforms in: https://builder.r-hub.io
- In particular, the "Oracle Developer Studio 12.6" is worth testing as that C++ compiler is picky, and CRAN tests it

- check the docs
- cd <PACKAGE_DOWNLOAD_DIRECTORY>
- unzip the docs.zip file
- open one of the html files and go to the first document in the list
- do a side by side browser comparison to the existing documentation at: https://interpret.ml/docs
- clone the repo: https://github.com/interpretml/docs
- delete all the files, except possibly for ".gitignore" (TODO: can we remove .gitignore even since all the files are uploaded?)
- copy the new files into that repo, BUT DO NOT PUSH YET

- publish on NPM
- cd <PACKAGE_DOWNLOAD_DIRECTORY>
- we can't re-use previously published versions, but the visualization code is likely to remain unchanged, and our
Expand Down
2 changes: 1 addition & 1 deletion shared/vis/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@interpretml/interpret-inline",
"version": "0.5.1",
"version": "0.6.0",
"description": "Interpret inline library for rendering visualizations across all notebook environments.",
"main": "index.js",
"keywords": [],
Expand Down

0 comments on commit ee3b5fe

Please sign in to comment.