polyguard-openenv / app /models /tabular /risk_heads.py
TheJackBright's picture
Deploy PolyGuard OpenEnv Space
877add7 verified
"""Tabular risk heads."""
from __future__ import annotations
def predict_risk_heads(features: dict[str, float]) -> dict[str, float]:
med_count = features.get("med_count", 0.0)
frailty = features.get("frailty", 0.5)
adherence = features.get("adherence", 0.7)
monitoring = features.get("monitoring_gap_count", 0.0)
ade_history = features.get("ade_history_count", 0.0)
egfr = features.get("egfr", 60.0)
ast = features.get("ast", 30.0)
alt = features.get("alt", 30.0)
ade = min(1.0, 0.18 + med_count / 19.0 + frailty * 0.27 + monitoring * 0.04)
hosp = min(1.0, 0.1 + ade * 0.58 + (1.0 - adherence) * 0.2 + ade_history * 0.05)
falls = min(1.0, 0.1 + frailty * 0.48 + med_count / 33.0 + ade_history * 0.06)
organ_risk = max(0.0, (35.0 - egfr) / 35.0) + max(0.0, (ast - 80.0) / 80.0) + max(0.0, (alt - 80.0) / 80.0)
destabilization = min(1.0, 0.16 + (1.0 - adherence) * 0.52 + organ_risk * 0.22)
burden = min(1.0, med_count / 12.0)
return {
"ade_proxy": ade,
"hospitalization_proxy": hosp,
"falls_proxy": falls,
"destabilization_proxy": destabilization,
"burden_proxy": burden,
}