Data Science for Beginners 云端实战:基于 Azure ML Studio 的低代码/无代码机器学习全流程指南
2026/9/11 18:27:45 网站建设 项目流程

Data Science for Beginners 云端实战:基于 Azure ML Studio 的低代码/无代码机器学习全流程指南

【免费下载链接】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 课程的 18-Low-Code 章节(原始课程文档),系统讲解如何在不编写任何代码的前提下,借助 Azure Machine Learning Studio 完成「数据准备 → AutoML 自动训练 → 模型部署 → REST 端点消费」的完整数据科学项目闭环。文章以心力衰竭风险预测项目为主线,读者学完后将掌握 Azure ML 工作区与计算集群的创建方法、AutoML 无代码训练的配置技巧,以及通过 REST API 与 Python 脚本消费已部署模型的实际能力,并与后续的 Azure ML SDK 课程形成「无代码与有代码」两条路线对照。

1. 引言:为什么需要低代码/无代码的云上数据科学

数据科学家在模型研发中会消耗大量时间用于数据探索、预处理以及反复试验不同的训练算法。这些任务耗时费力,还常常造成昂贵计算资源的低效使用。微软 Azure 云平台提供了超过 200 种产品与云服务,其中Azure Machine Learning(Azure ML)正是一套专为构建和运营机器学习解决方案而设计的云端平台:它帮助数据科学家准备数据、训练模型、发布预测服务并监控其使用情况,同时通过自动化许多耗时任务来提升效率;更重要的是,它支持按需弹性伸缩的云端计算资源,只在真正使用时才产生费用。

Azure ML 为开发者与数据科学家提供了覆盖完整机器学习工作流的工具矩阵:

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

1.1 项目设定:心力衰竭预测的两种实现路线

本课程围绕同一目标探讨两条实现路径:在 Azure ML Studio 中构建心力衰竭预测数据科学项目。如下图所示,两种路径共享数据集与 AutoML 训练阶段,区别在于操作方式——低代码/无代码走图形界面(GUI),SDK 路线则以 Python 代码编程实现:

两种方式各有利弊。低代码/无代码方式上手门槛极低——只需与 GUI 交互、无需任何编码知识,适合快速验证项目可行性、产出概念验证(POC);但当项目规模扩张、需要进入生产环境时,通过 GUI 创建资源便不再现实,此时需要以编程方式自动化「资源创建到模型部署」的全部环节,这正是 Azure ML SDK 的用武之地。二者对比如下:

维度低代码/无代码Azure ML SDK
编码知识不需要需要
开发时间快速且简单取决于编码水平
生产就绪

1.2 心力衰竭数据集(Heart Failure Dataset)

心血管疾病(CVD)是全球第一大死亡原因,占全球死亡总数的 31%。吸烟、不健康饮食与肥胖、缺乏运动、酗酒等环境与行为风险因素可作为评估模型的输入特征;若能评估个体罹患 CVD 的概率,对高危人群的预防意义重大。

课程采用 Kaggle 公开的 Heart Failure 临床数据集:这是一个表格式数据集,共 13 列(12 个特征 + 1 个目标变量)、299 行,字段说明如下:

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

拿到数据集后,即可在 Azure 中启动项目。

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

2.1 创建 Azure ML 工作区(Workspace)

工作区是 Azure Machine Learning 的顶级资源,提供集中管理所有工件(artifacts)的场所。它会保留全部训练运行的历史记录,包括日志、指标、输出以及脚本快照,供你判断哪一次训练运行产出了最佳模型。浏览器方面建议使用与操作系统兼容的最新版本,官方支持:新版 Microsoft Edge(最新版,非 legacy 版)、Safari(最新版,仅 Mac)、Chrome(最新版)、Firefox(最新版)。

注意:只要 Azure ML 工作区存在于订阅中,订阅就会被收取少量数据存储费用,因此不再使用时请及时删除工作区。

