DoB24's picture
kfold v2: README
f6fe8c7 verified
|
Raw
History Blame Contribute Delete
2.26 kB
# 5-Fold Cross-Validation Results β€” v2 Models
All 9 models were re-trained with the full v2 protocol (CLAHE, RandAugment,
WeightedRandomSampler, MixUp+CutMix, warmup-cosine LR, AMP fp16) on 5
stratified-group folds (pHash-grouped pool, fixed held-out test set of 3,208
images). Results confirm the published headline metrics are robust.
## Summary (sorted by test accuracy)
| Model | Family | Test Acc | 95% CI | Test F1 | ROC-AUC | ECE | Folds |
|---|---|---|---|---|---|---|---|
| Inception-v3 | CNN | 90.18% | [89.24, 91.24] | 92.54% | 0.9930 | 0.0194 | 5 |
| CLIP ViT-B/16 | CLIP | 90.15% | [89.18, 91.24] | 92.83% | 0.9944 | 0.0217 | 5 |
| VGG-19 | CNN | 90.12% | [89.09, 91.12] | 92.59% | 0.9933 | 0.0228 | 5 |
| ResNet-101 | CNN | 90.09% | [89.15, 91.12] | 92.63% | 0.9941 | 0.0243 | 5 |
| DenseNet-121 | CNN | 89.65% | [88.62, 90.71] | 92.29% | 0.9937 | 0.0272 | 5 |
| DINOv2-L | Foundation | 89.61% Β± 0.20 | β€” | 92.27% Β± 0.17 | β€” | β€” | 5 |
| ResNet-50 | CNN | 89.50% | [88.40, 90.59] | 92.20% | 0.9945 | 0.0339 | 5 |
| Swin-B | Foundation | 87.00% Β± 0.26 | β€” | 90.26% Β± 0.18 | β€” | β€” | 5 |
| RETFound | Foundation | 83.35% Β± 0.23 | β€” | 87.27% Β± 0.20 | β€” | β€” | 5 |
## Files
- `kfold_v2_summary.csv` β€” unified summary of all 9 models
- `cnn_clip/summary.json` β€” test metrics for all 6 CNN/CLIP models
- `cnn_clip/<model>_kfold.json` β€” per-fold val metrics (6 models Γ— 5 folds)
- `cnn_clip/mcnemar.json` β€” pairwise McNemar tests (all p > 0.05 β†’ no
significant difference between CNN/CLIP architectures)
- `foundation_kfold.json` β€” aggregated mean Β± std for 3 foundation models
- `foundation_fold{0-4}_summary.json` β€” per-fold summaries
## McNemar Pairwise Tests (CNN/CLIP)
All 15 pairwise McNemar p-values > 0.05. The models perform at statistical
parity on this test set β€” architecture choice does not significantly alter
prediction errors.
## Protocol
- **CNN/CLIP**: `run_v2_experiments.py --folds 5 --epochs 100 --patience 12`
- **Foundation**: `run_foundation_kfold.py --folds 5 --lp-epochs 20 --ft-epochs 15 --patience 8`
- Split: `splits/holdout_split_augmented.json` (StratifiedGroupKFold, seed=42, pHash threshold=8)
- Test set: 3,208 images, fixed, never used during training or fold selection