Skip to content
Snippets Groups Projects
index.rst 12.80 KiB

Results

This section summarizes results that can be obtained with this package.

Models optimization

In the link below, you will find information about the optimization of each model we used.

Models training runtime and memory footprint

In the link below, you will find information about the training runtime and the memory footprint of each model we used.

AUROC Scores

  • Benchmark results for models: Pasa, DenseNet, SignsToTB
  • Each dataset is split in a training, a validation and a testing subset
  • Datasets names are abbreviated as follows: Montgomery (MC), Shenzhen (CH), Indian (IN)
  • Models are only trained on the training subset
  • During the training session, we keep checkpoints for the best performing networks based on the validation set. The best performing network during training is used for evaluation.
  • Model resource configuration links are linked to the originating configuration files used to obtain these results.

K-folding

Stratified k-folding has been used (10 folds) to generate these results.

Tip

To generate the following results, you first need to predict TB on each fold, then use the :ref:`aggregpred command <mednet.libs.common.cli>` to aggregate the predictions together, and finally evaluate this new file using the :ref:`compare command <mednet.libs.common.cli>`.

Pasa and DenseNet-121 (random initialization)

Thresholds used:

  • Pasa trained on MC, test on MC, mean threshold: 0.5057
  • Pasa trained on MC-CH, test on MC-CH, mean threshold: 0.4966
  • Pasa trained on MC-CH-IN, test on MC-CH-IN, mean threshold: 0.4135
  • Densenet trained on MC, test on MC, mean threshold: 0.5183
  • Densenet trained on MC-CH, test on MC-CH, mean threshold: 0.2555
  • Densenet trained on MC-CH-IN, test on MC-CH-IN, mean threshold: 0.4037
AUC MC test CH test IN test
Pasa (train: MC) 0.890 0.576 0.642
Pasa (train: MC+CH) 0.870 0.893 0.669
Pasa (train: MC+CH+IN) 0.881 0.898 0.848
DenseNet-121 (train: MC) 0.822 0.607 0.625
DenseNet-121 (train: MC+CH) 0.883 0.905 0.672
DenseNet-121 (train: MC+CH+IN) 0.860 0.917 0.850
Testing sets ROC curves for Pasa model trained on normalized-kfold MC

:py:mod:`Pasa <mednet.libs.classification.config.models.pasa>`: Pasa trained on normalized-kfold MC

Testing sets ROC curves for Pasa model trained on normalized-kfold MC-CH

:py:mod:`Pasa <mednet.libs.classification.config.models.pasa>`: Pasa trained on normalized-kfold MC-CH

Testing sets ROC curves for Pasa model trained on normalized-kfold MC-CH-IN

:py:mod:`Pasa <mednet.libs.classification.config.models.pasa>`: Pasa trained on normalized-kfold MC-CH-IN

Testing sets ROC curves for DenseNet model trained on normalized-kfold MC

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>`: DenseNet trained on normalized-kfold MC

Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH

Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH-IN

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH-IN

DenseNet-121 (pretrained on ImageNet)

Thresholds used:

  • DenseNet (pretrained on ImageNet) trained on MC, test on MC, mean threshold: 0.3581
  • DenseNet (pretrained on ImageNet) trained on MC-CH, test on MC-CH, mean threshold: 0.3319
  • DenseNet (pretrained on ImageNet) trained on MC-CH-IN, test on MC-CH-IN, mean threshold: 0.4048
AUC MC test CH test IN test
DenseNet-121 (train: MC) 0.910 0.814 0.817
DenseNet-121 (train: MC+CH) 0.948 0.946 0.816
DenseNet-121 (train: MC+CH+IN) 0.925 0.944 0.911
Testing sets ROC curves for DenseNet model trained on normalized-kfold MC

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>` DenseNet trained on normalized-kfold MC

Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>` DenseNet trained on normalized-kfold MC-CH

Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH-IN

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>` DenseNet trained on normalized-kfold MC-CH-IN

