Cardea
项目描述
Cardea
这个库正在开发中。有关更多信息,请联系dai-lab@mit.edu或任何贡献者。
概览
Cardea是一个基于模式构建的机器学习库,支持电子健康记录(EHR)。该库使用了在人类数据交互项目下开发的一系列AutoML工具,该项目位于麻省理工学院的数据到人工智能实验室。
我们的目标是提供一个易于使用的库,用于从电子健康记录中开发机器学习模型。使用这个库的典型方式是调用我们的API来开发预测模型。
一系列顺序过程被应用于构建机器学习模型。这些过程通过以下API触发以执行以下操作:
-
使用自动的数据组装器加载数据,我们将数据从原始格式捕获到实体集表示。
-
数据标记,其中我们创建标记时间,生成(1)指示创建特征的时间跨度的索引(2)预测任务的编码标签。这对于我们的特征工程阶段至关重要。
-
特征化,为此我们自动对数据进行特征工程,生成特征矩阵。
-
最后,我们使用建模组件构建、训练和调整机器学习模型。
要了解更多关于我们如何构建机器学习流程和我们的数据结构的信息,请阅读我们的文档这里。
快速入门
使用pip安装
安装Cardea最简单、最推荐的方式是使用pip
pip install cardea
这将从PyPi拉取并安装最新的稳定版本。
快速入门
在这个简短的教程中,我们将引导您通过一系列步骤,帮助您开始使用Cardea。
首先,加载核心类以进行操作
from cardea import Cardea
cardea = Cardea()
然后,我们可以无缝地插入我们的数据。在这个示例中,我们加载了Kaggle数据集:医疗预约未出现的预处理版本。要使用这个数据集,请从这里下载数据,然后将其解压缩到根目录,或者运行以下命令
curl -O https://dai-cardea.s3.amazonaws.com/kaggle.zip && unzip -d kaggle kaggle.zip
要加载数据,请使用以下命令将data
提供给加载器
cardea.load_entityset(data='kaggle')
:bulb: 要加载本地数据,将文件夹路径传递给
data
。
要验证数据已加载,您可以通过查看cardea.es
找到已加载的实体集,它应该输出以下内容
Entityset: kaggle
Entities:
Address [Rows: 81, Columns: 2]
Appointment_Participant [Rows: 6100, Columns: 2]
Appointment [Rows: 110527, Columns: 5]
CodeableConcept [Rows: 4, Columns: 2]
Coding [Rows: 3, Columns: 2]
Identifier [Rows: 227151, Columns: 1]
Observation [Rows: 110527, Columns: 3]
Patient [Rows: 6100, Columns: 4]
Reference [Rows: 6100, Columns: 1]
Relationships:
Appointment_Participant.actor -> Reference.identifier
Appointment.participant -> Appointment_Participant.object_id
CodeableConcept.coding -> Coding.object_id
Observation.code -> CodeableConcept.object_id
Observation.subject -> Reference.identifier
Patient.address -> Address.object_id
显示的输出表示实体集数据结构,其中cardea.es
由实体和关系组成。您可以在这里了解更多关于实体集的信息。
从那里,您可以通过指定类名来选择您想要解决的预测问题,这将返回问题的label_times
。
label_times = cardea.select_problem('MissedAppointment')
label_times
为数据集中的每个实例总结(1)实例的对应标签是什么(2)指示允许计算与数据集中每个实例相关的特征的时跨度的索引。
cutoff_time instance_id label
0 2015-11-10 07:13:56 5030230 noshow
1 2015-12-03 08:17:28 5122866 fulfilled
2 2015-12-07 10:40:59 5134197 fulfilled
3 2015-12-07 10:42:42 5134220 noshow
4 2015-12-07 10:43:01 5134223 noshow
您可以在这里了解更多关于label_times
的信息。
然后,您可以执行AutoML步骤并利用Cardea。
Cardea通过提供与您要解决的预测问题相关的label_times
自动通过特征工程提取特征
feature_matrix = cardea.generate_features(label_times[:1000])
:warning: 根据数据的大小,特征化数据可能需要一段时间。为了演示,我们只特征化前1000条记录。
一旦我们有特征,我们现在可以将数据分割成训练集和测试集
y = list(feature_matrix.pop('label'))
X = feature_matrix.values
X_train, X_test, y_train, y_test = cardea.train_test_split(
X, y, test_size=0.2, shuffle=True)
现在我们已将特征矩阵正确划分,我们可以使用它来训练机器学习流水线,优化超参数并找到最佳模型
cardea.select_pipeline('Random Forest')
cardea.fit(X_train, y_train)
y_pred = cardea.predict(X_test)
最后,您可以评估模型的性能
cardea.evaluate(X, y, test_size=0.2, shuffle=True)
该函数根据问题类型返回评分指标
{'Accuracy': 0.75,
'F1 Macro': 0.5098039215686274,
'Precision': 0.5183001719479243,
'Recall': 0.5123528436411872}
引用
如果您在研究中使用Cardea,请考虑引用以下论文
Sarah Alnegheimish; Najat Alrashed; Faisal Aleissa; Shahad Althobaiti; Dongyu Liu; Mansour Alsaleh; Kalyan Veeramachaneni. Cardea:一个用于电子健康记录的开源自动化机器学习框架. IEEE DSAA 2020.
@inproceedings{alnegheimish2020cardea,
title={Cardea: An Open Automated Machine Learning Framework for Electronic Health Records},
author={Alnegheimish, Sarah and Alrashed, Najat and Aleissa, Faisal and Althobaiti, Shahad and Liu, Dongyu and Alsaleh, Mansour and Veeramachaneni, Kalyan},
booktitle={2020 IEEE 7th International Conference on Data Science and Advanced Analytics (DSAA)},
pages={536--545},
year={2020},
organization={IEEE}
}
历史
0.1.2 - 2021-02-19
新模型器组件
-
无效的默认指标名称 - 问题#82 由 @ChengFR 提出
-
自sklearn v0.22以来已弃用 'sklearn.ensemble.GradientBoostingClassifier' 中的 'presort' 参数 - 问题#80 由 @ChengFR 提出
-
以FHIR或MIMIC格式加载演示数据 - 问题#79 由 @sarahmish 提出
-
修复自定义原语:Categorizer - 问题#75 由 @ChengFR 提出
-
更新Cardea类 - 问题#73 由 @sarahmish 提出
-
清理模型器 - 问题#71 由 @ChengFR 提出
-
更新和清理依赖项 - 问题#70 由 @ChengFR 提出
0.1.1 - 2020-12-11
基准框架
-
将google colab链接到Cardea并在README.md中添加徽章 - 问题#67 由 @sarahmish 提出
-
模型器加载管道而不是原语列表增强 - 问题#65 由 @ChengFR 提出
-
基准测试API增强 - 问题#64 由 @ChengFR 提出
-
更新文档主题增强 - 问题#62 由 @sarahmish 提出
-
原语设置增强 - 问题#61 由 @sarahmish 和 @ChengFR 提出
0.1.0 - 2020-09-15
在PyPI上发布:https://pypi.ac.cn/project/cardea/
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。