Scikit-survival

Latest version: v0.22.2

Safety actively analyzes 621420 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

0.22.2

This release adds support for Python 3.12.

Bug fixes

- Fix invalid escape sequence in [Introduction](https://scikit-survival.readthedocs.io/en/v0.22.2/user_guide/00-introduction.html) of user guide.

Enhancements

- Mark Cython functions as noexcept ([418](https://github.com/sebp/scikit-survival/issues/418)).
- Add support for Python 3.12 ([422](https://github.com/sebp/scikit-survival/issues/422)).
- Do not use deprecated is_categorical_dtype() of Pandas API.

Documentation

- Add section [Building Cython Code](https://scikit-survival.readthedocs.io/en/v0.22.2/contributing.html#building-cython-code) to contributing guidelines ([379](https://github.com/sebp/scikit-survival/issues/379)).
- Improve the description of the estimate parameter in [sksurv.metrics.brier_score()](https://scikit-survival.readthedocs.io/en/v0.22.2/api/generated/sksurv.metrics.brier_score.html#sksurv.metrics.brier_score) and [sksurv.metrics.integrated_brier_score()](https://scikit-survival.readthedocs.io/en/v0.22.2/api/generated/sksurv.metrics.integrated_brier_score.html#sksurv.metrics.integrated_brier_score) ([424](https://github.com/sebp/scikit-survival/issues/424)).

**Full Changelog**: https://github.com/sebp/scikit-survival/compare/v0.22.1...v0.22.2

0.22.1

Bug fixes

- Fix error in [sksurv.tree.SurvivalTree.fit()](https://scikit-survival.readthedocs.io/en/v0.22.1/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree.fit) if `X` has missing values and dtype other than float32 ([412](https://github.com/sebp/scikit-survival/issues/412)).

0.22.0

This release adds support for scikit-learn 1.3, which includes [missing value support](https://scikit-learn.org/1.3/modules/tree.html#tree-missing-value-support) for [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree). Support for previous versions of scikit-learn has been dropped.

Moreover, a low_memory option has been added to [sksurv.ensemble.RandomSurvivalForest](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.ensemble.RandomSurvivalForest.html#sksurv.ensemble.RandomSurvivalForest), [sksurv.ensemble.ExtraSurvivalTrees](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.ensemble.ExtraSurvivalTrees.html#sksurv.ensemble.ExtraSurvivalTrees), and [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree) which reduces the memory footprint of calling predict, but disables the use of `predict_cumulative_hazard_function` and `predict_survival_function`.

Bug fixes

- Fix issue where an estimator could be fit to data containing negative event times ([410](https://github.com/sebp/scikit-survival/issues/410)).

Enhancements

- Expand test_stacking.py coverage w.r.t. `predict_log_proba` ([380](https://github.com/sebp/scikit-survival/issues/380)).
- Add `low_memory` option to [sksurv.ensemble.RandomSurvivalForest](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.ensemble.RandomSurvivalForest.html#sksurv.ensemble.RandomSurvivalForest), [sksurv.ensemble.ExtraSurvivalTrees](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.ensemble.ExtraSurvivalTrees.html#sksurv.ensemble.ExtraSurvivalTrees), and [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree). If set, predict computations use less memory, but `predict_cumulative_hazard_function` and `predict_survival_function` are not implemented ([369](https://github.com/sebp/scikit-survival/issues/369)).
- Allow calling [sksurv.meta.Stacking.predict_cumulative_hazard_function()](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.meta.Stacking.html#sksurv.meta.Stacking.predict_cumulative_hazard_function) and [sksurv.meta.Stacking.predict_survival_function()](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.meta.Stacking.html#sksurv.meta.Stacking.predict_survival_function) if the meta estimator supports it ([388](https://github.com/sebp/scikit-survival/issues/388)).
- Add support for missing values in [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree) based on missing value support in scikit-learn 1.3 ([405](https://github.com/sebp/scikit-survival/issues/405)).
- Update bundled Eigen to 3.4.0.

Documentation

- Add [sksurv.meta.Stacking.unique_times_](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.meta.Stacking.html#sksurv.meta.Stacking.unique_times_) to API docs.
- Upgrade to Sphinx 6.2.1 and pydata_sphinx_theme 0.13.3 ([390](https://github.com/sebp/scikit-survival/issues/390)).

Backwards incompatible changes

- The `loss_` attribute of [sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis.html#sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis) and [sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) has been removed ([402](https://github.com/sebp/scikit-survival/issues/402)).

- Support for `max_features='auto'` in [sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) and [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.22.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree) has been removed ([402](https://github.com/sebp/scikit-survival/issues/402)).

**Full Changelog**: https://github.com/sebp/scikit-survival/compare/v0.21.0...v0.22.0

0.21.0

This is a major release bringing new features and performance improvements.

- [sksurv.nonparametric.kaplan_meier_estimator()](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.nonparametric.kaplan_meier_estimator.html#sksurv.nonparametric.kaplan_meier_estimator) can estimate pointwise confidence intervals by specifying the `conf_type` parameter.
- [sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) supports early-stopping via the monitor parameter of [sksurv.ensemble.GradientBoostingSurvivalAnalysis.fit()](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis.fit).
- [sksurv.metrics.concordance_index_censored()](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.metrics.concordance_index_censored.html#sksurv.metrics.concordance_index_censored) has a significantly reduced memory footprint. Memory usage now scales linear, instead of quadratic, in the number of samples.
- Fitting of [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree), [sksurv.ensemble.RandomSurvivalForest](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.RandomSurvivalForest.html#sksurv.ensemble.RandomSurvivalForest), or [sksurv.ensemble.ExtraSurvivalTrees](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.ExtraSurvivalTrees.html#sksurv.ensemble.ExtraSurvivalTrees) is about 3x faster.
- Finally, the release adds support for Python 3.11 and pandas 2.0.

Bug fixes

- Fix bug where times passed to [sksurv.metrics.brier_score()](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.metrics.brier_score.html#sksurv.metrics.brier_score) was downcast, resulting in a loss of precision that may lead to duplicate time points ([349](https://github.com/sebp/scikit-survival/issues/349)).
- Fix inconsistent behavior of evaluating functions returned by `predict_cumulative_hazard_function` or `predict_survival_function` ([375](https://github.com/sebp/scikit-survival/issues/375)).

Enhancements

- [sksurv.nonparametric.kaplan_meier_estimator()](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.nonparametric.kaplan_meier_estimator.html#sksurv.nonparametric.kaplan_meier_estimator) and [sksurv.nonparametric.CensoringDistributionEstimator](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.nonparametric.CensoringDistributionEstimator.html#sksurv.nonparametric.CensoringDistributionEstimator) support returning confidence intervals by specifying the `conf_type` parameter ([348](https://github.com/sebp/scikit-survival/issues/348)).
- Configure package via pyproject.toml ([347](https://github.com/sebp/scikit-survival/issues/347)).
- Add support for Python 3.11 ([350](https://github.com/sebp/scikit-survival/issues/350)).
- Add support for early-stopping to [sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) ([354](https://github.com/sebp/scikit-survival/issues/354)).
- Do not use deprecated pkg_resources API ([353](https://github.com/sebp/scikit-survival/issues/353)).
- Significantly reduce memory usage of [sksurv.metrics.concordance_index_censored()](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.metrics.concordance_index_censored.html#sksurv.metrics.concordance_index_censored) ([362](https://github.com/sebp/scikit-survival/issues/362)).
- Set criterion attribute in [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree) such that [sklearn.tree.plot_tree()](https://scikit-learn.org/1.2/modules/generated/sklearn.tree.plot_tree.html#sklearn.tree.plot_tree) can be used ([366](https://github.com/sebp/scikit-survival/issues/366)).
- Significantly improve speed to fit a [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree), [sksurv.ensemble.RandomSurvivalForest](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.RandomSurvivalForest.html#sksurv.ensemble.RandomSurvivalForest), or [sksurv.ensemble.ExtraSurvivalTrees](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.ExtraSurvivalTrees.html#sksurv.ensemble.ExtraSurvivalTrees) ([371](https://github.com/sebp/scikit-survival/issues/371)).
- Expose `_predict_risk_score` attribute in [sklearn.pipeline.Pipeline](https://scikit-learn.org/1.2/modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline) if the final estimator of the pipeline has such property ([374](https://github.com/sebp/scikit-survival/issues/374)).
- Add support for pandas 2.0 ([373](https://github.com/sebp/scikit-survival/issues/373)).

Documentation

- Fix wrong number of selected features in the guide [Introduction to Survival Analysis](https://scikit-survival.readthedocs.io/en/v0.21.0/user_guide/00-introduction.html) ([#345](https://github.com/sebp/scikit-survival/issues/345)).
- Fix broken links with nbsphinx 0.9.2 ([367](https://github.com/sebp/scikit-survival/issues/367)).

Backwards incompatible changes

- The attribute `event_times_` of estimators has been replaced by `unique_times_` to clarify that these are all the unique times points, not just the once where an event occurred ([371](https://github.com/sebp/scikit-survival/issues/371)).
- Functions returned by `predict_cumulative_hazard_function` and `predict_survival_function` of [sksurv.tree.SurvivalTree](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree), [sksurv.ensemble.RandomSurvivalForest](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.RandomSurvivalForest.html#sksurv.ensemble.RandomSurvivalForest), and [sksurv.ensemble.ExtraSurvivalTrees](https://scikit-survival.readthedocs.io/en/v0.21.0/api/generated/sksurv.ensemble.ExtraSurvivalTrees.html#sksurv.ensemble.ExtraSurvivalTrees) are over all unique time points passed as training data, instead of all unique time points where events occurred ([371](https://github.com/sebp/scikit-survival/issues/371)).
- Evaluating a function returned by `predict_cumulative_hazard_function` or `predict_survival_function` will no longer raise an exception if the specified time point is smaller than the smallest time point observed during training. Instead, the value at `StepFunction.x[0]` will be returned ([375](https://github.com/sebp/scikit-survival/issues/375)).

New Contributors
* dor132 made their first contribution in https://github.com/sebp/scikit-survival/pull/345
* cpoerschke made their first contribution in https://github.com/sebp/scikit-survival/pull/358

**Full Changelog**: https://github.com/sebp/scikit-survival/compare/v0.20.0...v0.21.0

0.20.0

This release adds support for scikit-learn 1.2 and drops support for previous versions.

Enhancements

- Raise more informative error messages when a parameter does not have a valid type/value (see [sklearn23462](https://github.com/scikit-learn/scikit-learn/issues/23462)).
- Add positive and random_state parameters to [sksurv.linear_model.IPCRidge](https://scikit-survival.readthedocs.io/en/v0.20.0/api/generated/sksurv.linear_model.IPCRidge.html#sksurv.linear_model.IPCRidge).

Documentation

- Update API docs based on scikit-learn 1.2 (where applicable).

Backwards incompatible changes

- To align with the scikit-learn API, many parameters of estimators must be provided with their names, as keyword arguments, instead of positional arguments.

- Remove deprecated `normalize` parameter from [sksurv.linear_model.IPCRidge](https://scikit-survival.readthedocs.io/en/v0.20.0/api/generated/sksurv.linear_model.IPCRidge.html#sksurv.linear_model.IPCRidge).

- Remove deprecated `X_idx_sorted` argument from [sksurv.tree.SurvivalTree.fit()](https://scikit-survival.readthedocs.io/en/v0.20.0/api/generated/sksurv.tree.SurvivalTree.html#sksurv.tree.SurvivalTree.fit).

- Setting `kernel="polynomial"` in [sksurv.svm.FastKernelSurvivalSVM](https://scikit-survival.readthedocs.io/en/v0.20.0/api/generated/sksurv.svm.FastKernelSurvivalSVM.html#sksurv.svm.FastKernelSurvivalSVM), [sksurv.svm.HingeLossSurvivalSVM](https://scikit-survival.readthedocs.io/en/v0.20.0/api/generated/sksurv.svm.HingeLossSurvivalSVM.html#sksurv.svm.HingeLossSurvivalSVM), and [sksurv.svm.MinlipSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.20.0/api/generated/sksurv.svm.MinlipSurvivalAnalysis.html#sksurv.svm.MinlipSurvivalAnalysis) has been replaced with `kernel="poly"`.

**Full Changelog**: https://github.com/sebp/scikit-survival/compare/v0.19.0.post1...v0.20.0

0.19.0.post1

This release raises the install requirement of scikit-learn to 1.1.2 to avoid binary incompatibility with previous releases (316).

**Full Changelog**: https://github.com/sebp/scikit-survival/compare/v0.19.0...v0.19.0.post1

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.