Changelog
This changelog follows the great advice from https://keepachangelog.com/.
Each section will have a title of the format X.Y.Z (YYYY-MM-DD) giving the version of the package and the date of release of that version. Unreleased changes i.e. those that have been merged into main (e.g. with a .dev suffix) but which are not yet in a new release (on PyPI) are added to the changelog but with the title X.Y.Z (unreleased). Unreleased sections can be combined when they are released and the date of release added to the title.
Subsections for each version can be one of the following;
Addedfor new features.Changedfor changes in existing functionality.Deprecatedfor soon-to-be removed features.Removedfor now removed features.Fixedfor any bug fixes.Securityin case of vulnerabilities.
Each individual change should have a link to the pull request after the description of the change.
0.3.0 (2024-08-25)
Added
EditableBoosterclass as a way to editlgb.BoostermodelsBoosterStringto help converting back and forth betweenlgb.BoosterandEditableBoosterExamples to docstrings for main functions / classes.
Test documentation examples with
--doctest-modulesintox.
Changed
Restructure modules.
Bump minimum required dependency versions (
pandas:2.2.0,lightgbm:4.5.0,xgboost:2.1.0,scikit-learn:1.5.0).Swap to use
ruffinstead of various other tools.Strengthen
mypysettings and improve type hints.Improve tests.
Tests using to
lightgbmorxgboostare no longer imported if those packages are not installed.Update
decompose_predictionto usepd.concatinstead of depreceatedpd.DataFrame.append.Change
ScikitLearnHistTabularTreesto include the starting value in the predictions of the first tree.
Fixed
Fix
validate_monotonic_constraintsto correctly loop through all trees in the model
0.2.0 (2023-03-13)
Added
XGBoostTabularTreesto holdxgb.Booster.trees_to_dataframeoutput.ParsedXGBoostTabularTreesclass to hold the outout of xgboost model when parsed from text or json file.LightGBMTabularTreesclass to hold output fromlgb.Booster.trees_to_dataframe.ScikitLearnTabularTreesclass to hold tree data fromGradientBoostingClassifierorGradientBoostingRegressorobjects.ScikitLearnHistTabularTreesclass to hold tree data fromHistGradientBoostingClassifierorHistGradientBoostingRegressorobjects.export_tree_dataas the user interface to export tree data for any supported model, dispatching to the correct model specific functionMonotonicConstraintResultsclass to hold outputs fromvalidate_monotonic_constraints.PredictionDecompositionclass to hold the outputs fromdecompose_prediction.ShapleyValuesclass to hold the outputs fromcalculate_shapley_values.github action workflows to run test
coverage,pre-commit,toxand check required files have changed.Docs and
readthedocsconfiguration.pre-commitwithblack,bandit,mypy,flake8,isort,docformatterandpydocstyle.Type hints.
Changed
Change package import name to
tabular_treesfromttrees.Extensive modules restructure and move source code to
srcdirectory.Refactor
xgb.parserand move functionality intoxgboostmodule.Rename
validate_monotonic_constraints_dffunction tovalidate_monotonic_constraints.Refactor
validate_monotonic_constraintsfunction to acceptTabularTreesobjects.Refactor
decompose_predictionfunction to acceptTabularTreesobjects.Rename
shapley_valuesfunction tocalculate_shapley_values.Refactor
calculate_shapley_valuesfunction to acceptTabularTreesobjects.Swap project to use
pyproject.tomlandpoetryas the build tool.LightGBM,Scikit-LearnandXGBoostare now optional extra dependencies.
0.1.4 (2021-02-06)
Added
TabularTreesclass to hold tree data in table format.parse_modelfunction to load anxgboost.Boosterand derive predictions for internal nodes.validate_monotonic_constraints_dffunction to validate monotonic constraints forxgboost.Boosterobjects.decompose_predictionto decompose predictions from anxgboost.Booster.shapley_valuesto calculate shapley values for predictions from anxgboost.Booster.