首页
/ Azure ML 低代码/无代码数据科学实战:在 Azure ML Studio 中用 AutoML 训练、部署与消费心力衰竭预测模型

Azure ML 低代码/无代码数据科学实战:在 Azure ML Studio 中用 AutoML 训练、部署与消费心力衰竭预测模型

2026-09-08 12:04:13作者:戚魁泉Nursing

本文是 Data Science for Beginners 课程"云端数据科学"模块第二节的技术指南(源文档位于 5-Data-Science-In-Cloud/18-Low-Code/README.md)。它以"心力衰竭风险预测"这一真实医学案例为主线,系统讲解如何在不编写代码的前提下,借助 Azure Machine Learning Studio 的可视化界面完成工作区创建、计算资源规划、数据集加载、AutoML 自动训练、模型部署与 REST 端点消费的完整链路。读完本文,你将掌握低代码/无代码(Low code/No code)方式在云端构建一个可落地 POC 的机器学习项目全流程,并能清晰判断它与 Azure ML SDK 编程方式 的适用边界。

1. 为什么选择 Azure Machine Learning,以及它提供哪些工具

Azure 云平台包含超过 200 种产品与云服务,旨在帮助开发者快速落地新方案。对数据科学家而言,探索与预处理数据、尝试多种模型训练算法以得到准确模型,是极其耗时的环节,且常常无法高效利用昂贵的计算硬件。Azure Machine Learning(Azure ML) 正是一个面向这类场景的云端平台,用于构建和运营机器学习解决方案:它涵盖数据准备、模型训练、预测服务发布与用量监控等功能,核心价值在于自动化大量与训练模型相关的重复性任务,并借助可按需伸缩、按实际使用计费的云端计算资源,以可控成本处理大规模数据。

Azure ML 面向"开发者 + 数据科学家"的机器学习工作流提供了多种工具:

工具 用途定位
Azure Machine Learning Studio 面向低代码/无代码的 Web 门户,支持模型训练、部署、自动化、追踪与资产管理的可视化操作,并与 Azure ML SDK 深度集成
Jupyter Notebooks 快速原型验证与测试 ML 模型
Azure Machine Learning Designer 以拖拽模块方式搭建实验并在低代码环境中部署管道
Automated machine learning UI(AutoML) 自动化机器学习模型开发的迭代任务,在高规模、高效率、高生产力的同时保证模型质量
Data Labelling(数据标注) 辅助 ML 工具,可自动标注数据
Visual Studio Code 的机器学习扩展 面向构建和管理 ML 项目的全功能开发环境
机器学习 CLI 通过命令行管理 Azure ML 资源
开源框架集成 与 PyTorch、TensorFlow、Scikit-learn 等主流框架集成,覆盖端到端的训练、部署与管理
MLflow 开源实验生命周期管理库;其中 MLflow Tracking 负责记录与追踪训练运行的指标与模型工件,与实验运行环境无关

2. 项目背景:心力衰竭预测 + 两种实现路线

云上数据科学三节课程沿用的是同一主题与数据集:先由 17-Introduction 章节 讲解"为什么用云做数据科学",本节用低代码/无代码方式实现,19-Azure 章节 再用 Azure ML SDK 复现同一项目。

2.1 两种路线的取舍

在 Azure ML Studio 中构建心力衰竭预测数据科学项目,存在两条路径:低代码/无代码(GUI)Azure ML SDK(代码)

低代码/无代码与 Azure ML SDK 两种项目构建路线对比示意图

低代码/无代码路线只需与图形界面(GUI)交互,无需任何编程基础,非常适合快速验证项目可行性、制作 POC(Proof Of Concept,概念验证);但项目一旦成长并进入生产化阶段,靠 GUI 逐个创建资源并不可行——资源创建、模型部署等一切环节都需要以代码方式自动化完成,这正是 Azure ML SDK 的关键价值所在。两种方式的对比总结如下:

维度 低代码/无代码 Azure ML SDK
代码能力要求 不需要 需要
开发时间 快速、容易 取决于代码熟练度
生产就绪程度

定位提示:本节属于本课程第 18 讲,配套的章节涂鸦笔记见 sketchnotes/18-DataScience-Cloud.png;训练用 Notebook 与代码路径相关资源均可对照 19-Azure 章节 查看。

2.2 心力衰竭数据集

心血管疾病(CVDs)是全球第一大死因,占全球总死亡人数的 31%。烟草使用、不健康饮食与肥胖、缺乏运动、有害饮酒等环境与行为风险因素,可作为特征用于风险估计模型;若能量化个体罹患心血管疾病的概率,将极大助力高危人群的预防。

本项目使用 Kaggle 公开的 Heart Failure(心力衰竭临床数据) 数据集。这是一个表格型数据集,包含 13 列(12 个特征 + 1 个目标变量)与 299 行观测。各变量说明如下:

