Changelog#

All notable changes to this project beginning with version 1.0.0 are documented in this file. The format is based on Keep a Changelog and we adhere to Semantic Versioning. The source code for all releases is available on GitHub.

You can also subscribe to skpro’s PyPi release.

For planned changes and upcoming releases, see roadmap in the issue tracker.

[2.7.0] - 2024-10-08#

Maintenance release with python 3.13 support.

Also contains:

  • new update unified interface point for probabilistic regressors, to enable online learning and Bayesian updates in models

  • dependency updates

Dependency changes#

  • skpro is now compatible with python 3.13.

  • scikit-base bounds have been updated to >=0.6.1,<0.12.0.

  • polars (data container soft dependency) bounds have been updated to <1.10.0.

  • dead (unimported) soft dependencies have been removed: attrs, tabulate, uncertainties.

Core interface changes#

Probabilistic regressors and time-to-event predictors now have an update method. The update method is the unified interface point for incremental fitting strategies, such as online learning, efficient re-fit strategies, or Bayesian updates.

Whether a non-trivial update method is implemented depends on the specific estimator, this can be inspected via the capability:update tag of the estimator.

Estimators without a dedicated update method, that is, those with capability:update=False, implement the trivial update where no update is performed, with the internal estimator state remaining unchanged.

Enhancements#

  • [ENH] online update capability for probabilistic regressors (#462) @fkiraly

  • [ENH] online refitting strategy after N data points (#469) @fkiraly

  • [ENH] datatypes examples - docstrings, deepcopy (#466) @fkiraly

  • [ENH] sync proba predict utils with sktime (#465) @fkiraly

  • [ENH] minor refactor - remove unnecessary __init__ methods in datatypes module (#475) @fkiraly

Maintenance#

  • [MNT] python 3.13 support, add 3.13 to CI test matrix (#471) @fkiraly

  • [MNT] differential testing - handle non-package changes in pyproject.toml (#472) @fkiraly

  • [MNT] change macos runners to macos-latest version (#477) @fkiraly

  • [MNT] [Dependabot](deps): Update scikit-base requirement from <0.10.0,>=0.6.1 to >=0.6.1,<0.12.0 (#468) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update polars requirement from <1.7.0 to <1.10.0 (#473) @dependabot[bot]

[2.6.0] - 2024-09-08#

Maintenance release with scheduled deprecations and updates.

Dependency changes#

  • numpy bounds have been updated to >=1.21.0,<2.2.

  • scikit-base bounds have been updated to >=0.6.1,<0.10.0.

Enhancements#

  • [ENH] refactor datatypes mtypes - checkers, converters (#392) @fkiraly

  • [ENH] refactor datatypes mtypes - example fixtures (#458) @fkiraly

Maintenance#

  • [MNT] [Dependabot](deps): Update scikit-base requirement from <0.9.0,>=0.6.1 to >=0.6.1,<0.10.0 (#454) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update numpy requirement from <2.1,>=1.21.0 to >=1.21.0,<2.2 (#453) @dependabot[bot]

[2.5.1] - 2024-09-07#

Minor feature and bugfix release.

Dependency changes#

  • polars (data container and parallelization back-end) bounds have been updated to <1.7.0

Enhancements#

Maintenance#

Fixes#

  • [BUG] changelog utility: fix termination condition to retrieve merged PR (#448) @fkiraly

  • [BUG] Update skpro.utils.git_diff to fix issue with encoding (#452) @julian-fong

  • [BUG] fix variance bug in DummyProbaRegressor (#455) @fkiraly

Documentation#

Contributors#

@fkiraly, @julian-fong

[2.5.0] - 2024-08-02#

Maintenance release with scheduled deprecations and updates.

Kindly also note the python 3.8 End-of-life warning below.

Dependency changes#

  • polars (data container soft dependency) bounds have been updated to <1.5.0.

Deprecations and removals#

Python 3.8 End-of-life#

skpro now requires Python version >=3.9. No errors will be raised on Python 3.8, but test coverage and support for Python 3.8 has been dropped.

Kindly note for context: python 3.8 will reach end of life in October 2024, and multiple skpro core dependencies, including scikit-learn, have already dropped support for 3.8.

Probability distributions#

  • In QPD distributions, deprecated parameters dist_shape, version have been removed entirely. Instead of version, users should use base_dist. Instead of dist_shape, users should pass an skpro distribution to base_dist, with the desired shape parameters.

Probabilistic regression#

  • in probabilistic regressor tuners GridSearchCV, RandomizedSearchCV, use of joblib backend specific parameters n_jobs, pre_dispatch have been removed. Users should pass backend parameters via the backend_params parameter instead.

  • in GLMRegressor, parameters have been reordered to be consistent with the docstring, after a deprecation period.

Contents#

  • [MNT] python 3.8 end-of-life - remove 3.8 support and tags (#443) @fkiraly

  • [MNT] 2.5.0 deprecations and change actions (#443) @fkiraly

  • [MNT] ensure CyclicBoosting is consistent with deprecations in QPD_Johnson (#446) @fkiraly

  • [MNT] [Dependabot](deps): Update polars requirement from <1.3.0 to ``<1.5.0``(#442) @dependabot[bot]

  • [MNT] release workflow: Upgrade deprecated pypa action parameter #6878 (#445) @szepeviktor

Contributors#

@fkiraly, @szepviktor

[2.4.2] - 2024-08-02#

Highlights#

Enhancements#

Data types, checks, conversions#

  • [ENH] Syncing datatypes module _check.py and _convert.py with sktime (#432) @julian-fong

Probability distributions#

Probabilistic regression#

Test framework#

Fixes#

Probability distributions#

  • [BUG] Histogram Distribution: address np.broadcast_arrays deprecation of writable return in numpy 2.0.0 (#414) @ShreeshaM07

Maintenance#

  • [MNT] [Dependabot](deps): Update scikit-survival requirement from <0.23.0 to <0.24.0 (#419) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update polars requirement from <0.21.0 to <1.1.0 (#418) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update polars requirement from <1.1.0 to <1.2.0 (#420) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update polars requirement from <1.2.0 to <1.3.0 (#425) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update sphinx-gallery requirement from <0.17.0 to <0.18.0 (#431) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update sphinx requirement from !=7.2.0,<8.0.0 to !=7.2.0,<9.0.0 (#438) @dependabot[bot]

  • [MNT] sync differential testing utilities with sktime (#434) @fkiraly

  • [MNT] fix numpy 2 incompatibility of Pareto distribution (#436) @fkiraly

Contributors#

@fkiraly, @julian-fong, @meraldoantonio, @ShreeshaM07

[2.4.1] - 2024-06-26#

Maintenance hotfix release with scipy 1.14.X compatibility.

[2.4.0] - 2024-06-23#

Maintenance release with numpy 2.0.X compatibility, scheduled deprecations and updates.

Dependency changes#

  • numpy bounds have been updated to >=1.21.0,<2.1.0.

Contents#

  • [MNT] increase numpy bound to numpy < 2.1, numpy 2 compatibility (#393) @fkiraly

  • [MNT] 2.4.0 deprecations and change actions (#404) @fkiraly

[2.3.2] - 2024-06-22#

Highlights#

Enhancements#

Probability distributions#

Probabilistic regression#

  • [ENH] GLM with multiple distributions and link function support (#384) @ShreeshaM07

  • [ENH] interval width and area under calibration curve metrics (#391) @fkiraly

Test framework#

Fixes#

Probability distributions#

  • [BUG] fix test_methods_p logic when shuffle is True (#381) @ShreeshaM07

  • [BUG] ensure index and columns are taken into account in broadcasting if bc_params are set (#403) @fkiraly

Probabilistic regression#

  • [BUG] bugfix when None was specified for max_iter parameter in sklearn regressors (#386) @julian-fong

Survival and time-to-event prediction#

  • [BUG] bugfix on #387 - changed paramset 3 to use ConditionUncensored instead of CoxPH (#388) @julian-fong

Maintenance#

Documentation#

  • [DOC] fix typo in survival models API reference (#368) @fkiraly

  • [DOC] add scipy reference to interfaced distributions (#379) @fkiraly

  • [DOC] in API reference, order distributions by support (#400) @fkiraly

Contributors#

@fkiraly, @julian-fong, @SaiRevanth25, @setoguchi-naoki, @ShreeshaM07, @sukjingitsit

[2.3.1] - 2024-05-26#

Maintenance release with scikit-learn 1.5.X and scikit-base 0.8.X compatibility and minor enhancements.

Dependency changes#

  • scikit-base bounds have been updated to >=0.6.1,<0.9.0.

  • scikit-learn bounds have been updated to >=0.24.0,<1.6.0.

Deprecations and removals#

  • in probabilistic regressor tuners GridSearchCV, RandomizedSearchCV, use of joblib backend specific parameters n_jobs, pre_dispatch has been deprecated, and will be removed in skpro 2.5.0. Users should pass backend parameters via the backend_params parameter instead.

Enhancements#

  • [ENH] make get_packages_with_changed_specs safe to mutation of return (#348) @fkiraly

  • [ENH] EnbPI regressor for conformal prediction intervals (#343) @fkiraly

  • [ENH] improved default function to plot via BaseDistribution.plot, depending on distribution type (#353) @fkiraly

  • [ENH] iid array distribution (#347) @fkiraly

  • [ENH] Correct algorithm in EnbpiRegressor (#351) @fkiraly

  • [ENH] Gamma Distribution (#355) @ShreeshaM07

  • [ENH] Alpha distribution (#356) @SaiRevanth25

Fixes#

  • [BUG] fix test_run_test_for_class test logic (#345) @fkiraly

  • [BUG] fix random_state handling in BootstrapRegressor (#344) @fkiraly

  • [BUG] fix spl index when subsetting Empirical distribution via iat (#352) @fkiraly

Maintenance#

  • [MNT] isolate imports in changelog.py build util (#339) @fkiraly

  • [MNT] remove legacy base modules (#80) @fkiraly

  • [MNT] [Dependabot](deps): Update sphinx-design requirement from <0.6.0 to <0.7.0 (#357) @dependabot[bot]

  • [MNT] [Dependabot](deps): Update scikit-learn requirement from <1.5.0,>=0.24.0 to >=0.24.0,<1.6.0 (#354) @dependabot[bot]

  • [MNT] Update scikit-base requirement from <0.8.0,>=0.6.1 to >=0.6.1,<0.9.0 (#366) @fkiraly

Documentation#

Contributors#

@fkiraly, @SaiRevanth25, @ShreeshaM07

[2.3.0] - 2024-05-16#

Highlights#

  • new tutorial notebooks for survival prediction and probability distributions (#303, #305) @fkiraly

  • interface to ngboost probabilistic regressor and survival predictor (#215, #301, #309, #332) @ShreeshaM07

  • interface to Poisson regressor from sklearn (#213) @nilesh05apr

  • probability distributions rearchitecture, including scalar valued distributions, e.g., Normal(mu=0, sigma=1) - see “core interface changes”

  • probability distributions: illustrative and didactic plotting functionality, e.g., my_normal.plot("pdf") (#275) @fkiraly

  • more distributions: beta, chi-squared, delta, exponential, uniform - @an20805, @malikrafsan, @ShreeshaM07, @sukjingitsit

Core interface changes#

Probability distributions have been rearchitected with API improvements:

  • all changes are fully downwards compatible with the previous API.

  • distributions can now be scalar valued, e.g., Normal(mu=0, sigma=1). More generally, all distributions behave as scalar distributions if index and columns are not passed and all parameters passed are scalar. or scalar-like. In this case, methods such as pdf, cdf or sample will return scalar (float) values instead of pd.DataFrame.

  • ndim and shape - distributions now possess an ndim property, which evaluates to 0 for scalar distributions, and 2 otherwise. The shape property evaluates to the empty tuple for scalar distributions, and to a 2-tuple with the shape for array-like distributions. This is in line with numpy conventions.

  • plot - distributions now have a plot method, which can be used to plot any method of the distribution. The method is called as my_distr.plot("pdf") or my_distribution.plot("cdf"), or similar. If the distribution is scalar, this will create a single matplotlib plot in an ax object. DataFrame-like distributions will create a plot for each marginal component, returning fig with an array of ax objects, of same shape as the distribution object.

  • head, tail - distributions now possess head and tail methods, which return the first and last n rows of the distribution, respectively. This is useful for inspecting the distribution object in a Jupyter notebook, in particular when combined with plot.

  • at, iat - distributions now possess at and iat subsetters, which can be used to subset a DataFrame-like distribution to a scalar distribution at a given integer index or location index, respectively.

  • pdf, pmf - all distributions now possess a pdf and pmf method, for probability density function and probability mass function. These are available for all distributions, continuous, discrete, and mixed. pdf returns the density of the continuous part of the distribution, pmf the mass of the discrete part. Continuous distributions will return 0 for pmf, discrete distributions will return 0 for pdf. Logarithmic versions of these methods are available as log_pdf and log_pmf, these may be more numerically stable.

  • surv, haz - distributions now possess shorthand methods to return survival function evaluates, surv, and hazard function evaluates, haz. These are available for all distributions. In case of mixed distributions, hazard is computed with the continuous part of the distribution.

  • distr:paramtype tag - distributions are now annotated with a new public tag: distr:paramtype indicates whether the distribution is "parametric", "non-parametric", or "composite". Parametric distributions have only numpy array-like or categorical parameters. Non-parametric distributions may have further types of parameters such as data-like, but no distributions. Composite distributions have other distributions as parameters.

  • to_df, get_params_df - parametric distributions now provide methods to_df, get_params_df, which allow to return distribution parameters coerced to DataFrame, or dict of DataFrame, keyed by parameter names, respectively.

  • the extension contract for distributions has been changed to a boilerplate layered design. Extenders will now implement private methods such as _pdf, _cdf, instead of overriding the public interface. This allows for more flexibility in boilerplate design, and ensures more consistent behavior across distributions. The new extension contract is documented in the new skpro extension template, extension_templates/distributions.py.

Deprecations and removals#

  • At version 2.4.0, the bound parameter will be removed from the CyclicBoosting probabilistic supervised regression estimator, and will be replaced by use of lower or upper. To retain previous behaviour, users should replace bound="U" with upper=None and lower=None; bound="L" with upper=None and lower set to the value of the lower bound; and bound="B" with both upper and lower set to the respective values. To silence the warnings and prevent exceptions occurring from 2.4.0, users should not explicitly set bounds, and ensure values for any subsequent parameters are set as keyword arguments, not positional arguments.

Enhancements#

Probability distributions#

  • [ENH] probability distributions - boilerplate refactor (#265) @fkiraly

  • [ENH] probability distributions: convenience feature to coerce index and columns to pd.Index (#276) @fkiraly

  • [ENH] distribution quantile method for scalar distributions (#277) @fkiraly

  • [ENH] systematic suite tests for scalar probability distributions (#278) @fkiraly

  • [ENH] scalar test cases for probability distributions (#279) @fkiraly

  • [ENH] activate tests for distribution base class defaults (#266) @fkiraly

  • [ENH] probability distributions: illustrative and didactic plotting functionality (#275) @fkiraly

  • [ENH] Uniform Continuous distribution (#223) @an20805

  • [ENH] Chi-Squared Distribution (#217) @sukjingitsit

  • [ENH] Adapter for Scipy Distributions (#287) @malikrafsan

  • [ENH] simplify coercion in BaseDistribution._log_pdf and _pdf default (#293) @fkiraly

  • [ENH] Beta Distribution (#298) @malikrafsan

  • [ENH] distributions: pmf and log_pmf method (#295) @fkiraly

  • [ENH] Delta distribution (#299) @fkiraly

  • [ENH] distributions: survival and hazard function and defaults (#294) @fkiraly

  • [ENH] improved Empirical distribution - scalar mode, new API compatibility (#307) @fkiraly

  • [ENH] increase distribution default plot resolution (#308) @fkiraly

  • [ENH] distribution get_params in data frame format (#285) @fkiraly

  • [ENH] head and tail for distribution objects (#310) @fkiraly

  • [ENH] full support of hierarchical MultiIndex index in Empirical distribution, tests (#314) @fkiraly

  • [ENH] at and iat subsetters for distributions (#274) @fkiraly

  • [ENH] Exponential distribution (#325) @ShreeshaM07

  • [ENH] Mixture distribution upgrade - refactor to new extension interface, support scalar case (#315) @fkiraly

  • [ENH] native implementation of Johnson QPD family, explicit pdf (#327) @fkiraly

  • [ENH] improved defaults for BaseDistribution _mean, _var, and _energy_x (#330) @fkiraly

Probabilistic regression#

Survival and time-to-event prediction#

  • [ENH] Delta point prediction baseline regressor (#300) @fkiraly

  • [ENH] Interface NGBSurvival from ngboost (#301) @ShreeshaM07

  • [ENH] in ConditionUncensored reducer, ensure coercion to float of C (#318) @fkiraly

Test framework#

  • [MNT] faster collection of differential tests through caching, test if pyproject change (#296) @fkiraly

Fixes#

Probability distributions#

  • [BUG] bugfixes for distribution base class default methods (#281) @fkiraly

  • [BUG] fix Empirical index to be pd.MultiIndex for hierarchical data index (#286) @fkiraly

  • [BUG] update Johnson QPDistributions with bugfixes and vectorization (cyclic-boosting ver.1.4.0) (#232) @setoguchi-naoki

  • [BUG] BaseDistribution._var: fix missing factor 2 in Monte Carlo variance default method (#331) @fkiraly

Survival and time-to-event prediction#

  • [BUG] fix CoxPH handling of statsmodels status variable (#306) @fkiraly

  • [BUG] fix survival metrics if C_true=None is passed (#316) @fkiraly

Maintenance#

Documentation#

Contributors#

@an20805, @fkiraly, @malikrafsan, @nilesh05apr, @setoguchi-naoki, @ShreeshaM07, @sukjingitsit, @szepeviktor

[2.2.2] - 2024-04-20#

Highlights#

  • lifelines predictive survival regressors are available as skpro estimators: accelerated failure time (Fisk, Log-normal, Weibull), CoxPH variants, Aalen additive model (#247, #258, #260) @fkiraly

  • scikit-survival predictive survival regressors are available as skpro estimators: CoxPH variants, CoxNet, survival tree and forest, survival gradient boosting (#237) @fkiraly

  • GLM regressor using statsmodels GLM, with Gaussian link (#222) @julian-fong

  • various survival type distributions added: log-normal, logistic, Fisk (=log-logistic), Weibull (#218, #241, #242, #259) @bhavikar, @malikrafsan, @fkiraly

  • Poisson distribution added (#226) @fkiraly

Core interface changes#

Probability distributions#

  • Probability distributions (BaseDistribution) now have a len method, which returns the number of number of rows of the distribution, this is the same as the len of a pd.DataFrame returned by sample.

  • the interface now supports discrete distributions and those with integer support. Such distributions implement pmf and log_pmf methods.

Enhancements#

Probability distributions#

Probabilistic regression#

  • [ENH] GLMRegressor using statsmodels GLM with Gaussian link (#222) @julian-fong

  • [ENH] added test parameters for probabilistic metrics (#234) @fkiraly

Survival and time-to-event prediction#

  • [ENH] adapter to scikit-survival, all distributional survival regressors interfaced (#237) @fkiraly

  • [ENH] adapter to lifelines, most distributional survival regressors interfaced (#247) @fkiraly

  • [ENH] log-normal AFT model from lifelines (#258) @fkiraly

  • [ENH] log-logistic/Fisk AFT model from lifelines (#260) @fkiraly

Test framework#

  • [ENH] refactor test scenario creation to be lazy rather than on module load (#245) @fkiraly

Fixes#

Probability distributions#

  • [BUG] bugfixes to QPD distributions - QPD_U, QPD_S (#194) @fkiraly

  • [BUG] fixes to lognormal distribution (#261) @fkiraly

Documentation#

Maintenance#

  • [MNT] fix version pointer in readthedocs json (#225) @fkiraly

  • [MNT] fix broken api source links in latest docs version (#243) @duydl

Contributors#

@bhavikar, @duydl, @fkiraly, @julian-fong, @malikrafsan

[2.2.1] - 2024-03-03#

Minor bugfix and maintenance release.

Contents#

  • [ENH] migrate tests of distribution prediction metrics to skbase class (#208) @fkiraly

  • [BUG] fix dispatching of censoring information in probabilistic metrics (#208) @fkiraly

  • [BUG] fix missing location/scale in TDistribution (#210) @ivarzap

[2.2.0] - 2024-02-08#

Highlights#

Dependency changes#

  • pandas bounds have been updated to >=1.1.0,<2.3.0.

Core interface changes#

BaseObject and base framework#

  • estimators and objects now record author and maintainer information in the new tags "authors" and "maintainers". This is required only for estimators in skpro proper and compatible third party packages. It is also used to generate mini-package headers used in lookup functionality of the skpro webpage.

  • the model_selection and benchmarking utilities now support abstract parallelization backends via the backend and backend_params arguments. This has been standardized to use the same backend options and syntax as the abstract parallelization backend in sktime.

Probabilistic regression#

  • all probabilistic regressors now accept an argument C in fit, to pass censoring information. This is for API compatibility with survival and is ignored when passed to non-survival regressors, corresponding to the naive reduction strategy of “ignoring censoring information”.

  • existing pipelines, tuners and ensemble methods have been extended to support survival prediction - if C if passed, it is passed to the underlying components.

Survival and time-to-event prediction#

  • support for probabilistic survival or time-to-event prediction estimators with right censored data has been introduced. The interface and base class is identical to the tabular probabilistic regression interface, with the addition of a C argument to the fit methods. Regressors that genuinely support survival prediction have the capability: survival tag set to True in their metadata.

  • an extension template for survival prediction has been added to the skpro extension templates, in extension_templates

  • the interface for probabilistic performance metrics has been extended to also accept censoring information, which can be passed via the optional C_true argument, to all performance metrics. Metrics genuinely supporting survival prediction have the capability: survival tag set to True. Other metrics still take the C_true argument, but ignore it. This corresponds to the naive reduction strategy of “ignoring censoring information”.

  • for pipelining and tuning, the existing compositors in model_selection and regression.compose can be used, see above.

  • for benchmarking, the existing benchmarking framework in benchmarking can be used, it has been extended to support survival prediction and censoring information.

Enhancements#

BaseObject and base framework#

  • [ENH] author and maintainer tags, tags documented in regressor extension template (#187) @fkiraly

Probability distributions#

Probabilistic regression#

Survival and time-to-event prediction#

  • [ENH] support for survival/time-to-event prediction, statsmodels Cox PH model (#157) @fkiraly

  • [ENH] survival prediction compositor - reducers to tabular probabilistic regression (#161) @fkiraly

  • [ENH] survival prediction metrics - framework support and tests, SPLL, Harrell C (#198) @fkiraly

Fixes#

Probabilistic regression#

  • [BUG] fix API non-compliance in sklearn variance prediction adapter (#192) @fkiraly

  • [BUG] fix defaulting logic for _predict_interval and _predict_quantiles when only _predict_var is implemented (#191) @fkiraly

  • [BUG] fix CyclicBoosting._predict_quantiles (#195) @fkiraly

  • [BUG] fix fallback for pdfnorm method, add metrics to tests (#204) @fkiraly

Test framework#

  • [BUG] fix lookup for specialized test classes (#189) @fkiraly

Documentation#

Maintenance#

  • [MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.12.0 to 0.12.1 (#183) @dependabot

  • [MNT] skip CyclicBoosting and QPD tests until #189 failures are resolved (#193) @fkiraly

  • [MNT] [Dependabot](deps-dev): Update pandas requirement from <2.2.0,>=1.1.0 to >=1.1.0,<2.3.0 (#182) @dependabot

  • [MNT] [Dependabot](deps): Bump codecov/codecov-action from 3 to 4 by (#201) @dependabot

  • [MNT] [Dependabot](deps): Bump pre-commit/action from 3.0.0 to 3.0.1 (#202) @dependabot

Contributors#

@FelixWick, @fkiraly, @hazrulakmal, @setoguchi-naoki

[2.1.3] - 2023-01-22#

sklearn compatibility update:

  • compatibility with sklearn 1.4.X

  • addition of feature_names_in_ and n_features_in_ default attributes to BaseProbaRegressor, written to self in fit

Dependency changes#

  • sklearn bounds have been updated to <1.4.0,>=0.24.0.

Core interface changes#

Probabilistic regression#

  • probabilistic regressors will now always save attributes feature_names_in_ and n_features_in_ to self in fit. feature_names_in_ is an 1D np.ndarray of feature names seen in fit, n_features_in_ is an int, and equal to len(feature_names_in_).

  • this ensures compatibility with sklearn, where these attributes are expected.

  • the new attributes can also be queried via the existing get_fitted_params interface.

Enhancements#

  • [ENH] in BaseRegressorProba.fit, use "feature_names" metadata field to store feature names and write to self in fit (#180) @dependabot

Maintenance#

  • [MNT] [Dependabot](deps): Bump actions/dependency-review-action from 3 to 4 (#178) @dependabot

  • [MNT] [Dependabot](deps-dev): Update polars requirement from <0.20.0 to <0.21.0 (#176) @dependabot

  • [MNT] [Dependabot](deps-dev): Update sphinx-issues requirement from <4.0.0 to <5.0.0 (#179) @dependabot

  • [MNT] [Dependabot](deps-dev): Update scikit-learn requirement from <1.4.0,>=0.24.0 to >=0.24.0,<1.5.0 (#177) @dependabot

[2.1.2] - 2024-01-07#

Highlights#

  • sklearn based probabilistic regressors - Gaussian processes, Bayesian linear regression (#166) @fkiraly

  • SklearnProbaReg - general interface adapter to sklearn regressors with variance prediction model (#163) @fkiraly

Dependency changes#

  • scikit-base bounds have been updated to <0.8.0,>=0.6.1.

  • polars (data container soft dependency) bounds have been updated to allow python 3.12.

Enhancements#

Data types, checks, conversions#

  • [ENH] n_features and feature_names metadata field for table mtypes (#150) @fkiraly

  • [ENH] check_is_mtype dict type return, improved input check error messages in BaseRegressorProba (#151) @fkiraly

Probability distributions#

  • [ENH] adapter from scipy rv_discrete to skpro Empirical (#155) @fkiraly

Probabilistic regression#

  • [ENH] sklearn wrappers to str-coerce columns of pd.DataFrame before passing (#148) @fkiraly

  • [ENH] clean up copy-paste leftovers in BaseProbaRegressor (#156) @fkiraly

  • [ENH] adapter for sklearn probabilistic regressors (#163) @fkiraly

  • [ENH] add tags to SklearnProbaReg (#168) @fkiraly

  • [ENH] interfacing all concrete sklearn probabilistic regressors (#166) @fkiraly

Test framework#

  • [ENH] scenario tests for mixed pandas column index types (#145) @fkiraly

  • [ENH] scitype inference utility, test class register, test class test condition (#159) @fkiraly

Fixes#

Probabilistic regression#

  • [BUG] in probabilistic regressors, ensure correct index treatment if X: pd.DataFrame and y: np.ndarray are passed (#146) @fkiraly

Documentation#

Maintenance#

  • [MNT] [Dependabot](deps): Bump actions/upload-artifact from 3 to 4 (#154) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/download-artifact from 3 to 4 (#153) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/setup-python from 4 to 5 (#152) @dependabot

  • [MNT] [Dependabot](deps-dev): Update sphinx-gallery requirement from <0.15.0 to <0.16.0 (#149) @dependabot

  • [MNT] [Dependabot](deps-dev): Update scikit-base requirement from <0.7.0,>=0.6.1 to >=0.6.1,<0.8.0 (#169) @dependabot

  • [MNT] adding codecov.yml and turning coverage reports informational (#165) @fkiraly

  • [MNT] handle deprecation of pandas.DataFrame.applymap (#170) @fkiraly

  • [MNT] handle polars deprecations (#171) @fkiraly

[2.1.1] - 2023-11-02#

Highlights#

  • probabilistic regressor: multiple quantile regression (#108) @Ram0nB

  • probabilistic regressor: interface to MapieRegressor from mapie package (#136) @fkiraly

  • framework support for polars via mtypes (#130) @fkiraly

Enhancements#

Data types, checks, conversions#

Probabilistic regression#

  • [ENH] probabilistic regressors - input checks and support for more input types (#129) @fkiraly

  • [ENH] multiple quantile regression (#108) @Ram0nB

  • [ENH] interface MapieRegressor from mapie (#136) @fkiraly

Test framework#

  • [ENH] integrate check_estimator with TestAllEstimators and TestAllRegressors for python command line estimator testing (#138) @fkiraly

  • [ENH] improved conditional testing (#140) @fkiraly

Documentation#

  • [DOC] fix math in plotting docstrings (#121) @fkiraly

  • [DOC] improved probabilistic tabular regressor extension template (#137) @fkiraly

  • [DOC] typo fixes in regression extension template (#139) @fkiraly

Maintenance#

  • [MNT] point readthedocs json switcher variable to GitHub (#125) @fkiraly

  • [MNT] change test OS versions to latest (#126) @fkiraly

Fixes#

  • [BUG] fix test fixture generation logic (#142) @fkiraly

  • [BUG] fix retrieval in all_objects if filter_tags is provided (#141) @fkiraly

Contributors#

@fkiraly, @Ram0nB

[2.1.0] - 2023-10-09#

Python 3.12 compatibility release.

Contents#

  • [MNT] [Dependabot](deps-dev): Update numpy requirement from <1.25,>=1.21.0 to >=1.21.0,<1.27 (#118) @dependabot

  • [MNT] Python 3.12 support - for skpro release 2.1.0 (#109) @fkiraly

[2.0.1] - 2023-10-08#

Release with minor maintenance actions and enhancements.

Enhancements#

  • [ENH] basic “test all estimators” suite (#89) @fkiraly

Documentation#

Maintenance#

  • [MNT] address deprecation of skbase.testing.utils.deep_equals (#111) @fkiraly

  • [MNT] activate dependabot for version updates and maintenance (#110) @fkiraly

  • [MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.9.1 to 0.12.0 (#113) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/dependency-review-action from 1 to 3 (#114) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/checkout from 3 to 4 (#115) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/download-artifact from 2 to 3 (#116) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/upload-artifact from 2 to 3 (#117) @dependabot

[2.0.0] - 2023-09-13#

Re-release of skpro, newly rearchitected using skbase!

Try out skpro v2 on Binder!

Contributions, bug reports, and feature requests are welcome on the issue tracker

or on the community Discord.

Contributors#

@Alex-JG3, @fkiraly, @frthjf

[1.0.1] - 2019-02-18#

First stable release of skpro, last release before hiatus.

[1.0.0b] - 2017-12-08#

First public release (beta) of skpro.