跳转到主要内容

Cardea

项目描述

“Cardea”

Development Status PyPi Shield Tests Binder

Cardea

这个库正在开发中。有关更多信息,请联系dai-lab@mit.edu或任何贡献者。

概览

Cardea是一个基于模式构建的机器学习库,支持电子健康记录(EHR)。该库使用了在人类数据交互项目下开发的一系列AutoML工具,该项目位于麻省理工学院的数据到人工智能实验室

我们的目标是提供一个易于使用的库,用于从电子健康记录中开发机器学习模型。使用这个库的典型方式是调用我们的API来开发预测模型。

process

一系列顺序过程被应用于构建机器学习模型。这些过程通过以下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/

  • 分析笔记本增强 - 问题#58 由 @sarahmish 提出

  • MIMIC III数据加载器增强 - 问题#57 由 @sarahmish 提出

  • 在分析兼容性上冻结包 - 问题#55 由 @sarahmish 提出

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

cardea-0.1.2.tar.gz (421.6 kB 查看哈希值)

上传时间 源代码

构建分发

cardea-0.1.2-py2.py3-none-any.whl (401.0 kB 查看哈希值)

上传于 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面