AIP-AD / src /evalmetrics.py
Nabidnur's picture
AIP-AD full artifact: code, results, figures, video, Kaggle notebook, research report
acc1556 verified
Raw History Blame Contribute Delete
830 Bytes
"""Metrics and experiment result containers."""
from __future__ import annotations
import numpy as np
from sklearn.metrics import roc_auc_score
def auroc(scores, labels):
scores = np.asarray(scores, dtype=np.float64)
labels = np.asarray(labels)
if len(np.unique(labels)) < 2:
return float("nan")
return float(roc_auc_score(labels, scores))
def sample_auroc_table(view_scores, labels, cats):
"""Fixed-strategy S-AUROC per category + macro. Returns dict."""
from .fusion import fuse_all
fused = fuse_all(view_scores)
res = {}
for name, s in fused.items():
per = {}
for cat in np.unique(cats):
m = cats == cat
per[cat] = auroc(s[m], labels[m])
per["macro"] = float(np.nanmean(list(per.values())))
res[name] = per
return res