I’m a researcher at the lab for Artificial Intelligence in Medical Imaging working on machine learning for biomedical applications. My research interests are time-to-event analysis (survival analysis) and using deep learning techniques to learn from non-Euclidean data such as graphs. Previously, I worked at The Institute of Cancer Research, London and was among the winners of the Prostate Cancer DREAM challenge. I’m the author of scikit-survival, a machine learning library for survival analysis built on top of scikit-learn.
PhD in Computer Science, 2016
Technische Universität München
MSc in Bioinformatics, 2011
Ludwig-Maximilians-Universität & Technische Universität München
BSc in Bioinformatics, 2008
Ludwig-Maximilians-Universität & Technische Universität München
Today marks the release of version 0.14.0 of scikit-survival. The biggest change in this release is actually not in the code, but in the documentation. This release features a complete overhaul of the documentation. Most importantly, the documentation has a more modern feel to it, thanks to the visually pleasing pydata Sphinx theme, which also powers pandas.
Moreover, the documentation now contains a User Guide section that bundles several topics surrounding the use of scikit-survival. Some of these were available as separate Jupyter notebooks previously, such as the guide on Evaluating Survival Models. There are two new guides: The first one is on penalized Cox models. It provides a hands-on introduction to Cox’s proportional hazards model with $\ell_2$ (Ridge) and $\ell_1$ (LASSO) penalty. The second guide, is on Gradient Boosted Models and covers how gradient boosting can be used to obtain a non-linear proportional hazards model or a non-linear accelerated failure time model by using regression tree base learners. The second part of this guide covers a variant of gradient boosting that is most suitable for high-dimensional data and is based on component-wise least squares base learners.
To make it easier to get started, all notebooks can now be run in a Jupyter notebook, right from your browser, just by clicking on
Today, I released version 0.13.0 of scikit-survival. Most notably, this release adds sksurv.metrics.brier_score and sksurv.metrics.integrated_brier_score, an updated PEP 517/518 compatible build system, and support for scikit-learn 0.23.
For a full list of changes in scikit-survival 0.13.0, please see the release notes.
Pre-built conda packages are available for Linux, macOS, and Windows via
conda install -c sebp scikit-survival
Alternatively, scikit-survival can be installed from source following these instructions.
A while back, I posted the Survival Analysis for Deep Learning tutorial. This tutorial was written for TensorFlow 1 using the tf.estimators API. The changes between version 1 and the current TensorFlow 2 are quite significant, which is why the code does not run when using a recent TensorFlow version. Therefore, I created a new version of the tutorial that is compatible with TensorFlow 2. The text is basically identical, but the training and evaluation procedure changed.
The complete notebook is available on GitHub, or you can run it directly using Google Colaboratory.
Version 0.12 of scikit-survival adds support for scikit-learn 0.22 and Python 3.8 and comes with two noticeable improvements:
predict_cumulative_hazard_function
and predict_survival_function
if the underlying estimator supports it (see
first example
).For a full list of changes in scikit-survival 0.12, please see the release notes.
Today, I released a new version of scikit-survival which includes an implementation of Random Survival Forests. As it’s popular counterparts for classification and regression, a Random Survival Forest is an ensemble of tree-based learners. A Random Survival Forest ensures that individual trees are de-correlated by 1) building each tree on a different bootstrap sample of the original training data, and 2) at each node, only evaluate the split criterion for a randomly selected subset of features and thresholds. Predictions are formed by aggregating predictions of individual trees in the ensemble.
For a full list of changes in scikit-survival 0.11, please see the release notes.
scikit-survival is a Python module for survival analysis built on top of scikit-learn. It allows doing survival analysis while …