FEATURED · 精选文章

数据科学上云实战:基于 Azure ML 的心脏衰竭预测项目(低代码与 SDK 双路径)

发布时间 / 2026/9/14 2:34:40
来源 / 创域科博编辑部
栏目 / 资讯中心
数据科学上云实战:基于 Azure ML 的心脏衰竭预测项目(低代码与 SDK 双路径) 数据科学上云实战基于 Azure ML 的心脏衰竭预测项目低代码与 SDK 双路径【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners本文聚焦当前仓库5-Data-Science-In-Cloud课程模块对应波斯语翻译translations/fa/5-Data-Science-In-Cloud/README.md所概括的章节主题先厘清云计算的本质与选择云做数据科学的理由再以 Kaggle 心脏衰竭Heart Failure公开数据集为实战素材分别通过低代码/无代码Azure ML Studio AutoML与Azure ML SDK 编程两种方式完整走通训练 → 部署 → 消费的机器学习模型全生命周期。读完本文你将掌握云上数据科学项目的整体架构、AutoML 配置要点、工作区与计算资源的管理方法以及 REST 端点的调用方式。图片来源本课程模块封面图仓库路径translated_images/fa/cloud-picture.f5526de3c6c6387b.webp。一、为什么做大数据科学要先理解云面对大规模数据时云计算往往能成为改变游戏规则的关键因素。本模块5-Data-Science-In-Cloud/README.md的核心目标就是回答两个问题云是什么、为什么对数据科学有帮助并在此基础上完成一个真实项目——构建用于评估个体心脏衰竭风险概率的模型并利用云端算力以两种不同方式完成模型的训练、部署与消费。1.1 云计算的三种部署形态从部署形态看云通常被划分为公有云、私有云与混合云三类详见 17-Introduction/README.md公有云Public Cloud由第三方云服务商拥有并运营通过互联网向公众交付计算资源私有云Private Cloud仅供单一企业或组织独享服务与基础设施维护在私有网络上混合云Hybrid Cloud公有云与私有云的组合用户在保留本地数据中心的同时允许数据和应用程序运行在一个或多个公有云上。1.2 云服务的三大服务模型绝大多数云计算服务可归入以下三个类别服务模型用户获得的内容用户无需操心的事IaaS基础设施即服务租用 IT 基础设施服务器、虚拟机VM、存储、网络、操作系统硬件采购与机房建设PaaS平台即服务租用开发、测试、交付和管理软件应用的环境服务器、存储、网络、数据库等底层基础设施的搭建与管理SaaS软件即服务按需通常按订阅访问软件应用应用托管、底层基础设施、升级与安全补丁维护当前主流的云服务商包括 Amazon Web ServicesAWS、Google Cloud PlatformGCP与 Microsoft Azure 等。二、数据科学为什么选择云2.1 云计算的通用优势开发者和 IT 从业者选择云的理由集中在以下几点依据 17-Introduction/README.md创新Innovation可以直接把云服务商提供的创新服务集成进应用灵活Flexibility按需付费只为自己需要的服务买单并随需求演进调整预算Budget无需为购买硬件、软件和建设本地数据中心做前期投入用多少付多少弹性伸缩Scalability资源随项目需求缩放应用可按外部因素动态增减算力、存储与带宽生产力Productivity把数据中心管理等可外包的琐事交给云专注业务本身可靠性Reliability提供持续备份与灾难恢复方案保障业务在危机时刻不中断安全Security借助云商提供的策略、技术与控制手段加固项目安全。2.2 面向数据科学家与开发者的云价值落到数据科学工作者的具体场景上云解决了以下典型痛点同样来自 17-Introduction/README.md海量数据存储不必自购、管理、防护大型服务器可直接用 Azure Cosmos DB、Azure SQL Database、Azure Data Lake Storage 等方案把数据存在云上数据集成借助 Data Factory 等服务把来自多个数据源的数据采集、转换并集成到单一数据仓库完成从数据收集到采取行动的过渡数据处理算力处理海量数据需要大量算力并非人人都有足够强大的机器直接借助云的庞大算力运行和部署解决方案是常见选择数据分析服务Azure Synapse Analytics、Azure Stream Analytics、Azure Databricks 等把数据转化为可行动的洞察机器学习与智能服务无需从零开始可直接使用 AzureML 提供的机器学习算法也可调用语音转文字、文字转语音、计算机视觉等认知服务。2.3 云端数据科学的两个真实场景场景一社交媒体实时情感分析。假设你运营一个新闻媒体网站希望借助实时数据了解读者感兴趣的内容。典型实现链路为创建用于流式输入的事件中心Event Hub以采集 Twitter 数据 → 配置并启动调用 Twitter Streaming API 的客户端应用 → 创建 Stream Analytics 作业 → 指定作业输入与查询 → 创建输出接收器并指定作业输出 → 启动作业。核心观察指标是特定话题话题标签的推文量级与情感倾向。场景二科学论文知识挖掘。本课程作者之一 Dmitry Soshnikov 构建过分析 COVID 论文的工具其流程为用 Text Analytics for Health 抽取和预处理信息 → 用 Azure ML 并行化处理 → 用 Cosmos DB 存储与查询信息 → 用 Power BI 创建交互式仪表盘做数据探索与可视化。可以看到云服务可以在数据科学流程的几乎每个环节被灵活调用。三、项目总览心脏衰竭预测的两种实现路径本节即模块目录页5-Data-Science-In-Cloud/README.md所描绘的核心骨架同一个预测项目两条实现路线。架构图来源translated_images/fa/project-schema.420e56d495624541.webp原始图片见 18-Low-Code/images/project-schema.PNG展示了低代码/无代码与Azure ML SDK两条路线并行的整体方案。两条路线各有优劣对比见 18-Low-Code/README.md对比维度低代码/无代码Azure ML SDK对编码能力的要求不要求要求开发耗时快速且容易取决于编码水平生产就绪程度否适合 POC是低代码/无代码方式通过图形界面GUI交互无需编码经验能快速验证项目可行性和构建概念验证POC但当项目成长、需要生产就绪时GUI 方式难以规模化地创建资源必须用代码程序化地自动化一切——从资源创建到模型部署这正是掌握 Azure ML SDK 的价值所在。3.1 数据集心脏衰竭临床记录心血管疾病CVD是全球第一大死因约占全球死亡总数的 31%。能够估计个体发生 CVD 的概率对高危人群的预防有重大意义。本模块采用 Kaggle 公开的心脏衰竭数据集Heart Failure Clinical Data由 Larxel 发布遵循 CC BY 4.0 许可这是一个表格型数据集包含13 列12 个特征 1 个目标变量和 299 行见 18-Low-Code/README.md 的 1.3 节序号变量名类型描述示例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拿到数据集后即可在 Azure 上启动项目。四、路线一低代码/无代码方式Azure ML Studio AutoML本节完整复现 18-Low-Code/README.md 的实操步骤。4.1 Azure ML 平台能力速览Azure ML 是为在 Azure 中构建和运营机器学习解决方案而生的云平台覆盖数据准备、模型训练、预测服务发布与用量监控。它提供的能力包括Azure Machine Learning Studio用于低代码/无代码的模型训练、部署、自动化、追踪与资产管理的 Web 门户并与 Azure ML SDK 无缝集成Jupyter Notebooks快速原型与测试 ML 模型Azure Machine Learning Designer在低代码环境中拖拽模块构建实验并部署流水线AutoML自动化机器学习 UI自动化 ML 模型开发中耗时、迭代的任务以高规模、高效率和高生产力构建模型同时维持模型质量Data Labelling辅助标注数据的 ML 工具机器学习 VS Code 扩展构建与管理 ML 项目的全功能开发环境机器学习 CLI从命令行管理 Azure ML 资源与开源框架集成支持 PyTorch、TensorFlow、Scikit-learn 等完成端到端 ML 流程MLflow管理 ML 实验生命周期的开源库其中 MLflow Tracking 负责记录与追踪训练运行指标和模型工件。4.2 创建 Azure ML 工作区工作区是 Azure Machine Learning 的顶层资源集中管理使用 Azure ML 创建的所有工件并保留所有训练运行的历史日志、指标、输出、脚本快照据此判断哪次训练运行产出了最佳模型。需要注意只要工作区存在于订阅中就会产生少量数据存储费用不再使用时建议删除工作区。创建步骤详见 18-Low-Code/README.md 2.1 节使用与 Azure 订阅关联的 Microsoft 凭据登录 Azure 门户选择Create a resource搜索 Machine Learning 并选择 Machine Learning 磁贴点击创建按下述配置填写设置Subscription你的 Azure 订阅Resource group创建或选择一个资源组Workspace name为工作区输入唯一名称Region选择离你最近的地理区域Storage account注意将为工作区新建的默认存储账户Key vault注意默认新建的密钥保管库Application insights注意默认新建的 Application Insights 资源Container registry选择 None首次将模型部署到容器时系统会自动创建点击 Review create再点击 Create等待几分钟完成创建在工作区概览页启动 Azure Machine Learning Studio或打开新标签页访问 ml.azure.com按提示选择 Azure 目录、订阅与工作区在 Studio 中切换左上角 ☰ 图标浏览管理工作区资源的各个页面。浏览器建议使用与操作系统兼容的最新版本Microsoft Edge新版、Safari最新版仅 Mac、Chrome最新版、Firefox最新版。4.3 计算资源选型要点与集群创建计算资源是可在其上运行模型训练和数据探索流程的云端资源共四种计算实例Compute Instances数据科学家处理数据和模型用的开发工作站会创建虚拟机VM并启动笔记本实例计算集群Compute Clusters用于按需处理实验代码的可伸缩 VM 集群训练模型时需要可使用专用 GPU 或 CPU 资源推理集群Inference Clusters使用已训练模型的预测服务的部署目标附加计算Attached Compute链接到已有的 Azure 计算资源如 VM 或 Azure Databricks 集群。选型关键因素CPU 还是 GPUCPU 擅长快速处理宽泛任务但并发能力受限GPU 专为并行计算设计更适合深度学习。GPU 更贵但并发度更高训练深度学习模型更优集群大小集群越大越贵但响应越好——时间充裕预算有限从小集群起步反之用大集群VM 大小可按时间与预算调节 RAM、磁盘、核数与时钟频率参数越高越贵但性能越好专用还是低优先级实例低优先级实例可被 Azure 抢占中断更便宜专用实例不可中断非经允许不会终止任务。创建计算集群以本项目的模型训练为目标在 Studio 中点击 Compute 菜单 → Compute cluster 标签 → New先选择 Dedicated/Low priority、CPU/GPU、VM 大小与核数本项目可用默认点击 Next再为集群命名配置最小/最大节点数、缩容前的空闲秒数与 SSH 访问。要点最小节点数为 0 时集群空闲不产生费用最大节点数越高训练越短建议最大节点数为 3。点击 Create等待几分钟完成。4.4 上传数据集在 Studio 左侧菜单点击 Datasets → Create dataset→ 选择 From local files上传前面下载的 Kaggle 数据集为数据集命名、选择类型并填写描述点击 Next 完成文件上传在 Schema 中将以下特征的数据类型改为Booleananaemia、diabetes、high blood pressure、sex、smoking、DEATH_EVENT点击 Next 与 Create。4.5 用 AutoML 进行低代码训练传统 ML 模型开发资源密集需要大量领域知识与时间才能产出并比较数十个模型。AutoML 自动化了这些耗时、迭代的任务让分析师和开发者以高规模、高效率、高生产力构建 ML 模型同时保持模型质量。在 Studio 左侧菜单点击 Automated ML → 选择刚上传的数据集 → Next输入新的实验名称指定目标列DEATH_EVENT与已创建的计算集群 → Next选择Classification分类→ Finish。根据计算集群大小此步骤可能耗时30 分钟到 1 小时运行完成后点击 Automated ML 标签 → 点击运行 → 在 Best model summary 卡片中点击算法即可查看 AutoML 生成的最佳模型的详细描述也可在 Models 标签页探索其他模型并通过 Explanations预览按钮查看解释。选定模型后即可部署。五、路线一模型部署与端点消费5.1 部署为 Web 服务AutoML 界面支持几步之内把最佳模型部署为 Web 服务——对本项目而言部署意味着医疗应用可以消费模型实时预测患者的发病风险。在最佳模型描述页点击 Deploy 按钮然后填写名称与描述计算类型选择Azure Container Instance启用身份验证enable authentication点击 Deploy。此步骤约需 20 分钟包含注册模型、生成资源、为 Web 服务配置资源等环节。部署状态显示在 Deploy status 下可定期点击 Refresh 查看状态变为 Healthy 即部署运行成功。部署完成后点击 Endpoint 标签即可查看该端点的全部详情。5.2 消费 REST 端点点击 Consume 标签可找到 REST 端点和一段 Python 消费脚本该脚本可直接在本地机器运行。核心是这两行url http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score api_key # 替换为 Web 服务的 API 密钥urlConsume 标签页中的 REST 端点api_key同样来自 Consume 标签页的主密钥仅当你启用了身份验证时才有。直接运行脚本输出为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]}两组样本分别得到 true 与 false说明端点已能对不同输入给出差异化预测。至此你就完成了 Azure ML 上训练 部署 消费的完整闭环。项目结束后务必删除所有资源。六、路线二Azure ML SDK 编程方式本节完整复现 19-Azure/README.md 与配套 Notebook19-Azure/notebook.ipynb的内容。6.1 SDK 概览与前期准备Azure ML SDK 让数据科学家和 AI 开发者在任意 Python 环境Jupyter Notebook、VS Code 或任意 Python IDE中构建和运行机器学习工作流。核心能力包括探索、准备和管理实验数据集的生命周期管理云端资源以监控、记录和组织实验在本地或云端含 GPU 加速训练模型使用 AutoML接受配置参数与训练数据自动迭代算法与超参数组合以找到最佳模型将训练好的模型部署为可被任意应用消费的 RESTful Web 服务。前提准备需要一个 Azure ML 工作区创建方法见第 4.2 节与一个计算实例。计算实例的创建方式为在工作区中进入 Compute 菜单 → 点击 New→ 命名 → 选择 CPU/GPU、VM 大小与核数 → Create。计算实例用于承载 Jupyter Notebook在 Compute instances 列表中找到该实例点击 Applications 区中的 Jupyter 选项确认后即可打开 Jupyter 环境创建 Notebook。数据集的上传方式同第 4.4 节。也可以直接上传仓库自带的 19-Azure/notebook.ipynb 到 Azure ML Studio 的 Notebook 菜单。6.2 环境初始化工作区、实验、计算集群与数据集从配置文件加载工作区from azureml.core import Workspace ws Workspace.from_config()创建实验。实验名必须为 3–36 个字符以字母或数字开头只能包含字母、数字、下划线和连字符若工作区中不存在同名实验则自动创建from azureml.core import Experiment experiment_name aml-experiment experiment Experiment(ws, experiment_name)创建训练用的计算集群此步可能耗时几分钟。代码先尝试获取已有集群不存在则用AmlCompute.provisioning_configuration指定vm_size、min_nodes、max_nodes创建并调用wait_for_completion等待就绪from azureml.core.compute import AmlCompute aml_name heart-f-cluster try: aml_compute AmlCompute(ws, aml_name) print(Found existing AML compute context.) except: print(Creating new AML compute context.) aml_config AmlCompute.provisioning_configuration(vm_size Standard_D2_v2, min_nodes1, max_nodes3) aml_compute AmlCompute.create(ws, name aml_name, provisioning_configuration aml_config) aml_compute.wait_for_completion(show_output True) cts ws.compute_targets compute_target cts[aml_name]按数据集名从工作区取出数据集并转为 pandas DataFramedataset ws.datasets[heart-failure-records] df dataset.to_pandas_dataframe() df.describe()6.3 AutoML 配置与训练使用AutoMLConfig类设置 AutoML 配置本模块用到的参数及其含义experiment_timeout_minutes实验允许运行的最大时长分钟超时自动停止并给出结果max_concurrent_iterations实验允许的最大并发训练迭代数primary_metric用于判定实验状态的主指标compute_target运行 AutoML 实验的 Azure ML 计算目标task任务类型可选 classification、regression 或 forecastingtraining_data实验使用的训练数据需同时包含训练特征与标签列可选样本权重列label_column_name标签列名称pathAzure ML 项目文件夹的完整路径enable_early_stopping分数短期无提升时是否提前终止featurization是否自动执行特征化或使用自定义特征化debug_log写入调试信息的日志文件。from azureml.train.automl import AutoMLConfig project_folder ./aml-project automl_settings { experiment_timeout_minutes: 20, max_concurrent_iterations: 3, primary_metric : AUC_weighted } automl_config AutoMLConfig(compute_targetcompute_target, task classification, training_datadataset, label_column_nameDEATH_EVENT, path project_folder, enable_early_stopping True, featurization auto, debug_log automl_errors.log, **automl_settings )提交训练视集群规模可能耗时最多约一小时并用RunDetails部件可视化各实验remote_run experiment.submit(automl_config)from azureml.widgets import RunDetails RunDetails(remote_run).show()以上代码与 19-Azure/notebook.ipynb 中 AutoML 配置与运行单元格完全一致可作为可复制的最小可运行示例。6.4 保存最佳模型remote_run是AutoMLRun类型对象其get_output()方法返回最佳运行及其对应拟合模型best_run, fitted_model remote_run.get_output()打印fitted_model可查看最佳模型的参数用get_properties()查看最佳模型的属性best_run.get_properties()随后用register_model注册模型。这里还把 AutoML 自动生成的评分脚本outputs/scoring_file_v_1_0_0.py下载到inference/score.py作为后续部署的入口脚本model_name best_run.properties[model_name] script_file_name inference/score.py best_run.download_file(outputs/scoring_file_v_1_0_0.py, inference/score.py) description aml heart failure project sdk model best_run.register_model(model_name model_name, model_path ./outputs/, description description, tags None)6.5 部署为 ACI Web 服务模型部署使用InferenceConfig部署所用自定义环境的配置与AciWebserviceAzure Container Instances 上的 Web 服务端点即一个带 REST API 的负载均衡 HTTP 端点最终由Model.deploy执行部署from azureml.core.model import InferenceConfig, Model from azureml.core.webservice import AciWebservice inference_config InferenceConfig(entry_scriptscript_file_name, environmentbest_run.get_environment()) aciconfig AciWebservice.deploy_configuration(cpu_cores 1, memory_gb 1, tags {type: automl-heart-failure-prediction}, description Sample service for AutoML Heart Failure Prediction) aci_service_name automl-hf-sdk aci_service Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig) aci_service.wait_for_deployment(True) print(aci_service.state)此步骤需要几分钟。部署成功后aci_service.state应显示为健康Healthy状态。6.6 消费端点发送预测请求构造与低代码路线一致的真实样本输入编码后通过aci_service.run()发送data { data: [ { 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, }, ], } test_sample str.encode(json.dumps(data))response aci_service.run(input_datatest_sample) response输出为{result: [false]}即该患者样本被预测为不太可能发生心脏衰竭。至此你已用 Azure ML SDK 完成了与低代码路线等价的全流程。项目结束后同样记得删除所有资源。七、进阶方向从 AutoML 结果洞察到 Pipeline 编排两条路线都建议进一步挖掘 AutoML 为排名靠前的模型生成的模型解释Explanations认真比较被测试的算法、它们之间的差异并思考为什么某个模型在当前数据上表现更优——这能帮助你建立对模型选择的直觉而不是盲目接受 AutoML 的排序结果。在 SDK 路线的挑战环节19-Azure/README.md 的 Challenge还提示了更进一步的编排能力查阅 SDK 文档找到azureml.pipeline.core.Pipeline类——Pipeline 是由若干步骤组成的集合可作为工作流执行。当你需要把数据清洗、特征工程、训练、部署等步骤组织成可复用、可重跑的流水线时Pipeline 是生产级项目的关键抽象。掌握检索 SDK 文档的能力能让你在课程之外独立走得更远。八、总结本模块以心脏衰竭预测为统一实战项目展示了云端数据科学的完整闭环概念层17-Introduction/README.md云的部署形态、服务模型与七大数据科学选云理由低代码层18-Low-Code/README.md从工作区、计算资源、数据集到 AutoML 训练、一键部署与 REST 端点消费的 GUI 全流程SDK 层19-Azure/README.md 与 19-Azure/notebook.ipynb用 Python 代码以可复现、可自动化的方式完成同样的训练、注册、部署与调用。两条路线互为补充低代码适合快速验证与 POCSDK 适合生产级自动化。无论选择哪条路线记住两条实践准则一是充分利用 AutoML 的模型解释来理解为什么这个模型更好二是项目结束后删除所有云资源避免持续计费。配套练习可参考 18-Low-Code/assignment.md在 Kaggle 或 Azure Open Datasets 上另选数据集完整复现训练、部署与消费流程。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