Skip to main content

Survival analysis built on top of scikit-learn

Project description

License Linux Build Status Windows Build Status on AppVeyor codecov Codacy Badge readthedocs.org Digital Object Identifier (DOI)

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 reliability analysis in engineering) 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.5 or later

  • cvxpy

  • cvxopt

  • numexpr

  • numpy 1.12 or later

  • pandas 0.21 or later

  • scikit-learn 0.22

  • scipy 1.0 or later

  • C/C++ compiler

Installation

The easiest way to get started is to install Anaconda and setup an environment:

conda install -c sebp scikit-survival

Installing from source

First, create a new environment, named sksurv:

python ci/list-requirements.py requirements/dev.txt > /tmp/requirements.txt
conda create -n sksurv -c sebp python=3 --file /tmp/requirements.txt

To work in this environment, activate it as follows:

source activate sksurv

If you are on Windows, run the above command without the source in the beginning.

Once you set up your build environment, install submodules into your local repository:

git submodule update --init

Then compile the C/C++ extensions and install the package by running:

python setup.py install

Alternatively, if you want to use the package without installing it, you can compile the extensions in place by running:

python setup.py build_ext --inplace

To check everything is setup correctly run the test suite by executing:

py.test tests/

Examples

The following examples are available as Jupyter notebook:

Documentation

The source code is thoroughly documented and a HTML version of the API documentation is available at https://scikit-survival.readthedocs.io/en/latest/.

You can generate the documentation yourself using Sphinx 1.4 or later:

cd doc
make html
xdg-open _build/html/index.html

References

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

1. Pölsterl, S., Navab, N., and Katouzian, A., Fast Training of Support Vector Machines for Survival Analysis. Machine Learning and Knowledge Discovery in Databases: European Conference, ECML PKDD 2015, Porto, Portugal, Lecture Notes in Computer Science, vol. 9285, pp. 243-259 (2015)

2. Pölsterl, S., Navab, N., and Katouzian, A., An Efficient Training Algorithm for Kernel Survival Support Vector Machines. 4th Workshop on Machine Learning in Life Sciences, 23 September 2016, Riva del Garda, Italy

3. Pölsterl, S., Gupta, P., Wang, L., Conjeti, S., Katouzian, A., and Navab, N., Heterogeneous ensembles for predicting survival of metastatic, castrate-resistant prostate cancer patients. F1000Research, vol. 5, no. 2676 (2016).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scikit-survival-0.12.0.tar.gz (1.8 MB view details)

Uploaded Source

File details

Details for the file scikit-survival-0.12.0.tar.gz.

File metadata

  • Download URL: scikit-survival-0.12.0.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for scikit-survival-0.12.0.tar.gz
Algorithm Hash digest
SHA256 130024122f95676be8e589c76608f5c8c35a83028b980a540549e9b1134a203c
MD5 5f088223613ab4ccd0dd69e9e48874ef
BLAKE2b-256 5a04f8b7f3ad96c234f853b03292ba73e1a9cc0526ebb087ffb00336fd13e9d3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page