医学模型代理¶
🤖 自动化医疗预测模型演变¶
📖 背景¶
在此场景中,我们考虑从患者的ICU监测数据中进行风险预测的问题。我们使用公共EHR数据集 - MIMIC-III,并提取一个二分类任务以评估该框架。在此任务中,我们旨在预测患者是否会因其前12小时的ICU监测数据而遭受急性呼吸衰竭(ARF)。
🎥 演示¶
🌟 介绍¶
在此场景中,我们的自动化系统提出假设,构建模型,实现代码,接收回测,并利用反馈。假设在这个持续的过程中被迭代。该系统旨在自动优化医疗预测的性能指标,从而通过自主研发找到优化的代码。
以下是步骤的增强大纲:
步骤 1 : 假设生成 🔍
根据先前实验分析和领域专业知识生成和提出初步假设,并进行充分的推理和论证。
步骤2:模型创建 ✨
将假设转化为模型。
开发、定义并实现机器学习模型,包括其名称、描述和公式。
步骤3:模型实施 👨💻
根据详细描述实现模型代码。
像开发者一样迭代演进模型,确保准确性和效率。
步骤 4 : 使用 MIMIC-III 进行回测 📉
使用新开发的模型对从MIMIC-III提取的任务进行回测。
评估模型在AUROC分数方面的有效性和性能。
步骤 5 : 反馈分析 🔍
分析回测结果以评估性能。
结合反馈来优化假设并改进模型。
步骤 6 : 假设优化 ♻️
根据回测反馈优化假设。
重复该过程以持续改进模型。
⚡ 快速开始¶
请参考 安装与配置 中的安装部分以准备您的系统依赖。
您可以通过运行以下命令尝试我们的演示:
🐍 创建一个 Conda 环境
创建一个新的conda环境,使用Python(3.10和3.11在我们的CI中经过良好测试):
conda create -n rdagent python=3.10
激活环境:
conda activate rdagent
📦 安装RDAgent
您可以从PyPI安装RDAgent包:
pip install rdagent
📬 请求PhysioNet账户
申请`PhysioNet <https://physionet.org/>`_的账户。
请求访问FIDDLE预处理数据:FIDDLE数据集。
将您的用户名和密码放入`.env`。
cat << EOF >> .env DM_USERNAME=<your_username> DM_PASSWORD=<your_password> EOF
🚀 运行应用程序
您可以使用以下命令直接运行应用程序:
rdagent med_model
🛠️ 模块的使用¶
环境配置
可以在`.env`文件中设置以下环境变量,以自定义应用程序的行为:
- pydantic settings rdagent.app.data_mining.conf.MedBasePropSetting¶
Show JSON schema
{ "title": "MedBasePropSetting", "type": "object", "properties": { "scen": { "default": "rdagent.scenarios.data_mining.experiment.model_experiment.DMModelScenario", "title": "Scen", "type": "string" }, "knowledge_base": { "default": "", "title": "Knowledge Base", "type": "string" }, "knowledge_base_path": { "default": "", "title": "Knowledge Base Path", "type": "string" }, "hypothesis_gen": { "default": "rdagent.scenarios.data_mining.proposal.model_proposal.DMModelHypothesisGen", "title": "Hypothesis Gen", "type": "string" }, "hypothesis2experiment": { "default": "rdagent.scenarios.data_mining.proposal.model_proposal.DMModelHypothesis2Experiment", "title": "Hypothesis2Experiment", "type": "string" }, "coder": { "default": "rdagent.scenarios.data_mining.developer.model_coder.DMModelCoSTEER", "title": "Coder", "type": "string" }, "runner": { "default": "rdagent.scenarios.data_mining.developer.model_runner.DMModelRunner", "title": "Runner", "type": "string" }, "summarizer": { "default": "rdagent.scenarios.data_mining.developer.feedback.DMModelExperiment2Feedback", "title": "Summarizer", "type": "string" }, "evolving_n": { "default": 10, "title": "Evolving N", "type": "integer" }, "username": { "default": "", "title": "Username", "type": "string" }, "password": { "default": "", "title": "Password", "type": "string" } }, "additionalProperties": false }
- 配置:
env_prefix: str = DM_
protected_namespaces: tuple = ()
- field coder: str = 'rdagent.scenarios.data_mining.developer.model_coder.DMModelCoSTEER'¶
编码器类
- field evolving_n: int = 10¶
进化次数
- field hypothesis2experiment: str = 'rdagent.scenarios.data_mining.proposal.model_proposal.DMModelHypothesis2Experiment'¶
实验类的假设
- field hypothesis_gen: str = 'rdagent.scenarios.data_mining.proposal.model_proposal.DMModelHypothesisGen'¶
假设生成类
- field password: str = ''¶
Physionet账户密码
- field runner: str = 'rdagent.scenarios.data_mining.developer.model_runner.DMModelRunner'¶
运行器类
- field scen: str = 'rdagent.scenarios.data_mining.experiment.model_experiment.DMModelScenario'¶
数据挖掘模型的场景类
- field summarizer: str = 'rdagent.scenarios.data_mining.developer.feedback.DMModelExperiment2Feedback'¶
总结类
- field username: str = ''¶
Physionet账户用户名