创建工作区步骤:

  1. 使用与 Azure 订阅关联的 Microsoft 凭据登录 Azure 门户;

  2. 选择+创建资源(Create a resource),搜索 Machine Learning 并选择对应磁贴,点击创建按钮:

  3. 按下述配置填写:

    • 订阅(Subscription):你的 Azure 订阅
    • 资源组(Resource group):创建或选择资源组
    • 工作区名称(Workspace name):输入唯一名称
    • 区域(Region):选择离你最近的地理区域
    • 存储账户(Storage account):注意将为工作区新建的默认存储账户
    • Key vault:注意将为工作区新建的默认密钥保管库
    • Application insights:注意将为工作区新建的默认资源
    • 容器注册表(Container registry):无(首次向容器部署模型时将自动创建)
  4. 点击「创建 + 审阅(Create + review)」再点击「创建(Create)」,等待工作区创建完成(可能需要几分钟),随后在门户的 Machine Learning 服务中进入该工作区;

  5. 在工作区概览页启动 Azure Machine Learning Studio(或直接在浏览器访问 https://ml.azure.com 并使用 Microsoft 账户登录),如被提示则选择你的 Azure 目录、订阅及工作区;

  6. 在 Studio 中点击左上角 ☰ 图标即可展开各功能页面,用于管理工作区中的各类资源:

工作区也可通过 Azure 门户管理,但对数据科学家与 MLOps 工程师而言,Studio 提供了更聚焦的资源管理界面。

2.2 计算资源(Compute Resources)

计算资源是承载模型训练与数据探索过程的云端资源,共有四类:

  • 计算实例(Compute Instances):数据科学家的开发工作站,创建虚拟机(VM)并启动 Notebook 实例,可再从 Notebook 中调用计算集群训练模型;
  • 计算集群(Compute Clusters):按需处理实验代码的可伸缩 VM 集群,训练模型时必需,可使用专用 GPU 或 CPU 资源;
  • 推理集群(Inference Clusters):使用已训练模型部署预测服务的部署目标;
  • 挂接计算(Attached Compute):关联现有的 Azure 计算资源(如虚拟机、Azure Databricks 集群)。
2.2.1 计算资源选型的关键决策

CPU 还是 GPU?

CPU(中央处理器)是以较高时钟频率快速处理广泛任务的电子电路,但并发任务数受限;GPU(图形处理器)专为并行计算设计,因此更擅长深度学习任务。二者取舍如下:

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

集群大小(Cluster Size):更大的集群更贵但响应更好。有时间但预算有限应从集群起步;反之资金充裕、时间紧张则选择更大的集群。

虚拟机大小(VM Size):根据时间与预算约束可调节 RAM、磁盘、核心数与时钟频率——提升所有参数都会增加成本,但带来更好的性能。

专用还是低优先级实例(Dedicated or Low-Priority):低优先级实例是可被抢占的——Azure 可能将这些资源调配给其他任务从而中断当前作业;专用(不可抢占)实例则不会未经许可被终止。这是又一层「时间 vs 金钱」的权衡,可抢占实例更便宜。

2.2.2 创建计算集群

在之前创建的 Azure ML 工作区进入「Compute(计算)」菜单,即可看到上述四类计算资源。本项目训练模型需要计算集群:在 Studio 中点击「Compute」菜单 →「Compute cluster」标签 → 点击「+ New」按钮:

  1. 选择选项:专用 vs 低优先级、CPU 或 GPU、VM 大小与核心数(本项目可保留默认设置),点击「Next」;
  2. 为集群命名,然后选择选项:最小/最大节点数、缩容前的空闲时间、SSH 访问。注意:最小节点数设为 0可在集群空闲时省钱;最大节点数越大训练耗时越短,官方推荐最大节点数为 3;
  3. 点击「Create」,此步骤可能需要几分钟。

完成集群创建后,需要把数据加载进 Azure ML Studio。

2.3 加载数据集

  1. 在 Azure ML 工作区点击左侧菜单「Datasets(数据集)」,点击「+ Create dataset」按钮,选择「From local files(从本地文件)」并选取此前下载的 Kaggle 数据集:

  2. 为数据集命名、选择类型、填写描述,点击「Next」,上传数据文件后再点「Next」;

  3. 在 Schema(架构)页面,将以下特征的数据类型改为 Boolean(布尔):anaemia、diabetes、high blood pressure、sex、smoking、DEATH_EVENT。点击「Next」与「Create」。

数据集就绪、计算集群创建完成后,即可开始模型训练。这里将布尔特征显式声明为 Boolean 类型至关重要——它与原文档给出的数据字段类型表完全对应(6 个布尔特征 + 6 个数值特征),可避免 AutoML 将二值特征误判为数值回归问题。

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

传统 ML 模型开发资源密集、需要大量领域知识,并且要花费时间生成和比较几十个模型。自动机器学习(AutoML)将模型开发中耗时、迭代的任务自动化,让数据科学家、分析师与开发者以高可扩展性、高效率构建模型且不牺牲质量,大幅缩短生产级模型的产出时间。

操作流程:

  1. 在 Azure ML 工作区点击左侧菜单「Automated ML」,选择刚上传的数据集,点击「Next」:

  2. 输入新的实验名称(Experiment name)、目标列(Target column)选择DEATH_EVENT,并选择之前创建的计算集群,点击「Next」;

  3. 选择任务类型Classification(分类),点击「Finish」。此步骤根据计算集群大小约需30 分钟到 1 小时

  4. 运行完成后,点击「Automated ML」标签进入你的运行,再点击「Best model summary(最佳模型摘要)」卡片中的算法,即可查看 AutoML 生成的最佳模型详情:

在「Models」标签可浏览 AutoML 生成的其他候选模型,也建议花几分钟探索「Explanations (preview)(解释预览)」功能查看模型可解释性分析。确定要使用的模型后(本课程直接采用 AutoML 选出的最佳模型),即可进入部署环节。

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

3.1 部署模型

自动化机器学习界面允许你以几步操作将最佳模型部署为 Web 服务。部署(Deployment)即模型的集成落地,使其能基于新数据做出预测。就本项目而言,部署为 Web 服务意味着医疗应用可以实时调用模型,预测患者发生心脏病的风险。

在最佳模型描述页点击「Deploy」按钮:

  1. 为部署命名、填写描述,计算类型选择Azure Container Instance(Azure 容器实例),启用身份验证(Enable authentication),点击「Deploy」。此步骤约需20 分钟:部署过程包括注册模型、生成资源并为其配置 Web 服务等多个环节,可在「Deploy status」下查看状态消息,定期点「Refresh」刷新;当状态变为"Healthy"时即部署成功并运行中;

  2. 部署完成后点击「Endpoint(端点)」标签,选中刚部署的端点,即可查看该端点的全部细节:

3.2 消费端点(Endpoint Consumption)

点击「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,仅当你启用了身份验证时才需要)——这正是脚本消费端点的凭据机制。

