
Data Science for Beginners 实战基于 Azure ML 低代码/无代码方式的心力衰竭预测项目【免费下载链接】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 第 5 模块「云端数据科学」第二课的技术指南核心主题是使用 Azure Machine Learning 的 Low code/No code低代码/无代码方式在云端完成「心力衰竭风险预测」模型的训练、部署与消费全流程。读者将掌握 Azure ML 工作区与计算资源规划、AutoML 无代码训练、Web 服务部署与 REST Endpoint 调用并理解它与 Azure ML SDK 编程方式的差异与适用场景。本课位于 5-Data-Science-In-Cloud 模块 三课序列的中间环节前序课程 17-Introduction 云端数据科学导论 讲解了云计算的基础概念本课专注 GUI 无代码路径而后续课程 19-Azure 的 Azure ML SDK 方式 将用 Python 代码复现同样的训练、部署、消费流程。本文以 英文原版课程 及 丹麦语翻译版 为骨架并结合仓库中 SDK 课程源码进行纵深印证。1. 项目定位为什么用低代码/无代码方式Azure 云平台包含 200 多个产品与云服务而数据科学家在传统工作流中需要花费大量时间探索与预处理数据、尝试各种模型训练算法以获得准确模型。这些任务耗时且常常无法高效利用昂贵的计算硬件。Azure ML 正是为解决这一问题而生的云端机器学习平台。本课选用「心力衰竭预测」作为教学项目并通过以下架构展示两条实现路径——Low code/No codeGUI 方式与 Azure ML SDK代码方式两种方式各有取舍原课程给出了清晰的对比矩阵维度Low code/No codeAzure ML SDK编码技能要求不需要需要开发时间快速简单取决于编码熟练度生产就绪否是从对比可以看出Low code/No code 方式通过图形化界面GUI交互无需编码基础适合快速验证项目可行性、构建 POC概念验证。但当项目成长到需要生产就绪时通过 GUI 手工创建资源不再现实必须用代码将「资源创建到模型部署」的整个过程自动化——这正是本课姊妹篇 19-Azure 使用 Azure ML SDK 的编程方式 要解决的问题。本课聚焦前半部分无代码地完成一次完整的机器学习项目闭环。2. Azure Machine Learning 平台能力全景Azure ML 是基于云的机器学习解决方案构建与运营平台帮助数据科学家准备数据、训练模型、发布预测服务并监控使用情况。其核心价值在于自动化模型训练中大量耗时任务提升效率按需使用可弹性伸缩的云端计算资源仅在实际使用时产生费用。围绕机器学习工作流Azure ML 提供了一整套工具矩阵本课原文完整罗列如下Azure Machine Learning StudioAzure ML 的 Web 门户为模型训练、部署、自动化、跟踪与资产管理提供低代码/无代码选项并与 Azure ML SDK 无缝集成Jupyter Notebooks快速原型设计与 ML 模型测试Azure Machine Learning Designer通过拖拽模块构建实验并在低代码环境中部署管道Automated machine learning UIAutoML自动化 ML 模型开发的迭代任务在维持模型质量的同时实现高规模、高效率、高生产力的建模Data Labelling辅助 ML 工具自动为数据打标签Machine learning extension for Visual Studio Code构建与管理 ML 项目的完整开发环境Machine learning CLI从命令行管理 Azure ML 资源的命令工具开源框架集成支持 PyTorch、TensorFlow、Scikit-learn 等用于端到端 ML 流程的训练、部署与管理MLflow管理机器学习实验生命周期的开源库其中MLflow Tracking组件负责记录与跟踪训练运行的指标和模型工件与实验运行环境无关。本课主要使用前两个能力Studio 与 AutoML UI完成无代码流程。3. 心力衰竭预测项目与数据集3.1 业务背景心血管疾病CVDs是全球第一大死亡原因占全球死亡总数的 31%。烟草使用、不健康饮食与肥胖、缺乏运动、酗酒等环境与行为风险因素均可作为估算模型的特征。若能估算个体罹患心血管疾病的概率将极大帮助高风险人群预防心衰发作——这正是本项目的业务价值所在。3.2 数据集结构项目使用 Kaggle 公开的 Heart Failure 临床数据集tabular 结构13 列 12 个特征 1 个目标变量共 299 行。原课程给出了完整的字段字典表此处完整继承序号变量名类型描述示例1age数值患者年龄252anaemia布尔红细胞或血红蛋白是否减少0 或 13creatinine_phosphokinase数值血液中 CPK 酶水平5424diabetes布尔患者是否患有糖尿病0 或 15ejection_fraction数值每次收缩时离开心脏的血液百分比456high_blood_pressure布尔患者是否患有高血压0 或 17platelets数值血液中的血小板数量1490008serum_creatinine数值血液中血清肌酐水平0.59serum_sodium数值血液中血清钠水平—10sex布尔女性或男性0 或 111smoking布尔患者是否吸烟0 或 112time数值随访期天413DEATH_EVENT [目标变量]布尔随访期内患者是否死亡0 或 1注意目标变量是布尔型的DEATH_EVENT因此本项目的 AutoML 任务类型应选择「分类Classification」。拿到数据集后即可在 Azure 中启动项目。4. 创建 Azure ML 工作区4.1 工作区的作用工作区是 Azure Machine Learning 的顶层资源为使用 Azure ML 产生的所有工件提供集中管理场所。它记录所有训练运行的历史包括日志、指标、输出与脚本快照用于判断哪次训练运行产出了最佳模型。工作区贯穿整个课程训练、部署、消费都发生在其上下文内。4.2 前置要求浏览器建议使用与操作系统兼容的最新版本浏览器支持 Microsoft Edge新版非 legacy 版、Safari最新版仅 Mac、Chrome最新版、Firefox最新版Azure 订阅工作区存在于订阅期间会产生少量数据存储费用课程明确建议不再使用时删除工作区。4.3 创建步骤使用与 Azure 订阅关联的 Microsoft 凭据登录 Azure 门户选择创建资源搜索 Machine Learning 并选择 Machine Learning 磁贴点击创建按钮填写以下配置项这些字段直接决定工作区的底层资源配置项说明订阅 Subscription选择你的 Azure 订阅资源组 Resource group新建或选择资源组工作区名称 Workspace name输入唯一名称区域 Region选择离你最近的地理区域存储账户 Storage account为工作区创建的默认新存储账户默认新建密钥保管库 Key vault为工作区创建的默认新密钥保管库默认新建Application Insights为工作区创建的默认新 Application Insights 资源默认新建容器注册表 Container registry选「无」即可首次部署模型到容器时自动创建点击「创建并审阅」后点击「创建」等待数分钟完成创建工作在门户的 Machine Learning 服务中找到工作区在其概览页启动 Azure Machine Learning Studio或直接访问 ml.azure.com用 Microsoft 账户登录按提示选择 Azure 目录、订阅与工作区在 Studio 中通过左上角 ☰ 图标切换各功能页面以管理工作区资源。值得说明的是门户可用于管理工作区但对于数据科学家与 ML Ops 工程师而言Studio 提供了更聚焦的工作区资源管理界面后续所有步骤均在 Studio 中完成。5. 规划与创建 Compute 资源5.1 四类计算资源Compute 资源是运行模型训练与数据探索过程的云端资源共四种类型计算实例Compute Instances数据科学家的开发工作站本质是创建虚拟机VM并启动笔记本实例可从笔记本调用计算集群训练模型计算集群Compute Clusters按需处理实验代码的可伸缩 VM 集群训练模型时必需可配备专用 GPU 或 CPU 资源推理集群Inference Clusters使用已训练模型提供预测服务的部署目标附加计算Attached Compute链接现有的 Azure 计算资源如虚拟机或 Azure Databricks 集群。本项目训练模型需要的是计算集群。5.2 选型关键决策创建计算资源时的几个选择可能成为关键决策原课程逐一剖析CPU 还是 GPUCPU 是执行程序指令的电子电路按时钟速度衡量单任务处理速度但并发任务数受限GPU 是专为并行计算设计的专用电路极擅长深度学习任务。对本项目这样的小型表格分类任务默认 CPU 即可满足CPUGPU更便宜更贵并发度较低并发度更高训练深度学习模型较慢深度学习最优集群大小集群越大越贵但响应性更好。时间充裕而预算有限时从小的集群开始预算充足而时间紧张时选择较大集群。VM 大小可根据时间与预算约束调整 RAM、磁盘、核心数与时钟频率——参数越高越贵但性能越好。专用还是低优先级实例低优先级实例可被中断Azure 可能将资源回收分配给其他任务而中断你的作业专用实例不可中断。可中断实例更便宜这本质上是时间与金钱的又一次权衡。5.3 创建计算集群在 Studio 中点击「Compute」菜单 →「Compute cluster」页签 →「 New」按钮选择选项专用 vs 低优先级、CPU or GPU、VM 大小与核心数本项目可保持默认点击「下一步」为集群命名配置最小/最大节点数、空闲缩容等待秒数、SSH 访问。注意两个关键点最小节点数设为 0 可在集群空闲时省钱最大节点数越大训练越快课程推荐的最大节点数为 3点击「创建」等待数分钟完成。在 19-Azure 的 SDK 课程 中同样的集群通过AmlCompute.provisioning_configuration(vm_size Standard_D2_v2, min_nodes1, max_nodes3)创建可见 GUI 中的最小/最大节点与 VM 大小选项与 SDK 参数一一对应为后续转向代码方式打下基础。6. 将数据集加载到 Azure ML在 Studio 左侧菜单点击「数据集」点击「 创建数据集」按钮选择「从本地文件」选项选取之前下载的 Kaggle 数据集为数据集命名、选择类型并填写描述点击「下一步」从文件上传数据在 Schema架构页中将以下特征的数据类型改为Boolean布尔anaemia、diabetes、high_blood_pressure、sex、smoking 与 DEATH_EVENT然后点击「下一步」并「创建」。数据类型修正非常关键布尔特征若保持数值/字符串类型AutoML 的自动特征化与模型学习都会受到影响这与 assignment.md 作业 中「上传数据时注意必要时修改特征类型」的要求完全一致。数据集就位后即可开始训练。7. AutoML 无代码训练7.1 AutoML 原理传统 ML 模型开发资源密集需要大量领域知识与时间才能产出并比较数十个模型。自动机器学习AutoML自动化了 ML 模型开发中耗时、迭代的任务让数据科学家、分析师与开发者以高规模、高效率、高生产力构建模型同时维持模型质量大幅缩短获得生产级 ML 模型的时间。7.2 Studio 中的 AutoML 配置步骤在 Studio 左侧菜单点击「Automated ML」选择刚上传的数据集点击「下一步」输入新的实验名称、目标列DEATH_EVENT以及之前创建的计算集群点击「下一步」选择「分类Classification」任务点击「完成」。根据计算集群大小此步骤耗时约 30 分钟至 1 小时运行完成后点击「Automated ML」页签打开你的运行在「Best model summary」卡片中点击算法条目即可查看 AutoML 生成的最佳模型的详细描述在此界面可以查看最佳模型详情也可在「Models」页签探索 AutoML 生成的其他模型并通过「Explanations预览」按钮查看模型解释。建议花几分钟理解 AutoML 为何选出该模型见第 9 节挑战部分。选定模型后即可部署。7.3 与 SDK 版 AutoML 配置的映射了解 GUI 背后的参数有助于后续转向代码方式。在 19-Azure 课程 的 AutoMLConfig 中GUI 中的「实验名称、目标列、计算集群、分类任务」分别对应automl_settings { experiment_timeout_minutes: 20, # 实验超时分钟 max_concurrent_iterations: 3, # 最大并发迭代数 primary_metric: AUC_weighted # 主评估指标 } automl_config AutoMLConfig(compute_targetcompute_target, taskclassification, # 分类任务 training_datadataset, label_column_nameDEATH_EVENT,# 目标列 pathproject_folder, enable_early_stoppingTrue, featurizationauto, debug_logautoml_errors.log, **automl_settings)仓库中的 SDK notebook 完整实现了这一配置。这些参数experiment_timeout_minutes、max_concurrent_iterations、primary_metric、task、label_column_name、enable_early_stopping、featurization在 SDK 文档中均有明确定义了解它们能帮助你理解 GUI 每一步背后的机制。8. 将模型部署为 Web 服务部署是将模型集成起来、使其能基于新数据做预测并识别潜在机会的过程。对本项目而言部署为 Web 服务意味着医疗应用可以调用该模型对患者的心梗风险做实时预测。在最佳模型描述页点击「Deploy」按钮配置部署为服务命名、填写描述、计算类型选择Azure Container InstanceACI、启用身份验证Authentication点击「Deploy」。该步骤约需 20 分钟内部包含模型注册、资源生成与服务配置等多个环节部署状态下方会出现状态消息可定期点击「刷新」查看当状态变为Healthy时表示已部署并运行部署完成后点击「Endpoint」页签并点击刚部署的端点可查看该端点的全部详细信息。9. 消费 Endpoint调用预测服务9.1 获取 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 页签中的主密钥仅在启用身份验证时存在——脚本正是通过这两个信息完成端点调用。9.2 运行脚本与解读输出直接运行脚本应看到如下输出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]}即两组样本分别预测为「会发生」与「不会发生」心力衰竭。至此你已在 Azure ML 上完成模型的无代码训练、部署与消费。在 SDK 方式中同样调用通过aci_service.run(input_datatest_sample)完成见 19-Azure 课程 3.3 节可对比体会 GUI 与代码两种路径的差异。注意项目结束后请务必删除所有资源避免产生持续费用。10. 挑战与课后作业挑战解读 AutoML 模型解释仔细查看 AutoML 为排名靠前的模型生成的模型解释与细节尝试回答为什么最佳模型优于其他模型AutoML 比较了哪些算法它们之间的差异是什么为什么在这个数据集上最佳模型表现更好理解「最佳」背后的原因正是从无代码使用者进阶为数据科学家的关键一步。课后作业Low code/No code Data Science project on Azure ML 要求从 Kaggle 或 Azure Open Datasets 寻找新数据集用同样的无代码流程再训练、部署并消费一个模型。评分标准分三档卓越合格需改进上传数据时修正必要特征类型并清洗数据通过 AutoML 完成训练并查看模型解释部署最佳模型并成功消费上传数据时修正必要特征类型通过 AutoML 完成训练部署最佳模型并成功消费仅部署了 AutoML 训练的最佳模型并成功消费该作业强化了本课的核心技能点特征类型修正、数据清洗、AutoML 训练、模型解释与部署消费。11. 总结本课完整走通了「准备数据 → 规划计算 → AutoML 训练 → 部署 Web 服务 → 消费端点」的无代码机器学习项目闭环全程不写一行模型代码。核心收获包括理解 Azure ML 工作区、四类计算资源与 AutoML 的核心概念及选型权衡掌握数据集上传时布尔特征的类型修正方法学会通过 Best model summary 解读 AutoML 结果并借助模型解释理解模型行为掌握 ACI Web 服务部署与 REST Endpoint 消费urlapi_key的完整调用方式。若需进一步深化可研读同仓库中的 SDK 课程 及其 notebook 实现将本课的 GUI 操作逐一映射为可编程、可自动化的 Python 代码从而向生产级机器学习工程迈进。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考