Release Notes#

scikit-survival 0.19.0 (2022-10-23)#

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#

scikit-survival 0.18.0 (2022-08-15)#

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

Package

Minimum Version

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 and predict_cumulative_hazard_function (#268).

Deprecations#

scikit-survival 0.17.2 (2022-04-24)#

This release fixes several issues with packaging scikit-survival.

Bug fixes#

  • Added backward support for gcc-c++ (#255).

  • Do not install C/C++ and Cython source files.

  • Add packaging to build requirements in pyproject.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.

scikit-survival 0.17.1 (2022-03-05)#

This release adds support for Python 3.10.

scikit-survival 0.17.0 (2022-01-09)#

This release adds support for scikit-learn 1.0, which includes support for feature names. If you pass a pandas dataframe to fit, the estimator will set a feature_names_in_ attribute containing the feature names. When a dataframe is passed to predict, it is checked that the column names are consistent with those passed to fit. See the scikit-learn release highlights for details.

Bug fixes#

  • Fix a variety of build problems with LLVM (#243).

Enhancements#

Backwards incompatible changes#

Deprecations#

  • The normalize parameter of sksurv.linear_model.IPCRidge is deprecated and will be removed in a future version. Instead, use a sciki-learn pipeline: make_pipeline(StandardScaler(with_mean=False), IPCRidge()).

scikit-survival 0.16.0 (2021-10-30)#

This release adds support for changing the evaluation metric that is used in estimators’ score method. This is particular useful for hyper-parameter optimization using scikit-learn’s GridSearchCV. You can now use sksurv.metrics.as_concordance_index_ipcw_scorer, sksurv.metrics.as_cumulative_dynamic_auc_scorer, or sksurv.metrics.as_integrated_brier_score_scorer to adjust the score method to your needs. A detailed example is available in the User Guide.

Moreover, this release adds sksurv.ensemble.ExtraSurvivalTrees to fit an ensemble of randomized survival trees, and improves the speed of sksurv.compare.compare_survival() significantly. The documentation has been extended by a section on the time-dependent Brier score.

Bug fixes#

Enhancements#

Documentation#

scikit-survival 0.15.0 (2021-03-20)#

This release adds support for scikit-learn 0.24 and Python 3.9. scikit-survival now requires at least pandas 0.25 and scikit-learn 0.24. Moreover, if sksurv.ensemble.GradientBoostingSurvivalAnalysis. or sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis are fit with loss='coxph', predict_cumulative_hazard_function and predict_survival_function are now available. sksurv.metrics.cumulative_dynamic_auc() now supports evaluating time-dependent predictions, for instance for a sksurv.ensemble.RandomSurvivalForest as illustrated in the User Guide.

Bug fixes#

Enhancements#

Backwards incompatible changes#

scikit-survival 0.14.0 (2020-10-07)#

This release features a complete overhaul of the documentation. It features a new visual design, and the inclusion of several interactive notebooks in the User Guide.

In addition, it includes important bug fixes. It fixes several bugs in sksurv.linear_model.CoxnetSurvivalAnalysis where predict, predict_survival_function, and predict_cumulative_hazard_function returned wrong values if features of the training data were not centered. Moreover, the score function of sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis and sksurv.ensemble.GradientBoostingSurvivalAnalysis will now correctly compute the concordance index if loss='ipcwls' or loss='squared'.

Bug fixes#

Enhancements#

  • Add sksurv.show_versions() that prints the version of all dependencies.

  • Add support for pandas 1.1

  • Include interactive notebooks in documentation on readthedocs.

  • Add user guide on penalized Cox models.

  • Add user guide on gradient boosted models.

scikit-survival 0.13.1 (2020-07-04)#

This release fixes warnings that were introduced with 0.13.0.

Bug fixes#

scikit-survival 0.13.0 (2020-06-28)#

The highlights of this release include the addition of sksurv.metrics.brier_score() and sksurv.metrics.integrated_brier_score() and compatibility with scikit-learn 0.23.

predict_survival_function and predict_cumulative_hazard_function of sksurv.ensemble.RandomSurvivalForest and sksurv.tree.SurvivalTree can now return an array of sksurv.functions.StepFunction, similar to sksurv.linear_model.CoxPHSurvivalAnalysis by specifying return_array=False. This will be the default behavior starting with 0.14.0.

Note that this release fixes a bug in estimating inverse probability of censoring weights (IPCW), which will affect all estimators relying on IPCW.

Enhancements#

Deprecations#

Bug fixes#

scikit-survival 0.12 (2020-04-15)#

This release adds support for scikit-learn 0.22, thereby dropping support for older versions. Moreover, the regularization strength of the ridge penalty in sksurv.linear_model.CoxPHSurvivalAnalysis can now be set per feature. If you want one or more features to enter the model unpenalized, set the corresponding penalty weights to zero. Finally, sklearn.pipeline.Pipeline will now be automatically patched to add support for predict_cumulative_hazard_function and predict_survival_function if the underlying estimator supports it.

Deprecations#

Enhancements#

scikit-survival 0.11 (2019-12-21)#

This release adds sksurv.tree.SurvivalTree and sksurv.ensemble.RandomSurvivalForest, which are based on the log-rank split criterion. It also adds the OSQP solver as option to sksurv.svm.MinlipSurvivalAnalysis and sksurv.svm.HingeLossSurvivalSVM, which will replace the now deprecated cvxpy and cvxopt options in a future release.

This release removes support for sklearn 0.20 and requires sklearn 0.21.

Deprecations#

Enhancements#

Bug fixes#

  • Exclude Cython-generated files from source distribution because they are not forward compatible.

scikit-survival 0.10 (2019-09-02)#

This release adds the ties argument to sksurv.linear_model.CoxPHSurvivalAnalysis to choose between Breslow’s and Efron’s likelihood in the presence of tied event times. Moreover, sksurv.compare.compare_survival() has been added, which implements the log-rank hypothesis test for comparing the survival function of 2 or more groups.

Enhancements#

  • Update API doc of predict function of boosting estimators (#75).

  • Clarify documentation for GradientBoostingSurvivalAnalysis (#78).

  • Implement Efron’s likelihood for handling tied event times.

  • Implement log-rank test for comparing survival curves.

  • Add support for scipy 1.3.1 (#66).

Bug fixes#

scikit-survival 0.9 (2019-07-26)#

This release adds support for sklearn 0.21 and pandas 0.24.

Enhancements#

  • Add reference to IPCRidge (#65).

  • Use scipy.special.comb instead of deprecated scipy.misc.comb.

  • Add support for pandas 0.24 and drop support for 0.20.

  • Add support for scikit-learn 0.21 and drop support for 0.20 (#71).

  • Explain use of intercept in ComponentwiseGradientBoostingSurvivalAnalysis (#68)

  • Bump Eigen to 3.3.7.

Bug fixes#

  • Disallow scipy 1.3.0 due to scipy regression (#66).

scikit-survival 0.8 (2019-05-01)#

Enhancements#

Bug fixes#

scikit-survival 0.7 (2019-02-27)#

This release adds support for Python 3.7 and sklearn 0.20.

Changes:

scikit-survival 0.6 (2018-10-07)#

This release adds support for numpy 1.14 and pandas up to 0.23. In addition, the new class sksurv.util.Surv makes it easier to construct a structured array from numpy arrays, lists, or a pandas data frame.

Changes:

scikit-survival 0.5 (2017-12-09)#

This release adds support for scikit-learn 0.19 and pandas 0.21. In turn, support for older versions is dropped, namely Python 3.4, scikit-learn 0.18, and pandas 0.18.

scikit-survival 0.4 (2017-10-28)#

This release adds sksurv.linear_model.CoxnetSurvivalAnalysis, which implements an efficient algorithm to fit Cox’s proportional hazards model with LASSO, ridge, and elastic net penalty. Moreover, it includes support for Windows with Python 3.5 and later by making the cvxopt package optional.

scikit-survival 0.3 (2017-08-01)#

This release adds sksurv.linear_model.CoxPHSurvivalAnalysis.predict_survival_function() and sksurv.linear_model.CoxPHSurvivalAnalysis.predict_cumulative_hazard_function(), which return the survival function and cumulative hazard function using Breslow’s estimator. Moreover, it fixes a build error on Windows (#3) and adds the sksurv.preprocessing.OneHotEncoder class, which can be used in a scikit-learn pipeline.

scikit-survival 0.2 (2017-05-29)#

This release adds support for Python 3.6, and pandas 0.19 and 0.20.

scikit-survival 0.1 (2016-12-29)#

This is the initial release of scikit-survival. It combines the implementation of survival support vector machines with the code used in the Prostate Cancer DREAM challenge.