Add post-hoc analysis: confusion matrices, ROC, reliability, per-class F1, accuracy ranking
Browse files- .gitattributes +20 -0
- analysis/README.md +13 -0
- analysis/accuracy_ranking.png +0 -0
- analysis/confusion_matrices/cm_clip_openai.png +3 -0
- analysis/confusion_matrices/cm_densenet121.png +3 -0
- analysis/confusion_matrices/cm_dinov2_l.png +3 -0
- analysis/confusion_matrices/cm_ensemble.png +3 -0
- analysis/confusion_matrices/cm_inception_v3.png +3 -0
- analysis/confusion_matrices/cm_resnet101.png +3 -0
- analysis/confusion_matrices/cm_resnet50.png +3 -0
- analysis/confusion_matrices/cm_retfound.png +3 -0
- analysis/confusion_matrices/cm_swin_b.png +3 -0
- analysis/confusion_matrices/cm_vgg19.png +3 -0
- analysis/ece_summary.json +12 -0
- analysis/per_class/per_class_f1.json +124 -0
- analysis/per_class/per_class_f1.png +0 -0
- analysis/reliability_diagrams/reliability_clip_openai.png +0 -0
- analysis/reliability_diagrams/reliability_densenet121.png +0 -0
- analysis/reliability_diagrams/reliability_dinov2_l.png +0 -0
- analysis/reliability_diagrams/reliability_ensemble.png +0 -0
- analysis/reliability_diagrams/reliability_inception_v3.png +0 -0
- analysis/reliability_diagrams/reliability_resnet101.png +0 -0
- analysis/reliability_diagrams/reliability_resnet50.png +0 -0
- analysis/reliability_diagrams/reliability_retfound.png +0 -0
- analysis/reliability_diagrams/reliability_swin_b.png +0 -0
- analysis/reliability_diagrams/reliability_vgg19.png +0 -0
- analysis/roc_curves/roc_clip_openai.png +3 -0
- analysis/roc_curves/roc_densenet121.png +3 -0
- analysis/roc_curves/roc_dinov2_l.png +3 -0
- analysis/roc_curves/roc_ensemble.png +3 -0
- analysis/roc_curves/roc_inception_v3.png +3 -0
- analysis/roc_curves/roc_resnet101.png +3 -0
- analysis/roc_curves/roc_resnet50.png +3 -0
- analysis/roc_curves/roc_retfound.png +3 -0
- analysis/roc_curves/roc_swin_b.png +3 -0
- analysis/roc_curves/roc_vgg19.png +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,23 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
analysis/confusion_matrices/cm_clip_openai.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
analysis/confusion_matrices/cm_densenet121.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
analysis/confusion_matrices/cm_dinov2_l.png filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
analysis/confusion_matrices/cm_ensemble.png filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
analysis/confusion_matrices/cm_inception_v3.png filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
analysis/confusion_matrices/cm_resnet101.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
analysis/confusion_matrices/cm_resnet50.png filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
analysis/confusion_matrices/cm_retfound.png filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
analysis/confusion_matrices/cm_swin_b.png filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
analysis/confusion_matrices/cm_vgg19.png filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
analysis/roc_curves/roc_clip_openai.png filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
analysis/roc_curves/roc_densenet121.png filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
analysis/roc_curves/roc_dinov2_l.png filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
analysis/roc_curves/roc_ensemble.png filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
analysis/roc_curves/roc_inception_v3.png filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
analysis/roc_curves/roc_resnet101.png filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
analysis/roc_curves/roc_resnet50.png filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
analysis/roc_curves/roc_retfound.png filter=lfs diff=lfs merge=lfs -text
|
| 54 |
+
analysis/roc_curves/roc_swin_b.png filter=lfs diff=lfs merge=lfs -text
|
| 55 |
+
analysis/roc_curves/roc_vgg19.png filter=lfs diff=lfs merge=lfs -text
|
analysis/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Analysis Artefacts
|
| 2 |
+
|
| 3 |
+
Generated post-hoc from the test-set prediction JSONs (`results/*_test_preds.json`)
|
| 4 |
+
and the ensemble report.
|
| 5 |
+
|
| 6 |
+
## Contents
|
| 7 |
+
- `confusion_matrices/cm_<model>.png` — per-class confusion matrix (counts overlaid on row-normalised heatmap)
|
| 8 |
+
- `roc_curves/roc_<model>.png` — one-vs-rest ROC for every class + macro-AUC in title
|
| 9 |
+
- `reliability_diagrams/reliability_<model>.png` — 10-bin reliability with ECE in title
|
| 10 |
+
- `per_class/per_class_f1.png` — grouped bar chart, all 9 backbones side-by-side
|
| 11 |
+
- `per_class/per_class_f1.json` — raw per-class F1 numbers
|
| 12 |
+
- `accuracy_ranking.png` — horizontal bar chart of test accuracy
|
| 13 |
+
- `ece_summary.json` — Expected Calibration Error per model
|
analysis/accuracy_ranking.png
ADDED
|
analysis/confusion_matrices/cm_clip_openai.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_densenet121.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_dinov2_l.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_ensemble.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_inception_v3.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_resnet101.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_resnet50.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_retfound.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_swin_b.png
ADDED
|
Git LFS Details
|
analysis/confusion_matrices/cm_vgg19.png
ADDED
|
Git LFS Details
|
analysis/ece_summary.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"vgg19": 0.019883386493472457,
|
| 3 |
+
"resnet50": 0.03958680766850635,
|
| 4 |
+
"resnet101": 0.02942224809356465,
|
| 5 |
+
"densenet121": 0.017313514360019957,
|
| 6 |
+
"inception_v3": 0.026105817974059694,
|
| 7 |
+
"swin_b": 0.010641135098853942,
|
| 8 |
+
"clip_openai": 0.014958562176126485,
|
| 9 |
+
"dinov2_l": 0.03415616768925559,
|
| 10 |
+
"retfound": 0.026166619607560948,
|
| 11 |
+
"ensemble": 0.024558782145927764
|
| 12 |
+
}
|
analysis/per_class/per_class_f1.json
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"classes": [
|
| 3 |
+
"Central Serous Chorioretinopathy",
|
| 4 |
+
"Diabetic Retinopathy",
|
| 5 |
+
"Disc Edema",
|
| 6 |
+
"Glaucoma",
|
| 7 |
+
"Healthy",
|
| 8 |
+
"Macular Scar",
|
| 9 |
+
"Myopia",
|
| 10 |
+
"Pterygium",
|
| 11 |
+
"Retinal Detachment",
|
| 12 |
+
"Retinitis Pigmentosa"
|
| 13 |
+
],
|
| 14 |
+
"per_class_f1": {
|
| 15 |
+
"vgg19": [
|
| 16 |
+
0.9292035398230089,
|
| 17 |
+
0.9707927677329624,
|
| 18 |
+
0.9513888888888888,
|
| 19 |
+
0.7966101694915254,
|
| 20 |
+
0.8484304932735426,
|
| 21 |
+
0.8816568047337278,
|
| 22 |
+
0.8720271800679502,
|
| 23 |
+
1.0,
|
| 24 |
+
0.996078431372549,
|
| 25 |
+
0.9657320872274143
|
| 26 |
+
],
|
| 27 |
+
"resnet50": [
|
| 28 |
+
0.918918918918919,
|
| 29 |
+
0.9674740484429065,
|
| 30 |
+
0.9477351916376306,
|
| 31 |
+
0.7986852917009039,
|
| 32 |
+
0.8574007220216606,
|
| 33 |
+
0.8807069219440353,
|
| 34 |
+
0.8537735849056604,
|
| 35 |
+
1.0,
|
| 36 |
+
0.996078431372549,
|
| 37 |
+
0.9657320872274143
|
| 38 |
+
],
|
| 39 |
+
"resnet101": [
|
| 40 |
+
0.918918918918919,
|
| 41 |
+
0.9669421487603306,
|
| 42 |
+
0.9611307420494699,
|
| 43 |
+
0.8013411567476949,
|
| 44 |
+
0.8537906137184116,
|
| 45 |
+
0.8820960698689956,
|
| 46 |
+
0.859465737514518,
|
| 47 |
+
1.0,
|
| 48 |
+
0.996078431372549,
|
| 49 |
+
0.9657320872274143
|
| 50 |
+
],
|
| 51 |
+
"densenet121": [
|
| 52 |
+
0.9140271493212669,
|
| 53 |
+
0.9715475364330326,
|
| 54 |
+
0.9513888888888888,
|
| 55 |
+
0.8158546655656482,
|
| 56 |
+
0.8616236162361623,
|
| 57 |
+
0.8833819241982507,
|
| 58 |
+
0.8662857142857143,
|
| 59 |
+
1.0,
|
| 60 |
+
0.996078431372549,
|
| 61 |
+
0.9657320872274143
|
| 62 |
+
],
|
| 63 |
+
"inception_v3": [
|
| 64 |
+
0.918918918918919,
|
| 65 |
+
0.9689011748445059,
|
| 66 |
+
0.9513888888888888,
|
| 67 |
+
0.8045789043336059,
|
| 68 |
+
0.8534562211981567,
|
| 69 |
+
0.8875912408759125,
|
| 70 |
+
0.8504672897196262,
|
| 71 |
+
1.0,
|
| 72 |
+
0.996078431372549,
|
| 73 |
+
0.9657320872274143
|
| 74 |
+
],
|
| 75 |
+
"swin_b": [
|
| 76 |
+
0.9074889867841409,
|
| 77 |
+
0.9667590027700831,
|
| 78 |
+
0.9513888888888888,
|
| 79 |
+
0.7436527436527437,
|
| 80 |
+
0.8237410071942446,
|
| 81 |
+
0.8831562974203339,
|
| 82 |
+
0.810304449648712,
|
| 83 |
+
1.0,
|
| 84 |
+
0.9921875,
|
| 85 |
+
0.9657320872274143
|
| 86 |
+
],
|
| 87 |
+
"clip_openai": [
|
| 88 |
+
0.9203539823008849,
|
| 89 |
+
0.954829742876998,
|
| 90 |
+
0.9513888888888888,
|
| 91 |
+
0.7137614678899082,
|
| 92 |
+
0.8296943231441049,
|
| 93 |
+
0.8442503639010189,
|
| 94 |
+
0.8310010764262648,
|
| 95 |
+
1.0,
|
| 96 |
+
0.9883268482490273,
|
| 97 |
+
0.9657320872274143
|
| 98 |
+
],
|
| 99 |
+
"dinov2_l": [
|
| 100 |
+
0.918918918918919,
|
| 101 |
+
0.9724896836313618,
|
| 102 |
+
0.9645390070921985,
|
| 103 |
+
0.8089700996677741,
|
| 104 |
+
0.8642413487133984,
|
| 105 |
+
0.8885630498533724,
|
| 106 |
+
0.8393285371702638,
|
| 107 |
+
1.0,
|
| 108 |
+
0.9921875,
|
| 109 |
+
0.9657320872274143
|
| 110 |
+
],
|
| 111 |
+
"retfound": [
|
| 112 |
+
0.8595744680851064,
|
| 113 |
+
0.9548924358084664,
|
| 114 |
+
0.9134948096885813,
|
| 115 |
+
0.6984667802385008,
|
| 116 |
+
0.7932960893854749,
|
| 117 |
+
0.8096676737160121,
|
| 118 |
+
0.7918015102481122,
|
| 119 |
+
1.0,
|
| 120 |
+
0.9844961240310077,
|
| 121 |
+
0.9627329192546584
|
| 122 |
+
]
|
| 123 |
+
}
|
| 124 |
+
}
|
analysis/per_class/per_class_f1.png
ADDED
|
analysis/reliability_diagrams/reliability_clip_openai.png
ADDED
|
analysis/reliability_diagrams/reliability_densenet121.png
ADDED
|
analysis/reliability_diagrams/reliability_dinov2_l.png
ADDED
|
analysis/reliability_diagrams/reliability_ensemble.png
ADDED
|
analysis/reliability_diagrams/reliability_inception_v3.png
ADDED
|
analysis/reliability_diagrams/reliability_resnet101.png
ADDED
|
analysis/reliability_diagrams/reliability_resnet50.png
ADDED
|
analysis/reliability_diagrams/reliability_retfound.png
ADDED
|
analysis/reliability_diagrams/reliability_swin_b.png
ADDED
|
analysis/reliability_diagrams/reliability_vgg19.png
ADDED
|
analysis/roc_curves/roc_clip_openai.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_densenet121.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_dinov2_l.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_ensemble.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_inception_v3.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_resnet101.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_resnet50.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_retfound.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_swin_b.png
ADDED
|
Git LFS Details
|
analysis/roc_curves/roc_vgg19.png
ADDED
|
Git LFS Details
|