SuperAPI AI 工具集

pyhealth

数据与分析

查看项目

更新于 10-15 21:39

技能介绍

PyHealth(https://pyhealth.dev/)是面向临床深度学习的 Python 工具包,为电子健康记录(EHR)、生理信号和医学影像提供统一、模块化的处理流水线。其核心是五阶段结构:Dataset → Task → Model → Trainer → Metrics,各阶段可替换、阶段间接口稳定,按此结构编写的代码更易组合。

适用用途:临床/医疗机器学习,例如死亡预测、再入院预测、住院时长预测、用药推荐、睡眠分期、ICD 编码、EEG 事件识别与去标识化;也支持医学编码查询与交叉映射(ICD-9-CM、ICD-10-CM、ATC、NDC、RxNorm、CCS)。涉及的数据集包括 MIMIC-III/IV、eICU、OMOP-CDM、EHRShot、SleepEDF、SHHS、ISRUC、COVID19-CXR、ChestX-ray14、TUEV/TUAB 等。

安装:PyHealth 2.0 要求 Python ≥ 3.12 且 < 3.14,可用 uv 管理环境: uv init my-pyhealth-project cd my-pyhealth-project uv python pin 3.12 uv add pyhealth uv run python train.py 一次性脚本可用 uv run --with pyhealth python script.py;旧版 1.x(Python 3.9+)用 uv add pyhealth==1.16。

使用流程(完整流水线通常不足 20 行):先用 MIMIC3Dataset 等加载原始患者注册表得到 BaseDataset;调用 .set_task() 转换为监督样本 SampleDataset;再用 split_by_patient 按患者划分并生成 DataLoader;随后将 SampleDataset(而非 BaseDataset)传入模型(如 Transformer);最后用 Trainer 训练与评估,并以 binary_metrics_fn 等计算指标。

关键注意事项:模型、划分器和 DataLoader 接收的是 SampleDataset,只有 set_task 之后才可用;应按患者或就诊划分以避免信息泄漏;任务需与数据集匹配(如 MortalityPredictionMIMIC3 不适用于 MIMIC-IV);monitor 需与任务类型匹配(二分类用 pr_auc/roc_auc,多标签用 pr_auc_samples/jaccard_samples,多分类用 accuracy/f1_macro);MIMIC-IV 构造器使用 ehr_root= 而非 root=;建议设置持久的 cache_dir 避免重复解析。私有 MIMIC 数据可指向本地 CSV 路径,演示与学习可用无需授权的合成 MIMIC-III 桶(https://storage.googleapis.com/pyhealth/Synthetic_MIMIC-III/)。若仅需在表格数据上使用通用 PyTorch,则不必使用本工具。其余未在资料中明确的信息暂未提供。