# Medical Ood Detection Eval

> medical-ood-detection-eval

- Skill: `qhjqhj00/medical-ood-detection-eval` (Agent Skill)
- Install (CLI): `npx skillmds@latest add qhjqhj00/medical-ood-detection-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/medical-ood-detection-eval/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/qhjqhj00/medical-ood-detection-eval

---


# medical-ood-detection-eval

> A Benchmark of Medical Out of Distribution Detection — Cao et al. (2020) (arXiv:2007.04250, 2020)

## What this evaluates

Evaluates the ability of out-of-distribution detection (OoDD) methods to correctly classify medical images as in-distribution or out-of-distribution across three distinct OoD categories: unrelated domains, incorrect image preparation, and unseen medical conditions due to selection bias.

## Datasets

- **Medical OoD Benchmark ($D_{test}$)** — total ?; splits: test (-1), val (-1)

## Metrics

- `accuracy` **(primary)** — range: [0, 1]
  - Proportion of correctly classified In and Out samples on the class-balanced test set. Provides an unbiased representation of type I and type II errors.
- `AUPRC` — range: [0, 1]
  - Area Under the Precision-Recall Curve. Characterizes the separability of In and Out samples based on predicted scores, which are thresholded to obtain binary classifications.

## Input / output format

**Input**: Medical images (e.g., chest X-rays, fundus images, histology slides) processed by OoDD methods to generate In/Out scores or classifications.

**Output**: Binary classification predictions (In vs. Out) or continuous OoDD scores, thresholded to yield final predictions.

## Scoring recipe

```python
def compute_metrics(predictions, gold, scores):
    # predictions and gold are binary (0=In, 1=Out)
    accuracy = (predictions == gold).mean()
    # AUPRC requires continuous scores and binary gold labels
    precision, recall, _ = precision_recall_curve(gold, scores)
    auprc = auc(recall, precision)
    return accuracy, auprc
```

## Common pitfalls

- Using a single Out dataset for validation ($D_{val}$) instead of randomly sampling multiple Out datasets, which reduces generalization and decision boundary stability.
- Assuming complex auxiliary models outperform simple classifier-only baselines; the benchmark shows simple methods often match or exceed complex ones.
- Underestimating the difficulty of Use-Case 3 (unseen diseases/selection bias), where methods perform near random chance.

## Evidence (verbatim from paper)

> We measure the accuracy and Area Under Precision-Recall Curve (AUPRC) on  $D_{test}$  , totaling at 11 pairs of performance numbers per method. Since  $D_{test}$  is class-balanced, accuracy provides an unbiased representation of type I and type II errors. AUPRC characterizes the separability of  $In$  and  $Out$  samples in predicted value (the value that we threshold to obtain classification).

## Citation

```bibtex
@misc{cao2020benchmarkmedicalood,
  title={A Benchmark of Medical Out of Distribution Detection},
  author={Cao et al. (2020)},
  year={2020},
  note={arXiv:2007.04250}
}
```

- arXiv: 2007.04250

