Data-Science-For-Beginners 实战作业指南:使用 Azure ML SDK 完成从 AutoML 训练到端点消费的完整数据科学项目

发布时间:2026/9/11 5:37:17
Data-Science-For-Beginners 实战作业指南:使用 Azure ML SDK 完成从 AutoML 训练到端点消费的完整数据科学项目 Data-Science-For-Beginners 实战作业指南使用 Azure ML SDK 完成从 AutoML 训练到端点消费的完整数据科学项目【免费下载链接】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: The Azure ML SDK way》一课的结课实战作业来源于 5-Data-Science-In-Cloud/19-Azure/assignment.md。在前面的课程中你已经学习了如何借助 Azure ML 平台用 Azure ML SDK 完成训练模型—部署模型—消费模型的完整链路本作业要求你跳出示例数据独立寻找一份新数据集把这条链路完整跑通一遍。读完本文你将掌握如何用 SDK 为 AutoML 配置参数、如何提交训练并解读最优模型解释、如何注册并部署模型为 REST 端点以及如何通过 SDK 构造请求消费该端点。作业任务概览本作业的核心指令非常明确在 5-Data-Science-In-Cloud/19-Azure/README.md 所演示的心力衰竭预测项目Heart Failure Prediction之外自行寻找一份可以用来训练另一个模型的数据集然后依次完成用 Azure ML SDK 配置 AutoML查阅 SDK 文档选择并理解可用参数基于该数据集跑一次 AutoML 训练检查review训练产生的最优模型及其解释explanations部署最优模型通过 Azure ML SDK 消费已部署的模型。课程推荐的找数据来源包括 Kaggle 与 Azure Open Datasets可用与课程示例不同的分类、回归或预测类数据集。评分标准拆解三个层次的能力要求作业配套的 Rubric评分量表将完成度划分为三档理解它可以帮你对照检查自己做到哪一步档次必须完成的能力达标要点需要改进Needs Improvement用 Azure ML SDK 通过 AutoML 在数据集上跑训练部署最优模型通过 SDK 消费模型跑通主链路即可足够Adequate在上一档基础上补充检查模型解释model explanations不仅训练还要看懂模型为什么这样选优秀Exemplary在配置 AutoML 时通读 SDK 文档明确每个参数的作用训练后检查模型解释部署并消费体现出对AutoMLConfig参数的主动查阅与合理解释也就是说从能跑通到懂原理再到会查文档做设计三个层次分别对应作业的及格、良好与优秀标准。下面的章节将按作业要求逐一给出可复制的代码与原理说明。前置条件从课程示例出发本作业建立在前一课《The Low code/No code way》与本节课程示例的基础上建议先具备以下前置条件详见 5-Data-Science-In-Cloud/19-Azure/README.md 第 2 节已创建一个 Azure ML workspace工作区已创建一个 compute instance计算实例用于承载 Jupyter Notebook已将数据集上传到工作区Azure ML Studio 的 Datasets 菜单或沿用示例的heart-failure-records数据集可在 Jupyter Notebook或任意 Python 环境中安装并导入azureml-core、azureml-train-automl、azureml-widgets等 SDK 包。课程提供了一个可上传到 Azure ML Studio 直接运行的完整示例 notebook.ipynb它展示了从 Workspace 初始化到端点消费的全部 9 个步骤作业即要求你把同样的步骤迁移到你自己挑选的新数据集上。仓库中另有一份 solution/notebook.ipynb该文件当前为空占位实际可运行的参考实现以课程主 notebook 为准。课程架构图清晰地展示了低代码/无代码方式与 Azure ML SDK 两种路径殊途同归都以 Dataset 为输入经过 AutoML 训练 → 选择最优模型 → 部署 → 消费端点的统一流程。SDK 路径的价值在于当项目需要生产化production ready、需要以代码方式自动化资源创建与部署时GUI 方式不再可行而这正是本作业训练的正是这种能力。第一步用 Azure ML SDK 配置 AutoML1.1 初始化工作区、实验、计算集群与数据集在跑 AutoML 之前需要先把环境四要素准备齐全。课程示例代码与 notebook.ipynb 完全一致如下from azureml.core import Workspace, Experiment from azureml.core.compute import AmlCompute from azureml.train.automl import AutoMLConfig from azureml.widgets import RunDetails from azureml.core.model import InferenceConfig, Model from azureml.core.webservice import AciWebservice加载 Workspace从配置文件config.json读取工作区信息ws Workspace.from_config()创建 Experiment实验名有命名约束——长度 3–36 个字符以字母或数字开头只能包含字母、数字、下划线和短横线。若同名实验不存在则自动创建experiment_name aml-experiment experiment Experiment(ws, experiment_name)创建计算集群compute cluster训练需要独立的计算目标。课程使用AmlCompute.provisioning_configuration配置集群min_nodes/max_nodes控制弹性伸缩范围min_nodes0时集群空闲不产生费用wait_for_completion(show_outputTrue)会阻塞等待资源就绪这一步通常需要几分钟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 DataFrame 做快速查看dataset ws.datasets[heart-failure-records] df dataset.to_pandas_dataframe() df.describe()作业提示做自己的项目时把heart-failure-records换成你自己上传的数据集名即可其余逻辑完全复用。1.2 AutoMLConfig 核心参数作业优秀档的考察点优秀档要求配置 AutoML 时通读 SDK 文档、搞清可用参数。课程示例用到的参数及其含义如下表来源5-Data-Science-In-Cloud/19-Azure/README.md 第 2.5.2 节参数作用课程示例取值experiment_timeout_minutes实验允许运行的最大时长分钟超时自动停止并产出结果20max_concurrent_iterations允许并行的训练迭代iteration数上限3primary_metric用于判定实验状态的主指标AUC_weightedcompute_targetAutoML 实验运行的计算目标compute_targettask任务类型取值classification/regression/forecastingclassificationtraining_data训练数据须同时含特征列与标签列datasetlabel_column_name标签列名DEATH_EVENTpathAzure ML 项目文件夹的完整路径project_folderenable_early_stopping指标短期内不再提升时是否提前终止Truefeaturization是否自动做特征化可选auto或自定义autodebug_log调试日志写入的文件名automl_errors.log作业要求自己去查 SDK 文档看看还能用哪些参数这是设计意图所在——AutoMLConfig远不止这几个参数还有迭代次数控制、模型可解释性开关、验证集划分等选新数据集时值得根据数据规模与任务类型补充阅读。完整的可运行配置如下来自课程 notebookproject_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 )第二步提交 AutoML 训练并检查模型解释配置就绪后提交训练任务remote_run experiment.submit(automl_config)submit返回一个AutoMLRun对象训练在云端计算集群上异步执行训练耗时与集群规模强相关课程示例在默认集群下约 30 分钟到 1 小时。可以在 Notebook 中用 Azure ML 自带的 RunDetails 小组件实时查看各次迭代iteration的进度与指标from azureml.widgets import RunDetails RunDetails(remote_run).show()训练完成后作业明确要求检查模型解释check the model explanations。这一步对应 5-Data-Science-In-Cloud/18-Low-Code/README.md 中的建议——在 Azure ML Studio 的Models标签页查看 AutoML 为候选模型生成的 Explanations解释分析每个特征对预测的贡献、为什么最优模型优于其他候选算法。在 SDK 路径下模型解释同样可以从运行结果中获取并审查它是判断模型可信度、向业务方解释预测依据的关键环节。第三步获取并注册最优模型AutoMLRun.get_output()返回最优的 run 及其对应的已拟合模型best_run, fitted_model remote_run.get_output()直接打印fitted_model可查看最优模型使用的算法与超参数调用best_run.get_properties()可查看最优模型的属性如model_name等元信息。随后用register_model将模型注册到工作区。注册前先把 AutoML 自动生成的推理脚本scoring file下载到本地inference/score.py后续部署时作为 entry script 使用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)register_model让模型进入工作区的模型仓库具备版本、描述与标签管理能力是后续部署与运维的基础。第四步部署最优模型为 ACI 端点部署需要两类配置InferenceConfig描述部署环境的自定义配置包括入口脚本entry_script与运行环境这里直接复用 AutoML 最佳运行的get_environment()保证依赖与训练环境一致AciWebservice.deploy_configuration描述 Azure Container InstancesACI上的 Web 服务配置包括 CPU 核数、内存大小、标签与描述。ACI 服务是一个负载均衡的 HTTP 端点提供 REST API 供应用调用。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)Model.deploy接收工作区、服务名、模型列表、推理配置与部署配置wait_for_deployment(True)阻塞直到部署完成并打印服务状态。部署通常需要几分钟可在 Azure ML Studio 的 Endpoints 页面查看进度与最终状态。第五步通过 SDK 消费端点部署完成后即可构造样本输入调用端点。注意课程示例把每个特征值以字符串形式放在data数组中特征名与心力衰竭数据集的 12 个特征一一对应age、anaemia、creatinine_phosphokinase、diabetes、ejection_fraction、high_blood_pressure、platelets、serum_creatinine、serum_sodium、sex、smoking、timedata { 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))把 JSON 序列化并编码为字节后交给服务的run方法即可获得预测结果response aci_service.run(input_datatest_sample) response课程示例中该调用返回{result: [false]}即模型判断这位患者不太可能发生心力衰竭。这说明端到端链路已经打通训练 → 注册 → 部署 → 消费。提示在你的新数据集项目中data字典的键必须替换为你自己数据集的列名布尔型特征用true/false字符串数值特征用字符串形式的数字。此前的低代码课程 5-Data-Science-In-Cloud/18-Low-Code/README.md 第 3.2 节演示了同一数据集下返回[true, false]两条预测的对照示例可作参考。延伸挑战用 SDK 探索 Pipeline作业所在课程的 Challenge 部分还推荐了一个进阶方向在 Azure ML SDK 文档中检索Pipeline类azureml.pipeline.core.Pipeline它允许把多个步骤组织成可执行的工作流workflow。这对你的结课项目是一个很好的延伸——比如把数据预处理 → AutoML 训练 → 模型注册 → 部署串成一条可重复执行的管道。搜索 SDK 文档中的关键词 Pipeline 即可找到该类。收尾与自检清单课程反复强调项目结束后务必删除所有云资源workspace、compute instance、compute cluster、ACI 服务避免持续产生费用workspace 存在期间即会产生少量存储费用。对照作业评分标准做最终自检我用自己的数据集跑通了 AutoML 训练experiment.submitRunDetails查看迭代过程我检查了最优模型的解释explanations并理解了特征贡献我用get_output()拿到最优模型并用register_model注册我用InferenceConfigAciWebservice完成部署state为健康状态我通过aci_service.run(input_data...)成功获得预测结果我通读了AutoMLConfig的 SDK 文档能解释每个所用参数的作用优秀档要求。完成以上清单你就在 Data-Science-For-Beginners 的云上数据科学课程中掌握了用 Azure ML SDK 从零构建、部署并消费一个数据科学项目的能力。更多 SDK 细节可继续研读课程 19-Azure README 及其配套 notebook.ipynb。【免费下载链接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考