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 master (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;
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.
Each individual change should have a link to the pull request after the description of the change.
- Add support for absolute error conformal predictions with lgb.Booster models with the LGBMBoosterAbsoluteErrorConformalPredictor class #23
- Add bandit into build and test github action #22
- Add bandit to test dependencies in
pyproject.toml
#22 - Add badges to
README
#21 - Add new github action to check that
_version.py
andCHANGELOG.rst
files are modified in pull requests to the master branch. This workflow is a slightly modified version of mwcodebase/versioning-checker (source code ) #20
- Rename .github/workflows/python-package.yml to .github/workflows/build-test.yml #22
- Change build-test github action to also run on pushes to master #22
- Change
Python package build and test
workflow to only trigger on pull requests to master #20 - Change logo to; #14
- Add logos; , to
README
and docs #12 - Add changelog into sphinx docs #11
- Add new
ConformalPredictor
abstract base class that all other conformal predictor classes will inherit from #9 - Add _lookup_baseline_interval` method in
ConformalPredictor
which returns thebaseline_interval
attribute but which can be overridden by the split conformal predictor classes or future classes where the baseline interval is not a constant value
- Add _lookup_baseline_interval` method in
- Add new
- Add new tests;
TestConformalPredictionValues
for the model type specificConformalPredictor
subclasses that test (when using a non-trivial model) #9 - The conformal predictor is calibrated at the expected level for different values of alpha
- The conformal predictor gives the expected intervals
- Add new tests;
- Add new
docstrings.combine_split_mixin_docs
function to combine docstring forSplitConformalPredictorMixin
and the model specific classes it will be jointly inherited with #9
- Update changelog to follow structure recommendations from https://keepachangelog.com/ #11
- Change file type of chaneglog to
.rst
#11 - Update
AbsoluteErrorConformalPredictor
andLeafNodeScaledConformalPredictor
classes to inherit fromConformalPredictor
#9 - Remove
predict_with_interval
and _calibrate_interval` methods fromLeafNodeScaledConformalPredictor
class, these are now in theConformalPredictor
class #9 - Refactor
SplitConformalPredictor
intoSplitConformalPredictorMixin
that does not inherit fromLeafNodeScaledConformalPredictor
#9 - Rename
baseline_intervals
attribute tobaseline_interval
- Remove
predict_with_interval
method - Remove
calibrate
method
- Rename
- Refactor
- Revert the
nonconformity.nonconformity_at_alpha
function to usenp.quantile
but withinterpolation="higher"
to select the upper value if the quantile falls between two values #9 - Abstract out calculation of nonconformity scores into a _calculate_nonconformity_scores` method which is implemented in
AbsoluteErrorConformalPredictor
andLeafNodeScaledConformalPredictor
classes #9 - Change
_sum_dict_values
to be a staticmethod ofLeafNodeScaledConformalPredictor
rather than a function inpitci.base
#9 - Change linting, tests and mypy to always run in the github actions pipeline #9
- Renamed
LGBMBoosterLeafNodeSplitConformalPredictor
toLGBMBoosterSplitLeafNodeScaledConformalPredictor
#9 - Renamed
XGBoosterLeafNodeSplitConformalPredictor
toXGBoosterSplitLeafNodeScaledConformalPredictor
#9 - Renamed
get_leaf_node_split_conformal_predictor
toget_split_leaf_node_scaled_conformal_predictor
#9
- Add
train_data
argument to thecalibrate
methods ofXGBoosterLeafNodeScaledConformalPredictor
andXGBSklearnLeafNodeScaledConformalPredictor
classes to allow the user to calibrate the leaf node counts on a different (train) data sample, rather than the sample used to calibrate the interval widths (which shouldn't be the training sample) #3 - Add
LGBMBoosterLeafNodeScaledConformalPredictor
class to provide leaf node count scaled conformal intervals forlgb.Booster
models #4 - Add
sphinx
documentation for package indocs
folder #5 - Add
SplitConformalPredictor
class that allows conformal intervals to be calibrated for different bands of the data based off the scaling factor #6 - Add
XGBoosterLeafNodeSplitConformalPredictor
class that allows split conformal intervals withxgb.Booster
objects where the scaling factor is based off the leaf node counts #6 - Add
LGBMBoosterLeafNodeSplitConformalPredictor
class that allows split conformal intervals withlgb.Booster
objects where the scaling factor is based off the leaf node counts #6 - Consolidate docstrings across inherited classes with new
docstrings
module #7
- Remove
xgboost
and addpandas
torequirements.txt
#4 - Swap project to use
flit
as the package build tool #7 - Change calculation of
alpha
at given quantile to select closest observation if the quantile falls between two values #7
- Add support for
xgb.XGBRegressor
andxgb.XGBClassifier
objects with non scaled nonconformity measure inXGBSklearnAbsoluteErrorConformalPredictor
class #1 - Add support for
xgb.XGBRegressor
andxgb.XGBClassifier
objects with leaf node scaled nonconformity measure inXGBSklearnLeafNodeScaledConformalPredictor
class #1 - Add
dispatches
module with helper functionsget_absolute_error_conformal_predictor
andget_leaf_node_scaled_conformal_predictor
to return correct conformal predictor class given the type of underlying model passed #1
- Change
AbsoluteErrorConformalPredictor
to be abstract base class #1 - Add
XGBoosterAbsoluteErrorConformalPredictor
class to provide non scaled conformal intervals forxgb.Booster
objects, previously theAbsoluteErrorConformalPredictor
class provided this functionality #1 - Change
LeafNodeScaledConformalPredictor
to be abstract base class #1 - Add
XGBoosterLeafNodeScaledConformalPredictor
class to provide leaf node scaled conformal intervals forxgb.Booster
objects, previously theLeafNodeScaledConformalPredictor
class provided this functionality #1
- Add
AbsoluteErrorConformalPredictor
class implementing non scaled conformal intervals forxgb.Booster
objects - Add
LeafNodeScaledConformalPredictor
class implementing conformal intervals scaled by leaf node counts forxgb.Booster
objects