Logistic Regression Classifier

Thresholds used:

  • LogReg trained on MC, test on MC, mean threshold: 0.534
  • LogReg trained on MC-CH, test on MC-CH, mean threshold: 0.2838
  • LogReg trained on MC-CH-IN, test on MC-CH-IN, mean threshold: 0.2371
AUC MC test CH test IN test
Indirect (train: MC) 0.966 0.867 0.926
Indirect (train: MC+CH) 0.961 0.901 0.928
Indirect (train: MC+CH+IN) 0.951 0.895 0.920
Testing sets ROC curves for LogReg model trained on normalized-kfold MC

:py:mod:`LogReg <mednet.libs.classification.config.models.logistic_regression>`: LogReg trained on normalized-kfold MC

Testing sets ROC curves for LogReg model trained on normalized-kfold MC-CH

:py:mod:`LogReg <mednet.libs.classification.config.models.logistic_regression>`: LogReg trained on normalized-kfold MC-CH

Testing sets ROC curves for LogReg model trained on normalized-kfold MC-CH-IN

:py:mod:`LogReg <mednet.libs.classification.config.models.logistic_regression>`: LogReg trained on normalized-kfold MC-CH-IN

DenseNet-121 (pretrained on ImageNet and NIH CXR14)

Thresholds used:

  • DenseNetPre trained on MC, test on MC, mean threshold: 0.4126
  • DenseNetPre trained on MC-CH, test on MC-CH, mean threshold: 0.3711
  • DenseNetPre trained on MC-CH-IN, test on MC-CH-IN, mean threshold: 0.4255
AUC MC test CH test IN test
DenseNet-121 (train: MC) 0.966 0.917 0.901
DenseNet-121 (train: MC+CH) 0.984 0.979 0.869
DenseNet-121 (train: MC+CH+IN) 0.965 0.978 0.931
Testing sets ROC curves for DenseNet model trained on normalized-kfold MC (pretrained on NIH)

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>`: DenseNet trained on normalized-kfold MC (pretrained on NIH)

Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH (pretrained on NIH)

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH (pretrained on NIH)

Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH-IN (pretrained on NIH)

:py:mod:`DenseNet <mednet.libs.classification.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH-IN (pretrained on NIH)

Global sensitivity analysis (relevance)

Model used to generate the following figures: LogReg trained on MC-CH-IN fold 0 for 100 epochs.

Tip

Use the --relevance-analysis argument of the :ref:`predict command <mednet.libs.common.cli>` to generate the following plots.

  • Green color: likely TB
  • Orange color: Could be TB
  • Dark red color: Unlikely TB

As CH is the largest dataset, its relevance analysis is computed on more images and is supposed to be more stable. Similarly, train sets are larger. We notice the systematic importance of Nodule, Pleural Thickening, Fibrosis, Mass, Consolidation and Pleural Effusion.

Relevance analysis on train MC

Relevance analysis on train MC

Relevance analysis on validation MC

Relevance analysis on validation MC

Relevance analysis on test MC

Relevance analysis on test MC

Relevance analysis on train CH

Relevance analysis on train CH

Relevance analysis on validation CH

Relevance analysis on validation CH

Relevance analysis on test CH

Relevance analysis on test CH

Relevance analysis on train IN

Relevance analysis on train IN

Relevance analysis on validation IN

Relevance analysis on validation IN

Relevance analysis on test IN

Relevance analysis on test IN

Ablation study

Here, we removed the data of each sign, one after the other, from the dataset for both model training and prediction. LogReg trained on MC-CH-IN fold 0 for 100 epochs has been used to generate the following plot.

Predictive capabilities of our logistic regression model after removing the data for each radiological sign (d0-d13 correspond, in this order, to cardiomegaly, emphysema, effusion, hernia, infiltration, mass, nodule, atelectasis, pneumothorax, pleural thickening, pneumonia, fibrosis, edema, and consolidation).

  • img/rad_sign_drop.png