# 变量名 类型 描述 示例
1 age 数值型 患者年龄 25
2 anaemia 布尔型 是否贫血(红细胞或血红蛋白减少) 0 或 1
3 creatinine_phosphokinase 数值型 血液中 CPK 酶的水平 542
4 diabetes 布尔型 患者是否患糖尿病 0 或 1
5 ejection_fraction 数值型 每次心脏收缩时离开心脏的血液百分比 45
6 high_blood_pressure 布尔型 患者是否患高血压 0 或 1
7 platelets 数值型 血液中的血小板数 149000
8 serum_creatinine 数值型 血液中血清肌酐水平 0.5
9 serum_sodium 数值型 血液中血清钠水平
10 sex 布尔型 性别(女/男) 0 或 1
11 smoking 布尔型 患者是否吸烟 0 或 1
12 time 数值型 随访期(天) 4
目标 DEATH_EVENT 布尔型 随访期内患者是否死亡 0 或 1

数据集来源信息可参见 5-Data-Science-In-Cloud/README.md 中的致谢说明(数据来自 Kaggle 的 Larxel,采用 CC BY 4.0 许可)。下载好数据后即可进入 Azure 开始项目。

3. 在 Azure ML Studio 中进行低代码/无代码模型训练

3.1 创建 Azure ML 工作区

训练模型的第一步是创建 Azure ML 工作区(Workspace)。工作区是 Azure Machine Learning 的顶层资源,为使用 Azure ML 过程中产生的所有工件提供集中管理位置:它会保留所有训练运行的历史记录,包括日志、指标、输出以及脚本快照,据此可以判断哪次训练运行产出了最佳模型。

工作区界面建议使用与操作系统兼容的最新版浏览器:Microsoft Edge(新版最新版,非 legacy 版本)、Safari(最新版,仅 Mac)、Chrome(最新版)、Firefox(最新版)。

⚠️ 计费提示:只要工作区存在于订阅中,Azure 订阅就会为数据存储收取少量费用。因此不再使用时,建议删除该 Azure ML 工作区。

创建步骤如下:

  1. 使用与 Azure 订阅关联的 Microsoft 凭据登录 Azure 门户
  2. 选择 +Create a resource,搜索 "Machine Learning",选择 Machine Learning 磁贴,点击 create(创建)按钮。
  3. 按下述配置填写设置:
    • Subscription:你的 Azure 订阅
    • Resource group:创建或选择资源组
    • Workspace name:为工作区输入唯一名称
    • Region:选择离你最近的地理区域
    • Storage account:注意将为工作区创建的默认新存储账户
    • Key vault:注意将为工作区创建的默认新密钥保管库
    • Application insights:注意将为工作区创建的默认新 Application Insights 资源
    • Container registry:None(首次将模型部署到容器时才会自动创建一个)
  4. 点击 Review + create,再点击 create,等待工作区创建完成(可能需要几分钟)。之后可在门户中通过 Machine Learning Azure 服务找到它。
  5. 在工作区的 Overview(概述) 页面启动 Azure Machine Learning studio(或在新浏览器标签页中访问 ml.azure.com),用 Microsoft 账户登录;如被提示,选择你的 Azure 目录、订阅及 Azure ML 工作区。
  6. 进入 Azure Machine Learning studio 后,切换左上角的 ☰ 图标即可查看界面中的各类页面,用于管理工作区内的资源。

虽然也可以通过 Azure 门户管理工作区,但对数据科学家与 ML 运维工程师而言,Azure Machine Learning Studio 提供了更聚焦的管理界面

3.2 计算资源(Compute Resources)

计算资源是用于运行模型训练与数据探索过程的云端资源,共四种类型:

  • Compute Instances(计算实例):供数据科学家处理数据与模型用的开发工作站——本质是创建一台虚拟机(VM)并启动 Notebook 实例,可在 Notebook 中通过调用计算集群来训练模型。
  • Compute Clusters(计算集群):按需处理实验代码的可伸缩 VM 集群,训练模型时必须使用;可选用 GPU 或 CPU 等专用资源。
  • Inference Clusters(推理集群):使用已训练模型提供预测服务的部署目标。
  • Attached Compute(附加计算):链接已有的 Azure 计算资源,如虚拟机或 Azure Databricks 集群。

3.2.1 如何为计算资源选型

创建计算资源时,以下选择往往是关键决策。

需要 CPU 还是 GPU? CPU(中央处理器)是执行计算机程序指令的电子电路;GPU(图形处理器)是一种能以极高速度执行图形相关代码的专用电路。二者架构的本质差异在于:CPU 擅长以高时钟速度快速处理广泛类型的任务,但并发能力受限;GPU 专为并行计算设计,因此远更擅长深度学习任务。

