Data-Science-For-Beginners 课程实践:在 Azure ML 上以 Low code/No code 方式完成"训练—部署—消费"全流程项目
【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners
导读
本文基于 Data-Science-For-Beginners 开源课程第五章(Data Science in the Cloud)第 18 课的课后作业任务展开,讲解如何在不编写训练代码的前提下,仅通过 Azure Machine Learning Studio 的图形界面,完成一个完整的机器学习项目:寻找并上传数据集、用 AutoML 自动训练模型、检查模型解释、将最佳模型部署为 Web 服务,并通过 REST 端点消费模型返回预测结果。读完本文,你将掌握一套可复制的 Low code/No code 数据科学项目工作流,并理解作业评分标准中各项要求的实际落地点。
该课程的英文原版作业位于 5-Data-Science-In-Cloud/18-Low-Code/assignment.md,配套课程正文位于 5-Data-Science-In-Cloud/18-Low-Code/README.md,法文翻译版作业即本文对应文档:translations/fr/5-Data-Science-In-Cloud/18-Low-Code/assignment.md。
一、作业目标:复现课程中的端到端项目
课程正文(README)以"心力衰竭预测(Heart Failure Prediction)"为示例项目,演示了两种构建数据科学项目的方式:Low code/No code 方式(纯图形界面操作)与Azure ML SDK 方式(编写 Python 代码),整体流程如下:
两种方式的定位差异决定了各自的适用场景,也直接影响你在作业中的做法:
| 对比维度 | Low code/No code | Azure ML SDK |
|---|---|---|
| 代码能力要求 | 不要求 | 要求 |
| 开发速度 | 快速、简单 | 取决于代码能力 |
| 生产就绪程度 | 否 | 是 |
Low code/No code 方式的优势在于无需任何编码知识即可通过 GUI 快速验证项目可行性、产出概念验证(POC);而当项目规模扩大、需要生产化时,GUI 无法高效管理资源,就需要通过 SDK 以编程方式自动化一切——从资源创建到模型部署。这一点也是课程第 19 课(5-Data-Science-In-Cloud/19-Azure/README.md)中 SDK 方式所要解决的问题。
本次作业(assignment)要求你不要使用课程自带的示例数据集,而是自主完成以下闭环:寻找可用于训练的数据 → 在 Azure ML 上用 AutoML 训练模型 → 部署最佳模型 → 成功消费(调用)该模型。官方建议的数据来源包括 Kaggle 与 Azure Open Datasets。
二、作业评分标准逐项拆解
作业原文提供了一张三级评分表(Rubric),它是检验你是否完成作业的硬性标准:
| 等级 | 要求 |
|---|---|
| 出色(Exemplary) | 上传数据时主动按需修改特征类型;必要时清洗数据;通过 AutoML 完成训练并检查模型解释;部署最佳模型并成功消费 |
| 合格(Adequate) | 上传数据时主动按需修改特征类型;通过 AutoML 完成训练,部署最佳模型并成功消费 |
| 待改进(Needs Improvement) | 仅完成"部署 AutoML 训练出的最佳模型并成功消费" |
从评分表可以提炼出四个关键技术动作,本文后续章节将逐一展开:
- 特征类型修改:数据上传后,在 Schema 阶段将分类特征显式改为布尔(Boolean)类型;
- 数据清洗:根据数据质量按需处理缺失值、异常值等;
- 模型解释(Explanations):训练完成后查看 AutoML 生成的模型解释,理解特征对预测结果的影响;
- 部署与消费:将最佳模型部署为实时端点,并通过 REST 请求消费获得预测。
三、准备工作:理解工作区与算力资源
在开始作业前,需要先建立 Azure ML 的基础设施认知。Azure ML 工作区(Workspace)是 Azure Machine Learning 的顶层资源,集中管理训练运行历史(日志、指标、输出、脚本快照),这些信息正是判断"哪个训练运行产生了最佳模型"的依据。
成本提醒:只要工作区存在于订阅中,就会为数据存储产生小额费用;完成作业后请记得删除不再使用的资源。
3.1 创建 Azure ML 工作区
- 使用 Azure 订阅对应的 Microsoft 凭据登录 Azure 门户;
- 选择+Create a resource,搜索并选择 Machine Learning,点击创建;
- 填写配置:订阅、资源组、唯一的工作区名称、就近的区域;存储账户、Key Vault、Application Insights 会默认新建;Container registry 选择 None(首次部署模型到容器时会自动创建);
- 等待工作区创建完成(约几分钟),在门户中进入工作区概览页,启动 Azure Machine Learning Studio(或直接访问 https://ml.azure.com),用 Microsoft 账户登录并选择你的目录、订阅与工作区;
- 在 Studio 左上角通过 ☰ 图标展开各管理页面。
3.2 计算资源:为 AutoML 准备计算集群
计算资源是运行模型训练与数据探索的云资源,共四种类型:
- 计算实例(Compute Instances):数据科学家的开发工作站(虚拟机 + Notebook 实例);
- 计算集群(Compute Clusters):可按需伸缩的 VM 集群,用于执行实验代码,训练模型必需;
- 推理集群(Inference Clusters):面向预测服务的部署目标;
- 附加计算(Attached Compute):关联现有 Azure 计算资源(VM、Databricks 集群等)。
创建计算资源时四个关键决策直接影响成本与训练速度:
- CPU 还是 GPU:CPU 串行能力强、价格低,但并发有限;GPU 擅长并行计算,是深度学习的首选,代价是更贵;
- 集群大小:大集群响应更快但更贵——时间多预算少选小集群,反之选大集群;
- VM 大小:RAM、磁盘、核心数与时钟频率越高性能越好,成本也越高;
- 专用实例还是低优先级实例:低优先级实例可被 Azure 回收(可中断),更便宜;专用实例不可中断,任务不会未经许可被终止。
本作业建议创建计算集群:在 Studio 中点击Compute → Compute cluster → +New,选择 Dedicated/Low priority、CPU/GPU、VM 大小与核心数(本项目可保留默认),命名集群,设置最小/最大节点数、缩容空闲秒数与 SSH 访问。最小节点数为 0 可让空闲集群零成本,最大节点数建议不超过 3(节点越多训练越快)。
四、核心步骤一:上传数据集并修正特征类型
课程示例使用 Kaggle 公开的 Heart Failure 数据集——一个 13 列(12 个特征 + 1 个目标变量)、299 行的表格数据。作业要求你寻找自己的数据集,但上传流程完全一致:
- 在 Azure ML 工作区左侧菜单点击Datasets → +Create dataset,选择From local files,选中本地下载的数据文件;
- 为数据集命名、选择类型、填写描述,上传文件;
- 在 Schema 阶段按需修改特征类型。课程示例将
anaemia、diabetes、high_blood_pressure、sex、smoking、DEATH_EVENT显式改为 Boolean 类型——这就是评分表中"修改特征类型"的落地点:正确的类型标注能帮助 AutoML 选择更合适的算法与预处理方式。
以课程的心力衰竭数据为例,其字段构成可供你在自选数据集时参考(注意DEATH_EVENT是目标变量):
| 变量名 | 类型 | 描述 |
|---|---|---|
| age | 数值 | 患者年龄 |
| anaemia | 布尔 | 红细胞或血红蛋白是否减少 |
| creatinine_phosphokinase | 数值 | 血液中 CPK 酶水平 |
| diabetes | 布尔 | 患者是否患有糖尿病 |
| ejection_fraction | 数值 | 每次收缩时离开心脏的血液百分比 |
| high_blood_pressure | 布尔 | 患者是否患有高血压 |
| platelets | 数值 | 血液中的血小板数量 |
| serum_creatinine | 数值 | 血清肌酐水平 |
| serum_sodium | 数值 | 血清钠水平 |
| sex | 布尔 | 女性或男性 |
| smoking | 布尔 | 患者是否吸烟 |
| time | 数值 | 随访期(天) |
| DEATH_EVENT(目标) | 布尔 | 随访期内患者是否死亡 |
五、核心步骤二:用 AutoML 训练模型并检查模型解释
AutoML(自动机器学习)将传统模型开发中耗时、重复的迭代过程自动化——传统方式需要大量领域知识去训练和比较几十个模型,而 AutoML 让数据科学家、分析师和开发者以更高的规模、效率与生产力构建模型,同时保持模型质量。
在 Studio 中完成训练:
- 左侧菜单点击Automated ML,选择刚上传的数据集,点击 Next;
- 输入新的实验名称、指定目标列(课程示例为
DEATH_EVENT)、选择已创建的计算集群; - 根据任务类型选择Classification(如果是预测连续数值则选 Regression,时间序列则选 Time series forecasting),点击 Finish。训练时长约 30 分钟到 1 小时,取决于计算集群大小;
- 运行完成后进入Automated ML标签页,点击你的运行,在Best model summary卡片中查看 AutoML 选出的最佳算法。
在最佳模型详情页中,可以查看 AutoML 生成的最佳模型的详细描述,也可在 Models 标签页探索其余被比较的模型。务必花时间点击 Explanations(预览)查看模型解释——这是评分表"出色"等级的关键分项,它揭示了各特征对预测结果的贡献程度,也是作业后续 Challenge 环节("为什么最佳模型优于其他模型?比较了哪些算法?")的分析素材。
六、核心步骤三:部署最佳模型为 Web 服务
部署是把模型集成到业务系统中、使其能对新数据做出预测的关键环节。对于心力衰竭项目,部署为 Web 服务意味着医疗应用可以调用模型,对患者的心脏病发作风险进行实时预测。
- 在最佳模型描述页点击Deploy按钮;
- 填写名称与描述,计算类型选择Azure Container Instance(ACI),启用认证(Enable authentication),点击 Deploy。部署过程约需 20 分钟,包含注册模型、生成资源、为 Web 服务配置等步骤;
- 部署状态显示在Deploy status下,可定期点击 Refresh 刷新,状态变为Healthy即表示部署成功;
- 部署完成后切换到Endpoint标签页,点击刚部署的端点,可查看端点的全部细节。
注意:启用认证后,调用端点时需要携带 API Key;这也是消费脚本中
api_key变量的来源。
七、核心步骤四:通过 REST 端点消费模型
在端点的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 serviceurl:Consume 标签页中展示的 REST 端点地址;api_key:启用认证后,在 Consume 标签页中获取的主密钥(Primary Key)。
7.1 首次运行:理解默认输出
直接运行脚本(脚本内自动生成的样本数据全部为 0 或 false)会得到如下输出:
b'"{\\"result\\": [true]}"'true表示对当前输入预测为"发生心力衰竭",这是因为默认样本数据的特征值都指向风险状态。你可以把数据替换为更贴近真实临床场景的输入:
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]}"'即第一个高风险样本预测为true(发生心力衰竭)、第二个相对健康的样本预测为false。至此,你已完成"训练 → 部署 → 消费"的完整闭环。
八、收尾与进阶思考
- 清理资源:项目结束后,务必删除工作区及相关资源,避免持续产生存储与计算费用。
- Challenge 思考题:深入查看 AutoML 为前列模型生成的解释与详情,尝试回答——AutoML 比较了哪些算法?它们之间的差异是什么?为什么在这个数据集上最佳模型表现更好?这类分析正是评分表"检查模型解释"的延伸。
- 后续学习路径:本课程对应的 SDK 版本位于 5-Data-Science-In-Cloud/19-Azure/,内含可运行的 notebook.ipynb 与 solution,可用于对比"图形界面方式"与"代码方式"在资源创建、训练、部署全流程上的差异;更完整的云端数据科学背景可回顾 5-Data-Science-In-Cloud/17-Introduction/README.md。
通过本作业,你将直观体会到 Low code/No code 方式"快且易上手"的优势,同时建立起对 AutoML、模型注册、端点部署与 REST 调用等概念的具体认知,为后续转向 Azure ML SDK 的工程化实践打下基础。
【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考