Recent Releases of scikit-survival
scikit-survival - v0.25.0
This release adds support for scikit-learn 1.7 and overhauls the API documentation to improve clarity and consistency.
Enhancements
- Add support for scikit-learn 1.7 (#532).
- Move tox configuration to pyproject.toml.
- Add PEP 735 dependency groups for optional dependencies.
- Modernize C++ syntax in the coxnet model, improving code clarity and maintainability (#526).
- Add license-files field to pyproject.toml (PEP 639).
- Add artifact attestation for sdist and wheel files.
- Update CI infrastructure to use the latest runners and tools, including check-jsonschema, ruff, and uv.
- Update CI infrastructure to use miniforge to avoid licensing issues related to Anaconda’s default channels (#542).
- Add running doctest to CI.
- Bump versions of dependencies on Binder.
Documentation
- Overhaul the entire API documentation for improved clarity, consistency, and user experience. This includes updated docstrings for all major modules, including ensemble, linear_model, svm, tree, metrics, and nonparametric (#539).
- For examples with matplotlib plots, include the plot as a static image in the documentation (#543).
- Clarify what inputs each metric expects and add a graphical overview to Evaluating Survival Models (#535).
- Clarify the calculation of the
deviance_ratio_insksurv.linear_model.CoxnetSurvivalAnalysiswith a detailed mathematical definition (#541). - Standardize the description of the structured survival array
yacross the library. - Clarify that an exception is raised for out-of-range test times when the censoring distribution cannot be estimated (#524).
- Explain how the
alphassequence is automatically generated insksurv.linear_model.CoxnetSurvivalAnalysis. - Fix pandas warnings in example code.
- Update links to external documentation, including scikit-learn and numpy.
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.24.1...v0.25.0
- Python
Published by sebp 10 months ago
scikit-survival - v0.24.1
This release restricts the version of osqp to versions prior to 1.0.0.
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.24.0...v0.24.1
- Python
Published by sebp about 1 year ago
scikit-survival - v0.24.0
This release adds support for scikit-learn 1.6, which includes missing-values support for sksurv.ensemble.ExtraSurvivalTrees. Moreover, the release features sksurv.nonparametric.cumulativeincidencecompeting_risks() which implements a non-parameteric estimator of the cumulative incidence function for competing risks. See the user guide on the analysis of competing risks.
Bug fixes
- In the C++ code of sksurv.linear_model.CoxnetSurvivalAnalysis, set type of n_alphas to VectorType::Index instead of ìnt, because on Windows, int and Eigen’s Index differ in size.
- Fix printing of Python version in sksurv.show_versions().
- Give an error if max_sample is set, but bootstrap is False in sksurv.ensemble.RandomSurvivalForest and sksurv.ensemble.ExtraSurvivalTrees.
Enhancements
- Add sksurv.nonparametric.cumulativeincidencecompeting_risks() to estimate the cumulative incidence function in the case of competing risks (#491, #500).
- Add sksurv.datasets.load_bmt() and sksurv.datasets.load_cgvhd() which are datasets with competing risks (#491, #500).
- Add missing-values support to sksurv.ensemble.ExtraSurvivalTrees (#504).
- Add estimatorssamples property to sksurv.ensemble.RandomSurvivalForest and sksurv.ensemble.ExtraSurvivalTrees.
- Upgrade syntax to Python 3.10.
- Run nbval with Python 3.12, matplotlib 3.9, and seaborn 0.13.
Documentation
- Fix links in documentation.
- Add user guide on the analysis of competing risks.
Backwards incompatible changes
- Support for scikit-learn versions before 1.6.1 has been dropped (#504).
- Support for Python versions before 3.10 has been dropped.
New Contributors
- @mvlvrd made their first contribution in https://github.com/sebp/scikit-survival/pull/491
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.23.1...v0.24.0
- Python
Published by sebp over 1 year ago
scikit-survival - v0.23.1
This release adds support for Python 3.13. The minimum required version for pandas has been bumped to pandas 1.4.0.
Bug fixes
- Add SurvivalAnalysisMixin base class to
sksurv.ensemble.ExtraSurvivalTreesto enable thesksurv.ensemble.ExtraSurvivalTrees.score()method that has been unintentionally removed in 0.23.0 (#488).
Enhancements
- Improve performance of
sksurv.metrics.concordance_index_censored()andsksurv.metrics.concordance_index_ipcw()(#465).
Backwards incompatible changes
- Support for pandas versions before 1.4.0 has been dropped.
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.23.0...v0.23.1
- Python
Published by sebp over 1 year ago
scikit-survival - v0.23.0
This release adds support for scikit-learn 1.4 and 1.5, which includes missing value support for sksurv.ensemble.RandomSurvivalForest.
Moreover, this release fixes critical bugs. When fitting sksurv.tree.SurvivalTree, the sample_weight is now correctly considered when computing the log-rank statistic for each split. This change also affects sksurv.ensemble.RandomSurvivalForest and sksurv.ensemble.ExtraSurvivalTrees which pass sample_weight to the individual trees in the ensemble.
This release fixes a bug in sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis and sksurv.ensemble.GradientBoostingSurvivalAnalysis when dropout is used. Previously, dropout was only applied starting with the third iteration, now dropout is applied in the second iteration too.
Finally, this release adds compatibility with numpy 2.0 and drops support for Python 3.8.
Bug fixes
- Fix issue with dropout in sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis and sksurv.ensemble.GradientBoostingSurvivalAnalysis, where it was only applied starting with the third iteration.
- Fix LogrankCriterion in sksurv.tree.SurvivalTree to handle
sample_weightcorrectly (#464).
Enhancements
- Fix deprecations with pandas 2.2.
- Drop importlib-resources dependency.
- Add support for scikit-learn 1.4 (#441).
- Add
warm_startsupport to sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis. - Add missing values support to sksurv.ensemble.RandomSurvivalForest.
- Add
require_ytag to sksurv.base.SurvivalAnalysisMixin. - Upgrade to ruff 0.4.3 (#456).
- Add support for scikit-learn 1.5 (#461).
Documentation
- Fix sksurv.nonparametric.kaplanmeierestimator() documentation to give correct default value for
conf_type(#430). - Fix allowed values for kernel in sksurv.svm.FastSurvivalSVM and sksurv.svm.MinlipSurvivalAnalysis (#444).
- Fix typo in API doc of sksurv.ensemble.RandomSurvivalForest and sksurv.ensemble.ExtraSurvivalTrees (#446).
- Fix API doc for the
criterionparameter of sksurv.ensemble.GradientBoostingSurvivalAnalysis (#449). - Update links to scipy, pandas and numpy documentation.
- Fix letter of hyper-parameter used in the formula for sksurv.linear_model.IPCRidge (#454).
- Upgrade Sphinx to 7.3 and pydata-sphinx-theme to 0.15 (#455).
Backwards incompatible changes
- Drop support for Python 3.8 (#427).
New Contributors
- @CaderIdris made their first contribution in https://github.com/sebp/scikit-survival/pull/430
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.22.2...v0.23.0
- Python
Published by sebp almost 2 years ago
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 iscategoricaldtype() 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.integratedbrierscore() (#424).
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.22.1...v0.22.2
- Python
Published by sebp over 2 years ago
scikit-survival - v0.22.1
Bug fixes
- Fix error in sksurv.tree.SurvivalTree.fit() if
Xhas missing values and dtype other than float32 (#412).
- Python
Published by sebp over 2 years ago
scikit-survival - 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 lowmemory 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 `predictcumulativehazardfunctionandpredictsurvivalfunction`.
Bug fixes
- Fix issue where an estimator could be fit to data containing negative event times (#410).
Enhancements
- Expand teststacking.py coverage w.r.t. `predictlog_proba` (#380).
- Add
low_memoryoption to sksurv.ensemble.RandomSurvivalForest, sksurv.ensemble.ExtraSurvivalTrees, and sksurv.tree.SurvivalTree. If set, predict computations use less memory, butpredict_cumulative_hazard_functionandpredict_survival_functionare not implemented (#369). - Allow calling sksurv.meta.Stacking.predictcumulativehazard_function() and sksurv.meta.Stacking.predictsurvivalfunction() 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.uniquetimes to API docs.
- Upgrade to Sphinx 6.2.1 and pydatasphinxtheme 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: https://github.com/sebp/scikit-survival/compare/v0.21.0...v0.22.0
- Python
Published by sebp over 2 years ago
scikit-survival - v0.21.0
This is a major release bringing new features and performance improvements.
- sksurv.nonparametric.kaplanmeierestimator() can estimate pointwise confidence intervals by specifying the
conf_typeparameter. - sksurv.ensemble.GradientBoostingSurvivalAnalysis supports early-stopping via the monitor parameter of sksurv.ensemble.GradientBoostingSurvivalAnalysis.fit().
- sksurv.metrics.concordanceindexcensored() 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_functionorpredict_survival_function(#375).
Enhancements
- sksurv.nonparametric.kaplanmeierestimator() and sksurv.nonparametric.CensoringDistributionEstimator support returning confidence intervals by specifying the
conf_typeparameter (#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.concordanceindexcensored() (#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_scoreattribute 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_functionandpredict_survival_functionof 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_functionorpredict_survival_functionwill 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 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
- Python
Published by sebp almost 3 years ago
scikit-survival - 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
normalizeparameter from sksurv.linear_model.IPCRidge.Remove deprecated
X_idx_sortedargument 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: https://github.com/sebp/scikit-survival/compare/v0.19.0.post1...v0.20.0
- Python
Published by sebp about 3 years ago
scikit-survival - 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: https://github.com/sebp/scikit-survival/compare/v0.19.0...v0.19.0.post1
- Python
Published by sebp over 3 years ago
scikit-survival - 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: https://github.com/sebp/scikit-survival/compare/v0.18.0...v0.19.0
- Python
Published by sebp over 3 years ago
scikit-survival - 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_arrayargument to all models providingpredict_survival_functionandpredict_cumulative_hazard_function(#268).
Deprecations
- The
loss_attribute of ComponentwiseGradientBoostingSurvivalAnalysis and GradientBoostingSurvivalAnalysis has been deprecated. - The default for the
max_featuresargument has been changed from'auto'to'sqrt'for RandomSurvivalForest and ExtraSurvivalTrees.'auto'and'sqrt'have the same effect.
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.17.2...v0.18.0
- Python
Published by sebp almost 4 years ago
scikit-survival - 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
packagingto 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 https://github.com/sebp/scikit-survival/pull/255
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.17.1...v0.17.2
- Python
Published by sebp about 4 years ago
scikit-survival - v0.17.1
This release adds support for Python 3.10.
Full Changelog: https://github.com/sebp/scikit-survival/compare/v0.17.0...v0.17.1
- Python
Published by sebp about 4 years ago
scikit-survival - v0.17.0
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
- Add support for
feature_names_in_andn_features_in_to all estimators and transforms. - Add
sksurv.preprocessing.OneHotEncoder.get_feature_names_out. - Update bundeled version of Eigen to 3.3.9.
Backwards incompatible changes
- Drop
min_impurity_splitparameter fromsksurv.ensemble.GradientBoostingSurvivalAnalysis. -
base_estimatorsandmeta_estimatorattributes ofsksurv.meta.Stackingdo not contain fitted models anymore, useestimators_andfinal_estimator_, respectively.
Deprecations
- The
normalizeparameter ofsksurv.linear_model.IPCRidgeis deprecated and will be removed in a future version. Instead, use a sciki-learn pipeline:make_pipeline(StandardScaler(with_mean=False), IPCRidge()).
- Python
Published by sebp over 4 years ago
scikit-survival - v0.16.0
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.asconcordanceindexipcwscorer, sksurv.metrics.ascumulativedynamicaucscorer, or sksurv.metrics.asintegratedbrierscorescorer 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
- Columns are dropped in sksurv.column.encode_categorical() despite
allow_drop=False(#199). - Ensure sksurv.column.categoricaltonumeric() always returns series with int64 dtype.
Enhancements
- Add sksurv.ensemble.ExtraSurvivalTrees ensemble (#195).
- Faster speed for sksurv.compare.compare_survival() (#215).
- Add wrapper classes sksurv.metrics.asconcordanceindexipcwscorer, sksurv.metrics.ascumulativedynamicaucscorer, and sksurv.metrics.asintegratedbrierscorescorer to override the default
scoremethod of estimators (#192). - Remove use of deprecated numpy dtypes.
- Remove use of
inplacein pandas’set_categories.
Documentation
- Remove comments and code suggesting log-transforming times prior to training Survival SVM (#203).
- Add documentation for
max_samplesparameter to sksurv.ensemble.ExtraSurvivalTrees and sksurv.ensemble.RandomSurvivalForest (#217). - Add section on time-dependent Brier score (#220).
- Add section on using alternative metrics for hyper-parameter optimization.
- Python
Published by sebp over 4 years ago
scikit-survival - v0.15.0
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.cumulativedynamicauc now supports evaluating time-dependent predictions, for instance for a sksurv.ensemble.RandomSurvivalForest as illustrated in the User Guide.
Bug fixes
- Allow passing pandas data frames to all
fitandpredictmethods (#148). - Allow sparse matrices to be passed to sksurv.ensemble.GradientBoostingSurvivalAnalysis.predict.
- Fix example in user guide using GridSearchCV to determine alphas for CoxnetSurvivalAnalysis (#186).
Enhancements
- Add score method to sksurv.meta.Stacking, sksurv.meta.EnsembleSelection, and sksurv.meta.EnsembleSelectionRegressor (#151).
- Add support for predict_cumulative_hazard_function and predict_survival_function to sksurv.ensemble.GradientBoostingSurvivalAnalysis. and sksurv.ensemble.GradientBoostingSurvivalAnalysis if model was fit with
loss='coxph'. - Add support for time-dependent predictions to sksurv.metrics.cumulativedynamicauc See the User Guide for an example (#134).
Backwards incompatible changes
- The score method of sksurv.linear_model.IPCRidge, sksurv.svm.FastSurvivalSVM, and sksurv.svm.FastKernelSurvivalSVM (if
rank_ratiois smaller than 1) now converts predictions on log(time) scale to risk scores prior to computing the concordance index. - Support for cvxpy and cvxopt solver in sksurv.svm.MinlipSurvivalAnalysis and sksurv.svm.HingeLossSurvivalSVM has been dropped. The default solver is now ECOS, which was used by cvxpy (the previous default) internally. Therefore, results should be identical.
- Dropped the
presortargument from sksurv.tree.SurvivalTree and sksurv.ensemble.GradientBoostingSurvivalAnalysis. - The
X_idx_sortedargument in sksurv.tree.SurvivalTree.fit has been deprecated in scikit-learn 0.24 and has no effect now. - predict_cumulative_hazard_function and predict_survival_function of sksurv.ensemble.RandomSurvivalForest and sksurv.tree.SurvivalTree now return an array of sksurv.functions.StepFunction objects by default. Use
return_array=Trueto get the old behavior. - Support for Python 3.6 has been dropped.
Increase minimum supported versions of dependencies. We now require:
| Package | Minimum Version | |--------------|-----------------| | Pandas | 0.25.0 | | scikit-learn | 0.24.0 |
- Python
Published by sebp about 5 years ago
scikit-survival - v0.14.0
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
- sksurv.column.standardize() modified data in-place. Data is now always copied.
- sksurv.column.standardize() works with integer numpy arrays now.
- sksurv.column.standardize() used biased standard deviation for numpy arrays (
ddof=0), but unbiased standard deviation for pandas objects (ddof=1). It always usesddof=1now. Therefore, the output, if the input is a numpy array, will differ from that of previous versions. - Fixed sksurv.linearmodel.CoxnetSurvivalAnalysis.predictsurvival_function() and sksurv.linearmodel.CoxnetSurvivalAnalysis.predictcumulativehazardfunction(), which returned wrong values if features of training data were not already centered. This adds an offset_ attribute that accounts for non-centered data and is added to the predicted risk score. Therefore, the outputs of
predict,predict_survival_function, andpredict_cumulative_hazard_functionwill be different to previous versions for non-centered data (#139). - Rescale coefficients of sksurv.linear_model.CoxnetSurvivalAnalysis if
normalize=True. - Fix score function of sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis and sksurv.ensemble.GradientBoostingSurvivalAnalysis if
loss='ipcwls'orloss='squared'is used. Previously, it returned1.0 - true_cindex.
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.
- Python
Published by sebp over 5 years ago
scikit-survival - v0.13.1
This release fixes warnings that were introduced with 0.13.0.
Bug fixes
- Explicitly pass
return_array=Truein sksurv.tree.SurvivalTree.predict to avoid FutureWarning. - Fix error when fitting sksurv.tree.SurvivalTree with non-float dtype for time (#127).
- Fix RuntimeWarning: invalid value encountered in true_divide in sksurv.nonparametric.kaplanmeierestimator.
- Fix PendingDeprecationWarning about use of matrix when fitting sksurv.svm.FastSurvivalSVM if optimizer is
PRSVMorsimple.
- Python
Published by sebp almost 6 years ago
scikit-survival - v0.13.0
The highlights of this release include the addition of sksurv.metrics.brier_score and sksurv.metrics.integratedbrierscore 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
- Make build system compatible with PEP-517/518.
- Added sksurv.metrics.brier_score and sksurv.metrics.integratedbrierscore (#101).
- sksurv.functions.StepFunction can now be evaluated at multiple points in a single call.
- Update documentation on usage of
predict_survival_functionandpredict_cumulative_hazard_function(#118). - The default value of
alpha_min_ratioof sksurv.linear_model.CoxnetSurvivalAnalysis will now depend on then_samples/n_featuresratio. Ifn_samples > n_features, the default value is 0.0001 Ifn_samples <= n_features, the default value is 0.01. - Add support for scikit-learn 0.23 (#119).
Deprecations
predict_survival_functionandpredict_cumulative_hazard_functionof sksurv.ensemble.RandomSurvivalForest and sksurv.tree.SurvivalTree will return an array of sksurv.functions.StepFunction in the future (as sksurv.linear_model.CoxPHSurvivalAnalysis does). For the old behavior, usereturn_array=True.
Bug fixes
- Fix deprecation of importing joblib via sklearn.
- Fix estimation of censoring distribution for tied times with events. When estimating the censoring distribution, by specifying
reverse=Truewhen calling sksurv.nonparametric.kaplanmeierestimator, we now consider events to occur before censoring. For tied time points with an event, those with an event are not considered at risk anymore and subtracted from the denominator of the Kaplan-Meier estimator. The change affects all functions relying on inverse probability of censoring weights, namely: - Throw an exception when trying to estimate c-index from uncomparable data (#117).
- Estimators in
sksurv.svmwill now throw an exception when trying to fit a model to data with uncomparable pairs.
- Python
Published by sebp almost 6 years ago
scikit-survival - v0.12.0
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
- Add scikit-learn's deprecation of
presortin sksurv.tree.SurvivalTree and sksurv.ensemble.GradientBoostingSurvivalAnalysis. - Add warning that default
alpha_min_ratioin sksurv.linear_model.CoxnetSurvivalAnalysis will depend on the ratio of the number of samples to the number of features in the future (#41).
Enhancements
- Add references to API doc of sksurv.ensemble.GradientBoostingSurvivalAnalysis (#91).
- Add support for pandas 1.0 (#100).
- Add
ccp_alphaparameter for Minimal Cost-Complexity Pruning to sksurv.ensemble.GradientBoostingSurvivalAnalysis. - Patch sklearn.pipeline.Pipeline to add support for
predict_cumulative_hazard_functionandpredict_survival_functionif the underlying estimator supports it. - Allow per-feature regularization for sksurv.linear_model.CoxPHSurvivalAnalysis (#102).
- Clarify API docs of sksurv.metrics.concordanceindexcensored (#96).
- Python
Published by sebp about 6 years ago
scikit-survival - v0.11
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
- The
cvxpyandcvxoptoptions forsolverin sksurv.svm.MinlipSurvivalAnalysis and sksurv.svm.HingeLossSurvivalSVM are deprecated and will be removed in a future version. Choosingosqpis the preferred option now.
Enhancements
- Add support for pandas 0.25.
- Add OSQP solver option to sksurv.svm.MinlipSurvivalAnalysis, and sksurv.svm.HingeLossSurvivalSVM which has no additional dependencies.
- Fix issue when using cvxpy 1.0.16 or later.
- Explicitly specify utf-8 encoding when reading README.rst (#89).
- Add sksurv.tree.SurvivalTree and sksurv.ensemble.RandomSurvivalForest (#90).
Bug fixes
- Exclude Cython-generated files from source distribution because they are not forward compatible.
- Python
Published by sebp over 6 years ago
scikit-survival - v0.10
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
- Re-add baselinesurvival and cumbaselinehazard_ attributes to sksurv.linear_model.CoxPHSurvivalAnalysis (#76).
- Python
Published by sebp over 6 years ago
scikit-survival - v0.9
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).
- Python
Published by sebp almost 7 years ago
scikit-survival - v0.8
Enhancements
- Add
sksurv.linear_model.CoxnetSurvivalAnalysis.predict_survival_functionandsksurv.linear_model.CoxnetSurvivalAnalysis.predict_cumulative_hazard_function(#46). - Add
sksurv.nonparametric.SurvivalFunctionEstimatorandsksurv.nonparametric.CensoringDistributionEstimatorthat wrapsksurv.nonparametric.kaplan_meier_estimatorand provide apredict_probamethod for evaluating the estimated function on test data. - Implement censoring-adjusted C-statistic proposed by Uno et al. (2011)
in
sksurv.metrics.concordance_index_ipcw. - Add estimator of cumulative/dynamic AUC of Uno et al. (2007)
in
sksurv.metrics.cumulative_dynamic_auc. - Add flchain dataset (see
sksurv.datasets.load_flchain).
Bug fixes
- The
tied_timereturn value ofsksurv.metrics.concordance_index_censorednow correctly reflects the number of comparable pairs that share the same time and that are used in computing the concordance index. - Fix a bug in
sksurv.metrics.concordance_index_censoredwhere a pair with risk estimates within tolerance was counted both as concordant and tied.
- Python
Published by sebp about 7 years ago
scikit-survival - v0.7
This release adds support for Python 3.7 and sklearn 0.20.
Changes:
* Add support for sklearn 0.20 (#48).
* Migrate to py.test (#50).
* Explicitly request ECOS solver for sksurv.svm.MinlipSurvivalAnalysis and sksurv.svm.HingeLossSurvivalSVM.
* Add support for Python 3.7 (#49).
* Add support for cvxpy >=1.0.
* Add support for numpy 1.15.
- Python
Published by sebp over 7 years ago
scikit-survival - v0.6.0
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:
- Support numpy 1.14 and pandas 0.22, 0.23 (#36).
- Enable support for cvxopt with Python 3.5+ on Windows (requires cvxopt >=1.1.9).
- Add
max_iterparameter tosksurv.svm.MinlipSurvivalAnalysisandsksurv.svm.HingeLossSurvivalSVM. - Fix score function of
sksurv.svm.NaiveSurvivalSVMto use concordance index. sksurv.linear_model.CoxnetSurvivalAnalysisnow throws an exception if coefficients get too large (#47).- Add
sksurv.util.Survclass to ease constructing a structured array (#26).
- Python
Published by sebp over 7 years ago
scikit-survival - v0.5
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.
- Python
Published by sebp over 8 years ago
scikit-survival - v0.4
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.
- Python
Published by sebp over 8 years ago
scikit-survival - v0.3
This release adds predict_survival_function and predict_cumulative_hazard_function to sksurv.linear_model.CoxPHSurvivalAnalysis, 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.
- Python
Published by sebp almost 9 years ago
scikit-survival -
This release adds support for Python 3.6, and pandas 0.19 and 0.20.
- Python
Published by sebp about 9 years ago