Package: icare
ICARERebaud, 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 (under review)This package contains the Individual Coefficient Approximation for Risk Estimation
(ICARE) survival model. For ensembling strategies, it also includes a dedicated bagging aggregator.This model was the winning solution for theMICCAI 2022challenge: HEad and neCK TumOR (HECKTOR) for the outcome prediction task from PET/CT.DescriptionThe Individual Coefficient Approximation for Risk Estimation (ICARE) survival model
uses a minimal learning strategy to reduce to risk of overfitting on the often
noisy and censored survival data.
To do so:drop highly correlated featuresfor each feature:evaluate feature sign using an univariate approachnormalize the featuremultiply the feature by its signthe prediction is computed as the mean of all signed featuresThis 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 in theIcareSurvestimator in this
package.To improve the performance, this model can be bagged. The package
providesBaggedIcareSurvestimator that does the ensembling of
multipleIcareSurvestimators.The models make predictions that areanti-concordantswith the target.
For instance, if the target is the survival in days since baseline, the
prediction corresponds to theranking riskof death.Getting StartedDependenciesPython 3.6 or laterscikit-survivalInstallingVia PyPI:pipinstallicareor via GitHubpipinstallgit+https://github.com/Lrebaud/ICARE.gitDocumentationComing soon.UtilisationThe model is used as any other scikit-learn estimator:fromsksurvimportdatasetsfromsksurv.preprocessingimportOneHotEncoderfromicare.metricsimportharrell_cindexfromicare.survivalimportIcareSurv,BaggedIcareSurvX,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 functions:fromsklearn.model_selectionimportcross_val_score,ShuffleSplitmodel=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:fromsksurv.utilimportSurvy=Surv.from_arrays(event=np.array(event_happened).astype('bool'),time=time)AuthorLouis Rebaud:louis.rebaud@gmail.comVersion History0.0.1Initial ReleaseLicenseThis project is licensed under the Apache License 2.0 - see the LICENSE.md file for detailsAcknowledgementsThis package was created as a part of the HEad and neCK TumOR segmentation and outcome prediction in PET/CT images challenge, 3rdedition (HECKTOR 2022) and presented by Louis Rebaud and Thibault Escobar at the 25thinternational conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI) congress in Singapore.CitationIf you use this package for your research, please cite the followingpaper(preprint):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 (under review)