Skip to main content

ICARE models

Project description

ICARE

Rebaud, L., Escobar, T., Khalid, F., Girum, K., Buvat, I.: Head and Neck Tumor and Lymph Node 
Segmentation and Outcome Prediction from 18F-FDG PET/CT Images: Simplicity is All You Need. 
In: Lecture Notes in Computer Science (LNCS) Challenges (in press)

This package contains the Individual Coefficient Approximation for Risk Estimation (ICARE) survival model.

For ensembling strategies, it also includes a dedicated bagging aggregator.

Description

The Individual Coefficient Approximation for Risk Estimation (ICARE) survival model use a minimal learning strategy to reduce to risk of overfitting on the often noisy and censored survival data. To do so:

  • drop highly correlated features
  • for each feature:
    • evaluate feature sign in univariate
    • normalize the feature
    • multiply the feature by its sign
  • the prediction is computed with the mean of all signed features

This makes the model more robust to overfitting. It also makes it resilient to the curse of dimensionality. We hypothesize that it is better to have too many features than too few for this model. This algorithm is implemented by the IcareSurv estimator in this package.

To improve the performances, this model can be bagged. The package provide BaggedIcareSurv estimator which does the ensembling of multiple IcareSurv estimators.

The models make predictions that are anti-concordants with the target. For instance, if the target is the survival in days since baseline, the prediction corresonds to the ranking risk of death.

Getting Started

Dependencies

  • Python 3.6 or later
  • scikit-survival

Installing

  • Via PyPI:
pip install icare

or via GitHub

pip install git+https://github.com/Lrebaud/ICARE.git

Utilisation

The model is used like any other scikit-learn estimator:

from sksurv import datasets
from sksurv.preprocessing import OneHotEncoder
from icare.metrics import harrell_cindex
from icare.survival import IcareSurv, BaggedIcareSurv


X, y = datasets.load_veterans_lung_cancer()
X = OneHotEncoder().fit_transform(X)

model = IcareSurv()
model.fit(X, y)
pred = model.predict(X)
print(pred[:5])
harrell_cindex(y, pred)

It can be used with all scikit-learn function:

from sklearn.model_selection import cross_val_score, ShuffleSplit

model = IcareSurv()
score = cross_val_score(model, X, y,
                        cv=ShuffleSplit(n_splits=20, test_size=.25),
                        n_jobs=-1,
                        scoring=harrell_cindex_scorer).mean()

If you are working with a censored target, you need to create a structured array containing both the time and the censoring:

from sksurv.util import Surv
y = Surv.from_arrays(event=np.array(event_happened).astype('bool'),
                     time=time)

Authors

Louis Rebaud : louis.rebaud[at]gmail.com

Version History

  • 0.0.1
    • Initial Release

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgements

This package was created as a part of the HEad and neCK TumOR segmentation and outcome prediction in PET/CT images challenge, 3rd edition (HECKTOR 2022) and presented by Louis Rebaud and Thibault Escobar at the 25th international conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI) congress in Singapore.

Citation

If you use this package for your research, please cite the following paper:

Rebaud, L., Escobar, T., Khalid, F., Girum, K., Buvat, I.: Head and Neck Tumor and Lymph Node 
Segmentation and Outcome Prediction from 18F-FDG PET/CT Images: Simplicity is All You Need. 
In: Lecture Notes in Computer Science (LNCS) Challenges (in press)

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

icare-0.0.1.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icare-0.0.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file icare-0.0.1.tar.gz.

File metadata

  • Download URL: icare-0.0.1.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.13

File hashes

Hashes for icare-0.0.1.tar.gz
Algorithm Hash digest
SHA256 7d0be4e3507a8b60d6fac36c55b7f079f04e1a81e66d60d66c5179e084f0352d
MD5 4b5e7aed7c88a6cc6ba544f11eb9d8b3
BLAKE2b-256 2b8757ec932239b9ade7471b5d557fe65fdbbe31539182eb56f2b486f665f667

See more details on using hashes here.

File details

Details for the file icare-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: icare-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.13

File hashes

Hashes for icare-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 635595332f9aaf022c82767e1b2f70c87aef0683b4ab5a6b2d60b6a4ad26c2e2
MD5 28fa24fd683d81b4da8eb99e03e7e301
BLAKE2b-256 f72c5809e9e7c483742c7849a712b0a461f08eb1feef4e4bb2cbe0b1764ce621

See more details on using hashes here.

Supported by

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