This release features a complete overhaul of the [documentation](https://scikit-survival.readthedocs.io/en/v0.14.0/index.html). It features a new visual design, and the inclusion of several interactive notebooks in the [User Guide](https://scikit-survival.readthedocs.io/en/v0.14.0/user_guide/index.html).
In addition, it includes important bug fixes. It fixes several bugs in [sksurv.linear_model.CoxnetSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.linear_model.CoxnetSurvivalAnalysis.html#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](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis.html#sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis) and [sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) will now correctly compute the concordance index if `loss='ipcwls'` or `loss='squared'`.
Bug fixes
- [sksurv.column.standardize()](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.column.standardize.html#sksurv.column.standardize) modified data in-place. Data is now always copied.
- [sksurv.column.standardize()](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.column.standardize.html#sksurv.column.standardize) works with integer numpy arrays now.
- [sksurv.column.standardize()](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.column.standardize.html#sksurv.column.standardize) used biased standard deviation for numpy arrays (`ddof=0`), but unbiased standard deviation for pandas objects (`ddof=1`). It always uses `ddof=1` now. Therefore, the output, if the input is a numpy array, will differ from that of previous versions.
- Fixed [sksurv.linear_model.CoxnetSurvivalAnalysis.predict_survival_function()](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.linear_model.CoxnetSurvivalAnalysis.html#sksurv.linear_model.CoxnetSurvivalAnalysis.predict_survival_function) and [sksurv.linear_model.CoxnetSurvivalAnalysis.predict_cumulative_hazard_function()](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.linear_model.CoxnetSurvivalAnalysis.html#sksurv.linear_model.CoxnetSurvivalAnalysis.predict_cumulative_hazard_function), 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`, and `predict_cumulative_hazard_function` will be different to previous versions for non-centered data (139).
- Rescale coefficients of [sksurv.linear_model.CoxnetSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.linear_model.CoxnetSurvivalAnalysis.html#sksurv.linear_model.CoxnetSurvivalAnalysis) if `normalize=True`.
- Fix score function of [sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis.html#sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis) and [sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/v0.14.0/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) if `loss='ipcwls'` or `loss='squared'` is used. Previously, it returned `1.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](https://scikit-survival.readthedocs.io/en/v0.14.0/user_guide/coxnet.html).
- Add user guide on [gradient boosted models](https://scikit-survival.readthedocs.io/en/v0.14.0/user_guide/boosting.html).