Skip to content

Survival analysis built on top of scikit-learn

License

Notifications You must be signed in to change notification settings

usamah375/scikit-survival

This branch is 249 commits behind sebp/scikit-survival:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e8df385 · Jul 22, 2023
Aug 20, 2022
Jul 17, 2023
Jun 10, 2023
Jul 16, 2023
Jul 11, 2023
Jul 11, 2023
Nov 29, 2018
Jun 9, 2023
Oct 10, 2020
Jun 10, 2023
Apr 14, 2023
Aug 15, 2019
Jun 28, 2020
Jun 21, 2015
Mar 26, 2023
Feb 26, 2023
Apr 14, 2023
Jul 16, 2023
Jun 10, 2023
Apr 15, 2023

Repository files navigation

License readthedocs.org Digital Object Identifier (DOI)

GitHub Actions Tests Status Windows Build Status on AppVeyor codecov Codacy Badge

scikit-survival

scikit-survival is a Python module for survival analysis built on top of scikit-learn. It allows doing survival analysis while utilizing the power of scikit-learn, e.g., for pre-processing or doing cross-validation.

About Survival Analysis

The objective in survival analysis (also referred to as time-to-event or reliability analysis) is to establish a connection between covariates and the time of an event. What makes survival analysis differ from traditional machine learning is the fact that parts of the training data can only be partially observed – they are censored.

For instance, in a clinical study, patients are often monitored for a particular time period, and events occurring in this particular period are recorded. If a patient experiences an event, the exact time of the event can be recorded – the patient’s record is uncensored. In contrast, right censored records refer to patients that remained event-free during the study period and it is unknown whether an event has or has not occurred after the study ended. Consequently, survival analysis demands for models that take this unique characteristic of such a dataset into account.

Requirements

  • Python 3.8 or later
  • ecos
  • joblib
  • numexpr
  • numpy 1.17.3 or later
  • osqp
  • pandas 1.0.5 or later
  • scikit-learn 1.2
  • scipy 1.3.2 or later
  • C/C++ compiler

Installation

The easiest way to install scikit-survival is to use Anaconda by running:

conda install -c sebp scikit-survival

Alternatively, you can install scikit-survival from source following this guide.

Examples

The user guide provides in-depth information on the key concepts of scikit-survival, an overview of available survival models, and hands-on examples in the form of Jupyter notebooks.

Help and Support

Documentation

Bug reports

  • If you encountered a problem, please submit a bug report.

Questions

  • If you have a question on how to use scikit-survival, please use GitHub Discussions.
  • For general theoretical or methodological questions on survival analysis, please use Cross Validated.

Contributing

New contributors are always welcome. Please have a look at the contributing guidelines on how to get started and to make sure your code complies with our guidelines.

References

Please cite the following paper if you are using scikit-survival.

S. Pölsterl, "scikit-survival: A Library for Time-to-Event Analysis Built on Top of scikit-learn," Journal of Machine Learning Research, vol. 21, no. 212, pp. 1–6, 2020.
@article{sksurv,
  author  = {Sebastian P{\"o}lsterl},
  title   = {scikit-survival: A Library for Time-to-Event Analysis Built on Top of scikit-learn},
  journal = {Journal of Machine Learning Research},
  year    = {2020},
  volume  = {21},
  number  = {212},
  pages   = {1-6},
  url     = {http://jmlr.org/papers/v21/20-729.html}
}

About

Survival analysis built on top of scikit-learn

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 91.8%
  • C++ 4.8%
  • Cython 3.1%
  • Other 0.3%