Skip to content

Commit

Permalink
release prep
Browse files Browse the repository at this point in the history
  • Loading branch information
FelixWick committed Dec 27, 2023
1 parent d570d4d commit bdcb3f7
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 4 deletions.
2 changes: 1 addition & 1 deletion cyclic_boosting/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,4 @@
"pipeline_CBGenericClassifier",
]

__version__ = "1.2.5"
__version__ = "1.3.0"
3 changes: 2 additions & 1 deletion docs/source/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ possible to use another loss function (also possible for classification tasks).
An important example for this is optimizing for an arbitrary quantile (e.g.,
the median), aka [quantile regression](https://cyclic-boosting.readthedocs.io/en/latest/cyclic_boosting.html#module-cyclic_boosting.generic_loss).
By means of several estimated quantiles, one can also approximate full
individual probability distributions via [quantile matching](https://cyclic-boosting.readthedocs.io/en/latest/cyclic_boosting.html#module-cyclic_boosting.quantile_matching).
individual probability distributions via [quantile matching](https://cyclic-boosting.readthedocs.io/en/latest/cyclic_boosting.html#module-cyclic_boosting.quantile_matching)
(especially Quantile-Parameterized Distributions).

Classification
--------------
Expand Down
22 changes: 21 additions & 1 deletion docs/source/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,8 @@ CB_est.get_feature_contributions(X_test)
Below you can find an example of a quantile regression model for three
different quantiles, with a subsequent quantile matching (to get a full
individual probability distribution from the estimated quantiles) by means of a
quantile-parameterized distribution for an arbitrary test sample:
Johnson Quantile-Parameterized Distribution (J-QPD) for an arbitrary test
sample:
```python
from cyclic_boosting.pipelines import pipeline_CBMultiplicativeQuantileRegressor
from cyclic_boosting.quantile_matching import J_QPD_S
Expand All @@ -169,3 +170,22 @@ yhat_qhigh = CB_est_qhigh.predict(X_test)
j_qpd_s_42 = J_QPD_S(0.2, yhat_qlow[42], yhat_qmedian[42], yhat_qhigh[42])
yhat_42_percentile95 = j_qpd_s_42.ppf(0.95)
```

There is also a ready-made end-to-end practical training chain, employing
quantile transformations to impose constraints on the target range (for bound
or semi-bound scenarios) and maintain the order of symmetric-percentile triplet
predictions (from an arbitrary quantile regression method, not restricted to
Cyclic Boosting) used for J-QPD:
```python
from cyclic_boosting.pipelines import pipeline_CBAdditiveQuantileRegressor
from cyclic_boosting.quantile_matching import QPD_RegressorChain

est = QPD_RegressorChain(
pipeline_CBAdditiveQuantileRegressor(quantile=0.5),
pipeline_CBAdditiveQuantileRegressor(quantile=0.5),
pipeline_CBAdditiveQuantileRegressor(quantile=0.5),
"S",
)
est.fit(X_train, y)
yhat_qlow, yhat_qmedian, yhat_qhigh, qpd = est.predict(X_test)
```
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "cyclic-boosting"
version = "1.2.5"
version = "1.3.0"
description = "Implementation of Cyclic Boosting machine learning algorithms"
authors = ["Blue Yonder GmbH"]
packages = [{include = "cyclic_boosting"}]
Expand Down

0 comments on commit bdcb3f7

Please sign in to comment.