Task — fault_detection_line

benchmark version 1.1.0 · held_out results v1.0.0 · splits v1.0/held_out, v1.1/multi_grid
updated 2026-09-29 13:18 UTC · git 7243f310ddbc

tier 1 · fault_detection · line view · 2 classes · all cells measured

What this task is. Decide, from one 50 ms waveform window, whether a short-circuit fault is present. This is the core protection decision: a relay that misses a fault leaves it burning (missed-fault rate), one that trips on a healthy window disconnects customers for nothing (false-alarm rate). Both error types are reported alongside balanced accuracy because their costs are asymmetric in practice. Line view: the cubicles at both ends of one line (12 channels), the information basis of a line-differential scheme.

How it's scored

Headline metric balanced_accuracy (↑ higher is better); full metric set: balanced_accuracy · macro_f1 · missed_fault_rate · false_alarm_rate · accuracy. Metrics are a frozen contract (src/evemtbench/evaluation/metrics.py); label derivation: src/evemtbench/tasks/labels.

Example window

example waveform window

event flt_1phg_incipient · grid double_line (adapt_grid/test split) · sample 2, window #46, cubicle 3 (max-RMS) · 50 ms / 480 samples @ 9.6 kHz · top: 3-phase current, bottom: 3-phase voltage · figure provenance in assets/manifest.json

Results (held_out)

fault_detection_line — every grid × baseline; click headers to sort
taskgridbaselineheadlinetestbenchmarkparamsfit/seedtrace
fault_detection_linecigre_mvmajoritybalanced_accuracy ↑0.500 ± 0.000 (n=5)0.500 ± 0.000 (n=5)—0strace: output · eval-code · log · train-code · config · W&B
fault_detection_linecigre_mvrandom_forestbalanced_accuracy ↑0.838 ± 0.002 (n=5)0.980 ± 0.003 (n=5)—23strace: output · eval-code · log · train-code · config · W&B
fault_detection_linecigre_mvmlpbalanced_accuracy ↑0.776 ± 0.002 (n=5)0.964 ± 0.000 (n=5)3.1M1.3mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linecigre_mvgrubalanced_accuracy ↑0.792 ± 0.020 (n=5)0.965 ± 0.005 (n=5)55k2.7mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linecigre_mvcnnbalanced_accuracy ↑0.808 ± 0.034 (n=5)0.965 ± 0.008 (n=5)51k2.2mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linecigre_mvresnetbalanced_accuracy ↑0.797 ± 0.039 (n=5)0.963 ± 0.010 (n=5)509k6.8mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linedouble_linemajoritybalanced_accuracy ↑0.500 ± 0.000 (n=5)0.500 ± 0.000 (n=5)—0strace: output · eval-code · log · train-code · config · W&B
fault_detection_linedouble_linerandom_forestbalanced_accuracy ↑0.884 ± 0.001 (n=5)0.500 ± 0.000 (n=5)—21strace: output · eval-code · log · train-code · config · W&B
fault_detection_linedouble_linemlpbalanced_accuracy ↑0.854 ± 0.001 (n=5)0.987 ± 0.000 (n=5)3.1M1.4mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linedouble_linegrubalanced_accuracy ↑0.870 ± 0.004 (n=5)0.955 ± 0.089 (n=5)55k3.0mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linedouble_linecnnbalanced_accuracy ↑0.877 ± 0.011 (n=5)0.987 ± 0.001 (n=5)51k2.4mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linedouble_lineresnetbalanced_accuracy ↑0.906 ± 0.051 (n=5)0.991 ± 0.008 (n=5)509k8.6mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linetestgrid_110kvmajoritybalanced_accuracy ↑0.500 ± 0.000 (n=5)0.500 ± 0.000 (n=5)—0strace: output · eval-code · log · train-code · config · W&B
fault_detection_linetestgrid_110kvrandom_forestbalanced_accuracy ↑0.878 ± 0.001 (n=5)0.681 ± 0.028 (n=5)—21strace: output · eval-code · log · train-code · config · W&B
fault_detection_linetestgrid_110kvmlpbalanced_accuracy ↑0.849 ± 0.002 (n=5)0.985 ± 0.000 (n=5)3.1M1.3mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linetestgrid_110kvgrubalanced_accuracy ↑0.871 ± 0.024 (n=5)0.967 ± 0.055 (n=5)55k2.2mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linetestgrid_110kvcnnbalanced_accuracy ↑0.875 ± 0.010 (n=5)0.987 ± 0.002 (n=5)51k2.2mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_linetestgrid_110kvresnetbalanced_accuracy ↑0.914 ± 0.026 (n=5)0.990 ± 0.003 (n=5)509k9.3mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_lineieee39majoritybalanced_accuracy ↑0.500 ± 0.000 (n=5)0.500 ± 0.000 (n=5)—0strace: output · eval-code · log · train-code · config · W&B
fault_detection_lineieee39random_forestbalanced_accuracy ↑0.935 ± 0.000 (n=5)0.868 ± 0.004 (n=5)—21strace: output · eval-code · log · train-code · config · W&B
fault_detection_lineieee39mlpbalanced_accuracy ↑0.866 ± 0.001 (n=5)0.987 ± 0.000 (n=5)3.1M1.4mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_lineieee39grubalanced_accuracy ↑0.887 ± 0.031 (n=5)0.989 ± 0.004 (n=5)55k2.6mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_lineieee39cnnbalanced_accuracy ↑0.895 ± 0.010 (n=5)0.987 ± 0.000 (n=5)51k2.5mtrace: output · eval-code · log · train-code · config · W&B
fault_detection_lineieee39resnetbalanced_accuracy ↑0.897 ± 0.017 (n=5)0.988 ± 0.003 (n=5)509k8.4mtrace: output · eval-code · log · train-code · config · W&B

Metric definitions

headline & reported metrics for this view — the metric set is a frozen contract; each links to the exact function that computes it

metricdefinitionentry
balanced_accuracymean of per-class recall — the majority class cannot buy a good scoreevaluate()
macro_f1unweighted mean of per-class F1 (zero_division=0)evaluate()
missed_fault_rateFN / (TP+FN) — fraction of true faults the model missedevaluate()
false_alarm_rateFP / (FP+TN) — fraction of non-faults flaggedevaluate()
accuracyfraction of exact-match predictionsevaluate()

Reproduce one cell

PYTHONPATH=src python -m evemtbench.baselines.runner --task fault_detection_line --protocol held_out \
    --grid <grid> --baseline <baseline> --seeds 0 1 2 3 4