CPU GPU
更便宜 更昂贵
并发度较低 并发度更高
训练深度学习模型更慢 对深度学习最优

集群大小(Cluster Size):更大的集群更昂贵但响应性更好。时间充裕而预算有限,就从小的集群起步;反之,预算充足而时间紧迫,则选用更大的集群。

VM 大小(VM Size):可根据时间与预算约束调整 RAM、磁盘、核心数与时钟频率。提升这些参数成本更高,但性能更好。

专用实例还是低优先级实例(Dedicated or Low-Priority)? 低优先级实例意味着可被中断——Azure 可随时回收这些资源分配给其他任务,从而打断你的作业;专用实例不可中断,作业不会被未经许可地终止。这又是一次"时间 vs 金钱"的权衡:可中断实例比专用实例更便宜。

3.2.2 创建计算集群

Azure ML 工作区 中进入 Compute,即可看到上文讨论的各类计算资源(计算实例、计算集群、推理集群与附加计算)。本项目训练模型需要计算集群:在 Studio 中点击 Compute 菜单 → Compute cluster 标签 → 点击 + New 创建。

  1. 选择配置:专用 vs 低优先级、CPU 或 GPU、VM 大小与核心数(本项目可直接保留默认设置)。
  2. 点击 Next
  3. 为集群命名(compute name)。
  4. 选择配置:最小/最大节点数(Minimum/Maximum number of nodes)、缩容前的空闲秒数(Idle seconds before scale down)、SSH 访问。
    • 若最小节点数为 0,集群空闲时将为你省钱;
    • 最大节点数越高,训练耗时越短,推荐最大节点数为 3
  5. 点击 Create,该步骤可能需要几分钟。

创建好计算集群后,就可以把数据加载进 Azure ML Studio 了。

3.3 加载数据集

  1. Azure ML 工作区 中,点击左侧菜单的 Datasets,点击 + Create dataset 创建数据集,选择 From local files 并选取前面下载的 Kaggle 数据集文件。
  2. 为数据集命名、指定类型与描述,点击 Next;从文件上传数据,再点 Next
  3. Schema 页面中,将以下特征的数据类型改为 Booleananaemiadiabeteshigh_blood_pressuresexsmoking 与目标列 DEATH_EVENT。Schema 中列类型默认依据数据前 200 行自动检测,可按需手工修正;类型不匹配的值在转换时会失败,可能被填充为 null 或替换为错误值。点击 Next 再点击 Create

该页面中 ageejection_fractiontime 等数值列建议保持数值类型,布尔列显式设为 Boolean 可避免后续 AutoML 特征化时产生误解——这与本课程 08 讲"数据准备"中强调的类型正确性理念一脉相承。

数据集就绪、计算集群创建完毕后,即可开始模型训练。

3.4 使用 AutoML 进行低代码/无代码训练

传统机器学习模型开发需要消耗大量资源,并依赖显著的领域知识与时间才能产出并比较数十个模型。自动化机器学习(AutoML) 将模型开发中耗时的迭代任务自动化,使数据科学家、分析师与开发者能够以高规模、高效率、高生产力构建模型,同时保持模型质量,大幅缩短获得生产就绪模型的时间。

Azure ML 工作区 中进行 AutoML 训练的完整步骤如下:

  1. 点击左侧菜单的 Automated ML,选择刚上传的数据集,点击 Next
  2. 输入新的 experiment name(实验名称)、选择目标列 DEATH_EVENT 与之前创建的计算集群,点击 Next
  3. 选择任务类型 Classification(分类),点击 Finish。根据计算集群大小不同,此步骤可能需要 30 分钟到 1 小时
  4. 运行完成后,点击 Automated ML 标签,进入本次运行,再点击 Best model summary 卡片中的算法。

此处可以看到 AutoML 生成的最佳模型的详细信息;也可以在 Models 标签中探索其生成的其它模型。建议花几分钟在 Explanations(预览) 中查看模型解释。选定要使用的模型后(本项目直接采用 AutoML 挑选的最佳模型),即可进行部署。

AutoML 运行完成后展示最佳模型摘要(Best model summary)的界面

从课程配套的 19-Azure 章节 中的 SDK 实现可以反推 GUI 背后的机制:AutoML 会同时配置 task = "classification"label_column_name = "DEATH_EVENT"primary_metric(如 AUC_weighted)等参数并提交实验,迭代比较多种算法与超参数组合后挑选最优模型——GUI 上的每次点击,对应后台一次 AutoML 配置与 experiment.submit() 运行。

4. 低代码/无代码的模型部署与端点消费

4.1 模型部署

