Engine.evaluate_cases

Engine.evaluate_cases(model_name=None, split='validation', *, group_by=None)

One row per case instead of one row per model.

The comparison table answers “which model”; this answers “on whom does it fail”, which is the question a clinician asks first and the one a single mean cannot answer. With group_by, each row also carries the group - the patient, usually - so the rows can be summarised per patient rather than per slice.

Parameters

Name Type Description Default
model_name str | None Which model, by name. Defaults to the first. None
split str Which data to score on. 'validation'
group_by str | None A pattern picking a group out of each case’s name. With it the rows are patients rather than slices: a patient’s slices are pooled into one score, the way a volume would be. None

Returns

Name Type Description
list[dict[str, Any]] One row per case, or per group. summarise_cases turns them into the
list[dict[str, Any]] distribution - and its minimum is the number worth reading.