运行脚本应得到如下输出:

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/全 false)预测为true,第二条真实临床样本(60 岁、射血分数 38、随访 130 天等)预测为false——至此,你已在 Azure ML 上完成了模型的训练、部署与消费。注意请求体结构遵循{"data": [ {特征字典}, ... ]}的约定,字段名必须与数据集 Schema 中的 12 个特征完全一致。

注意:项目结束后,记得删除所有资源以避免持续计费。

4. 从低代码到 SDK:两条路线的对照与进阶

低代码/无代码体验到的每一步,都能在 19-Azure 课程的 notebook.ipynb 中找到对应的 SDK 代码实现,这恰好印证了 Studio 与 SDK 的无缝集成设计。对照要点如下:

  • 工作区与实验Workspace.from_config()加载配置,Experiment(ws, experiment_name)创建或获取实验(实验名需为 3-36 个字符,以字母或数字开头,仅含字母、数字、下划线与连字符);
  • 计算集群:SDK 中AmlCompute.provisioning_configuration(vm_size="Standard_D2_v2", min_nodes=1, max_nodes=3)与 GUI 中的节点配置一一对应(见 notebook.ipynb 中的heart-f-cluster创建代码);
  • AutoML 配置:GUI 选择的实验名、目标列、集群与任务类型,对应 SDK 的AutoMLConfig参数——experiment_timeout_minutes=20(运行超时分钟数)、max_concurrent_iterations=3(最大并发迭代数)、primary_metric='AUC_weighted'(主评估指标)、task="classification"(任务类型,可选 classification/regression/forecasting)、training_datalabel_column_name="DEATH_EVENT"pathenable_early_stopping=True(指标短期无提升时提前终止)、featurization='auto'(自动特征化)与debug_log(调试日志文件);
  • 部署与消费:SDK 使用InferenceConfig+AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)在 Azure 容器实例上部署(对应 GUI 的 Deploy 按钮),并以aci_service.run(input_data=test_sample)消费端点。

从源码结构看,GUI 的每次点击背后都是这些 SDK 对象的等价操作,这也解释了课程中「项目成长后必须转向 SDK 自动化」的判断依据。

5. 课后挑战与延伸练习

  1. 模型可解释性挑战:仔细观察 AutoML 为顶级模型生成的 Explanations 与详情,尝试理解为什么最佳模型优于其他模型——AutoML 比较了哪些算法?它们之间有何差异?为什么在此案例中该模型表现更好?
  2. 独立实战任务:参考 课程作业 的要求——从 Kaggle 或 Azure Open Datasets 寻找新的数据集,上传时按需调整特征类型并清理数据,通过 AutoML 完成一次训练、检查模型解释、部署最佳模型并成功消费。作业评分标准(Rubric)依次为:完成「类型调整 + 数据清洗 + AutoML 训练 + 解释检查 + 部署消费」为优秀;省略解释检查为合格;仅完成「部署并消费 AutoML 最佳模型」为待改进。

总结

本课程完整走通了「创建工作区 → 创建计算集群 → 上传数据集 → AutoML 无代码训练 → 部署 Web 服务 → REST 端点消费」的低代码数据科学闭环,并借由 19-Azure 的 SDK 对照实现 与 notebook.ipynb 展示了同一流程的编程化写法。低代码/无代码路线适合快速验证与 POC,SDK 路线适合生产级自动化,二者的结合正是云端数据科学的完整能力图谱。

【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询