自动化机器学习界面允许你以几步操作将最佳模型部署为 Web 服务。部署即模型集成过程,使其能基于新数据做出预测、识别潜在机会区域。对本项目而言,部署为 Web 服务意味着医疗类应用程序将能够消费该模型,对患者的心脏病发作风险做出实时预测。

在最佳模型详情页点击 Deploy 按钮,然后:

  1. 填写名称、描述、计算类型(Azure Container Instance),启用身份验证(enable authentication),点击 Deploy。此步骤大约需要 20 分钟完成。
    • 部署过程包含多个环节:注册模型、生成资源、为 Web 服务完成配置;
    • Deploy status 下会出现状态消息,可定期点击 Refresh 查看部署状态;当状态变为 "Healthy" 时即表示已部署并运行。
  2. 部署完成后,点击 Endpoint 标签,再点击刚部署的端点,即可查看端点的全部详情。

Azure ML Studio 端点详情页的 Consume 标签:REST 端点、认证密钥与 Python 消费脚本

模型部署完成,即可开始消费端点。

4.2 端点消费

点击 Consume 标签,可找到 REST 端点与消费选项中的 Python 脚本。这段脚本可直接在本地机器上运行并消费端点,其核心是这两行代码:

url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score'
api_key = '' # Replace this with the API key for the web service
  • url 变量即 Consume 页中展示的 REST 端点
  • api_key 变量即同样位于 Consume 页的主密钥(Primary key)——仅当你启用了身份验证时才需要填入。

从截图界面可见,Consume 页的 Basic consumption info 区域同时提供 Primary key 与 Secondary key(支持 Regenerate 重新生成),消费选项则提供 C#、Python、R 三种语言示例,默认选中的 Python 脚本已包含处理自签名证书校验的辅助函数,可直接复制使用。

运行该脚本,会得到如下输出:

b'"{\\"result\\": [true]}"'

这说明:对脚本中给定数据的预测结果为 true,即预测该患者会发生心力衰竭。这也符合直觉——因为脚本自动生成的示例数据各项默认都是 0 / false(极端健康且无风险信号的输入,从数据本身看并非真实患者画像)。将数据替换为下面的输入样本后再运行:

data = {
    "data":
    [
        {
            'age': "0",
            'anaemia': "false",
            'creatinine_phosphokinase': "0",
            'diabetes': "false",
            'ejection_fraction': "0",
            'high_blood_pressure': "false",
            'platelets': "0",
            'serum_creatinine': "0",
            'serum_sodium': "0",
            'sex': "false",
            'smoking': "false",
            'time': "0",
        },
        {
            'age': "60",
            'anaemia': "false",
            'creatinine_phosphokinase': "500",
            'diabetes': "false",
            'ejection_fraction': "38",
            'high_blood_pressure': "false",
            'platelets': "260000",
            'serum_creatinine': "1.40",
            'serum_sodium': "137",
            'sex': "false",
            'smoking': "false",
            'time': "130",
        },
    ],
}

脚本应返回:

b'"{\\"result\\": [true, false]}"'

即:第一组(全 0 占位)样本被判为高风险 true,第二组较真实的 60 岁患者样本被判为 false。至此,你就完成了在 Azure ML 上"训练 + 部署 + 消费"模型的低代码/无代码全流程。

⚠️ 清理提醒:项目结束后,务必删除全部相关资源,避免持续产生费用。

5. 进阶挑战与作业

挑战:仔细查看 AutoML 为最优模型生成的模型解释与详情,尝试理解为什么最佳模型优于其它模型——AutoML 比较了哪些算法?它们之间有何差异?为什么在本次任务中这个模型表现更好?

课后巩固:建议进一步钻研 AutoML 为 Top 模型生成的模型解释,理解最佳模型胜出的原因,并把本节流程迁移到自己的数据上。

随堂作业:完成 Low code/No code Data Science project on Azure ML。作业要求使用 Azure ML 平台,以低代码/无代码方式对新数据完成训练、部署与消费,评分细则如下:

优秀(Exemplary) 合格(Adequate) 待改进(Needs Improvement)
上传数据时注意修正必要特征类型并清理数据;通过 AutoML 完成训练并检查模型解释;部署最佳模型并成功消费 上传数据时修正必要特征类型;通过 AutoML 完成训练,部署最佳模型并成功消费 部署了 AutoML 训练出的最佳模型并成功消费

关于评分细则中"注意修正特征类型"与"必要时清洗数据",可回到本课程的 08 讲数据准备 复习类型转换与缺失值处理的通用方法;若想了解同一项目用代码实现(自动创建资源、AutoML 配置、SDK 部署与 aci_service.run() 消费)的完整对照,可直接学习下一节 Data Science in the Cloud: The "Azure ML SDK" way 及其 Notebook 实现。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.81 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
920
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.79 K
1.02 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
390