Releases: sebp/scikit-survival
v0.22.2
This release adds support for Python 3.12.
Bug fixes
- Fix invalid escape sequence in Introduction of user guide.
Enhancements
- Mark Cython functions as noexcept (#418).
- Add support for Python 3.12 (#422).
- Do not use deprecated is_categorical_dtype() of Pandas API.
Documentation
- Add section Building Cython Code to contributing guidelines (#379).
- Improve the description of the estimate parameter in sksurv.metrics.brier_score() and sksurv.metrics.integrated_brier_score() (#424).
Full Changelog: v0.22.1...v0.22.2
v0.22.1
v0.22.0
This release adds support for scikit-learn 1.3, which includes missing value support for 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, sksurv.ensemble.ExtraSurvivalTrees, and 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).
Enhancements
- Expand test_stacking.py coverage w.r.t.
predict_log_proba
(#380). - Add
low_memory
option to sksurv.ensemble.RandomSurvivalForest, sksurv.ensemble.ExtraSurvivalTrees, and sksurv.tree.SurvivalTree. If set, predict computations use less memory, butpredict_cumulative_hazard_function
andpredict_survival_function
are not implemented (#369). - Allow calling sksurv.meta.Stacking.predict_cumulative_hazard_function() and sksurv.meta.Stacking.predict_survival_function() if the meta estimator supports it (#388).
- Add support for missing values in sksurv.tree.SurvivalTree based on missing value support in scikit-learn 1.3 (#405).
- Update bundled Eigen to 3.4.0.
Documentation
- Add sksurv.meta.Stacking.unique_times_ to API docs.
- Upgrade to Sphinx 6.2.1 and pydata_sphinx_theme 0.13.3 (#390).
Backwards incompatible changes
-
The
loss_
attribute of sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis and sksurv.ensemble.GradientBoostingSurvivalAnalysis has been removed (#402). -
Support for
max_features='auto'
in sksurv.ensemble.GradientBoostingSurvivalAnalysis and sksurv.tree.SurvivalTree has been removed (#402).
Full Changelog: v0.21.0...v0.22.0
v0.21.0
This is a major release bringing new features and performance improvements.
- sksurv.nonparametric.kaplan_meier_estimator() can estimate pointwise confidence intervals by specifying the
conf_type
parameter. - sksurv.ensemble.GradientBoostingSurvivalAnalysis supports early-stopping via the monitor parameter of sksurv.ensemble.GradientBoostingSurvivalAnalysis.fit().
- 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, sksurv.ensemble.RandomSurvivalForest, or 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() was downcast, resulting in a loss of precision that may lead to duplicate time points (#349).
- Fix inconsistent behavior of evaluating functions returned by
predict_cumulative_hazard_function
orpredict_survival_function
(#375).
Enhancements
- sksurv.nonparametric.kaplan_meier_estimator() and sksurv.nonparametric.CensoringDistributionEstimator support returning confidence intervals by specifying the
conf_type
parameter (#348). - Configure package via pyproject.toml (#347).
- Add support for Python 3.11 (#350).
- Add support for early-stopping to sksurv.ensemble.GradientBoostingSurvivalAnalysis (#354).
- Do not use deprecated pkg_resources API (#353).
- Significantly reduce memory usage of sksurv.metrics.concordance_index_censored() (#362).
- Set criterion attribute in sksurv.tree.SurvivalTree such that sklearn.tree.plot_tree() can be used (#366).
- Significantly improve speed to fit a sksurv.tree.SurvivalTree, sksurv.ensemble.RandomSurvivalForest, or sksurv.ensemble.ExtraSurvivalTrees (#371).
- Expose
_predict_risk_score
attribute in sklearn.pipeline.Pipeline if the final estimator of the pipeline has such property (#374). - Add support for pandas 2.0 (#373).
Documentation
- Fix wrong number of selected features in the guide Introduction to Survival Analysis (#345).
- Fix broken links with nbsphinx 0.9.2 (#367).
Backwards incompatible changes
- The attribute
event_times_
of estimators has been replaced byunique_times_
to clarify that these are all the unique times points, not just the once where an event occurred (#371). - Functions returned by
predict_cumulative_hazard_function
andpredict_survival_function
of sksurv.tree.SurvivalTree, sksurv.ensemble.RandomSurvivalForest, and sksurv.ensemble.ExtraSurvivalTrees are over all unique time points passed as training data, instead of all unique time points where events occurred (#371). - Evaluating a function returned by
predict_cumulative_hazard_function
orpredict_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 atStepFunction.x[0]
will be returned (#375).
New Contributors
- @dor132 made their first contribution in #345
- @cpoerschke made their first contribution in #358
Full Changelog: v0.20.0...v0.21.0
v0.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 sklearn#23462).
- Add positive and random_state parameters to 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. -
Remove deprecated
X_idx_sorted
argument from sksurv.tree.SurvivalTree.fit(). -
Setting
kernel="polynomial"
in sksurv.svm.FastKernelSurvivalSVM, sksurv.svm.HingeLossSurvivalSVM, and sksurv.svm.MinlipSurvivalAnalysis has been replaced withkernel="poly"
.
Full Changelog: v0.19.0.post1...v0.20.0
v0.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: v0.19.0...v0.19.0.post1
v0.19.0
This release adds sksurv.tree.SurvivalTree.apply() and sksurv.tree.SurvivalTree.decision_path(), and support for sparse matrices to sksurv.tree.SurvivalTree. Moreover, it fixes build issues with scikit-learn 1.1.2 and on macOS with ARM64 CPU.
Bug fixes
- Fix build issue with scikit-learn 1.1.2, which is binary-incompatible with previous releases from the 1.1 series.
- Fix build from source on macOS with ARM64 by specifying numpy 1.21.0 as install requirement for that platform (#313).
Enhancements
- sksurv.tree.SurvivalTree: Add sksurv.tree.SurvivalTree.apply() and sksurv.tree.SurvivalTree.decision_path() (#290).
- sksurv.tree.SurvivalTree: Add support for sparse matrices (#290).
Full Changelog: v0.18.0...v0.19.0
v0.18.0
This release adds support for scikit-learn 1.1, which includes more informative error messages.
Support for Python 3.7 has been dropped, and the minimum supported versions of dependencies are updated to
- numpy 1.17.3
- Pandas 1.0.5
- scikit-learn 1.1.0
- scipy 1.3.2
Enhancements
- Add
n_iter_
attribute to all estimators in sksurv.svm (#277). - Add
return_array
argument to all models providing
predict_survival_function
andpredict_cumulative_hazard_function
(#268).
Deprecations
- The
loss_
attribute of ComponentwiseGradientBoostingSurvivalAnalysis and GradientBoostingSurvivalAnalysis has been deprecated. - The default for the
max_features
argument has been changed from'auto'
to'sqrt'
for RandomSurvivalForest and ExtraSurvivalTrees.'auto'
and'sqrt'
have the same effect.
Full Changelog: v0.17.2...v0.18.0
v0.17.2
This release fixes several issues with packaging scikit-survival.
Bug fixes
- Added backward support for gcc-c++ by @navashiva (#255).
- Do not install C/C++ and Cython source files.
- Add
packaging
to build requirements inpyproject.toml
. - Exclude generated API docs from source distribution.
- Add Python 3.10 to classifiers.
Documentation
- Use permutation_importance from sklearn instead of eli5.
- Build documentation with Sphinx 4.4.0.
- Fix missing documentation for classes in
sksurv.meta
.
New Contributors
- @navashiva made their first contribution in #255
Full Changelog: v0.17.1...v0.17.2
v0.17.1
This release adds support for Python 3.10.
Full Changelog: v0.17.0...v0.17.1