会议/期刊:KDD’23 Tutorial
作者: Chaoqi Yang, Zhenbang Wu, Patrick Jiang, Zhen Lin, Junyi Gao, Benjamin P. Danek,…
机构: UIUC, UE
主页: PyHealth
代码: Github
教程: google drive
包含任务类型:
- 临床预测建模:readmissiong prediction, length of stay prediction task,mortality prediction, diagnosis-based drug recommendation
- 生理信号的深度学习:sleep staging, EEG event detection, abnormal EEG detection, arrythmia detection
- 医学图像:x-ray representation learning, chest disease classification, medical report generation
- 生物医学文本:clinical notes classification and medical report generation
- 预训练模型相关:Medical concept lookup, mapping and embeddings
PyHealth简介
『说明』:开箱即用,集成了一部分模型(CNN、LSTM、GRU…),支持多个开源数据(MIMIC3 MIMIC4 eICU…),也支持个人数据集(提供了函数将样本处理成json格式的数据,在这个json数据中,有一个标签label,通过这个标签去控制这个任务是什么类型的任务,二分类、多分类…),可支持“基于诊断的药物推荐”、“患者住院和死亡率预测”、“ICU停留时间预测”等医疗任务。
医疗任务构建流程
- 安装(pip install pyhealth或git clone下在pyhealth目录下 pip install .)
- 这个包有三个关键功能,数据处理、多个模块的单独调用、医疗代码的映射
- 加载数据集(pyhealth.datasets)
- 定义任务函数(pyhealth.tasks)
- 构建ML/DL模型(pyhealth.models)
- 只要传入数据集、特征列、标签,然后告诉是什么类型(分类、回归…)任务即可
- 模型训练(pyhealth.trainer)
- 推理及评价(pyhealth.metrics)
模块介绍
pyhealth.datasets
与任务独立,支持多个数据集,输出的是一个多级字典结构,如:mimic3
以图的形式对患者的诊疗数据分层(逐级):字典
- 患者level,在这一层中包含患者的访问记录,人口统计学信息…,会有Visit属性
- 访问level(医院)
- 涉及事件:诊断、程序、开药(临床时序数据)
以图的形式将数据处理结果展示,最上层是不同患者,在这一层中除了包含第二层的Visit属性,还会包含患者本身信息,比如患者ID,visit_id(等价inhos_times),患者人口统计学信息,在第二层中细化了第一层的VISIT属性,同时在第二层又包含了第三层的事件列表属性,第二层中包含了患者在不同医院的就诊记录,第三层细化了第二层的事件列表,如某医院的就诊事件:诊断、用药…
pyhealth.tasks
定义如何将每个患者的数据处理为任务的一组样本。在这个包里,提供了几个任务示例,比如:drug recommendation和length of stay prediction
pyhealth.models
提供参数配置相似但模型不同的机器学习模型
pyhealth.trainer
指定训练参数,例如epoch、优化器、学习率等,训练器会自动保存最佳模型和最终输出路径
pyhealth.metrics
提供了几种常见的评估指标,对二分类、多分类或多标签分类设置与sklearn.metrics中的评价指标有相同的样式和参数,同时还对不同的任务,提供了模型校准的相关指标以及预测集评估的相关指标&#x