资讯动态

云端数据科学实战:基于 Data-Science-For-Beginners 的心衰预测模型训练、部署与消费全指南

发布时间:2026/9/11 17:58:59 来源:尧图企业网站定制
云端数据科学实战基于 Data-Science-For-Beginners 的心衰预测模型训练、部署与消费全指南【免费下载链接】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-Data-Science-In-Cloud 为核心系统讲解为什么数据科学要上云以及如何在 Azure 云上完成一个完整的数据科学项目。你将基于 Kaggle 公开的心衰Heart Failure数据集沿着Low code/No code图形界面与Azure ML SDK代码两条路线分别完成从创建工作区、配置计算资源、加载数据集、AutoML 自动训练、模型部署到 REST 端点消费的端到端流程。读完本文你将同时掌握云端机器学习的两类上手姿势并能判断何时该用界面、何时该写代码。一、为什么要用云做数据科学1.1 什么是云Cloud Computing云即云计算Cloud Computing是指通过互联网按需付费地交付托管在基础设施之上的一系列计算服务涵盖存储、数据库、网络、软件、分析以及各类智能服务。按部署模式云通常分为三类公有云Public cloud由第三方云服务商拥有和运营面向公众通过互联网交付计算资源。私有云Private cloud由单一企业或组织独占使用的云计算资源服务和基础设施维护在私有网络上。混合云Hybrid cloud公有云与私有云结合的系统用户保留本地数据中心同时允许数据和应用运行在一个或多个公有云上。从服务模型角度看大多数云计算服务可归为三类服务模型英文用户获得什么用户不需要关心什么基础设施即服务IaaS服务器、虚拟机VM、存储、网络、操作系统等 IT 基础设施硬件采购与机房运维平台即服务PaaS用于开发、测试、交付和管理软件应用的运行环境底层服务器、存储、网络、数据库的搭建与维护软件即服务SaaS按需、通常按订阅方式使用的软件应用应用托管、底层基础设施、升级与安全补丁目前规模较大的云服务商包括 Amazon Web Services、Google Cloud Platform 和 Microsoft Azure。1.2 云给数据科学带来的核心价值开发者与 IT 专业人员选择云的理由可以概括为七个维度详见 17-Introduction 课程创新Innovation把云厂商提供的创新服务直接集成进应用。弹性Flexibility按需选择服务按使用量付费随需求变化调整。预算Budget无需前期投入采购硬件、自建机房只为实际使用买单。可伸缩Scalability资源随项目需求伸缩计算、存储、带宽可动态适配外部因素。生产力Productivity把数据中心管理这类事务交给服务商专注业务本身。可靠性Reliability提供多种持续备份与灾难恢复方案保障业务连续性。安全Security借助服务商的安全策略、技术与控制手段增强项目防护。对数据科学家与数据工程师而言云还能针对性地解决几类典型挑战海量数据存储不必购置并维护大型服务器可直接使用 Azure Cosmos DB、Azure SQL Database、Azure Data Lake Storage 等云存储方案。数据集成通过 Data Factory 等服务从多种来源收集、转换并整合数据到统一数据仓库。数据处理大规模数据处理需要巨大算力云能按需提供充足的计算资源来运行和部署解决方案。数据分析服务Azure Synapse Analytics、Azure Stream Analytics、Azure Databricks 等把数据转化为可执行的洞察。机器学习与智能服务不必从零搭建可直接使用 Azure ML 等平台提供的机器学习算法以及语音转文字、文字转语音、计算机视觉等认知服务。1.3 云上数据科学的两个真实案例实时社交媒体情感分析假设你运营一个新闻媒体网站希望理解读者对哪些话题感兴趣。可以构建一个对 Twitter 数据进行实时情感分析的程序创建事件中心Event Hub接收 Twitter 数据流 → 配置并启动调用 Twitter Streaming API 的客户端应用 → 创建流分析Stream Analytics作业 → 指定作业输入与查询 → 创建输出接收器 → 启动作业。核心观察指标是特定话题hashtag的推文数量与情感倾向。科研论文分析课程作者之一 Dmitry Soshnikov 构建了一个分析 COVID 论文的工具展示了从科学论文中提取知识、获得洞察、帮助研究者高效穿梭于海量文献的流程使用 Text Analytics for Health 提取和预处理信息 → 使用 Azure ML 并行化处理 → 使用 Cosmos DB 存储和查询信息 → 使用 Power BI 创建交互式仪表盘进行数据探索与可视化。二、项目总览心衰预测的两种云端实现路线本模块的核心项目是心衰Heart Failure预测。心血管疾病CVD是全球第一大死因约占全球死亡总数的 31%吸烟、不健康饮食、肥胖、缺乏运动、有害饮酒等环境与行为风险因素可以作为特征用于建立风险评估模型。如果能在高风险人群中提前评估患病概率对预防心衰发作有重要价值。课程将用云的力量以两种不同方式完成训练 → 部署 → 消费模型的完整闭环Low code/No code 方式只通过 Azure ML Studio 的用户界面GUI操作无需写代码适合快速验证项目可行性与搭建 POC概念验证。Azure ML SDK 方式使用 Python SDK 以编程方式完成从资源创建到模型部署的全流程适合需要生产化、可自动化复用的场景。维度Low code/No codeAzure ML SDK代码能力要求不需要需要开发时间快速且容易取决于代码熟练度是否面向生产否是两种方式各有取舍GUI 方式上手快、无代码门槛但随着项目成长和需要生产就绪时无法靠手工点击创建资源必须通过代码把资源创建 → 模型部署全部自动化这正是掌握 Azure ML SDK 的价值所在。2.1 心衰数据集详解本项目使用 Kaggle 上公开的 Heart Failure Clinical Records 数据集299 行、13 列12 个特征 1 个目标变量#变量名类型描述示例值1age数值患者年龄252anaemia布尔是否贫血红细胞或血红蛋白减少0 或 13creatinine_phosphokinase数值血液中 CPK 酶水平5424diabetes布尔是否患有糖尿病0 或 15ejection_fraction数值每次收缩时离开心脏的血液百分比456high_blood_pressure布尔是否患有高血压0 或 17platelets数值血液中的血小板数1490008serum_creatinine数值血清肌酐水平0.59serum_sodium数值血清钠水平13710sex布尔性别女/男0 或 111smoking布尔是否吸烟0 或 112time数值随访周期天4目标DEATH_EVENT布尔随访期间患者是否死亡0 或 1注意DEATH_EVENT是目标列标签列其余 12 列为特征。训练前需要把anaemia、diabetes、high_blood_pressure、sex、smoking、DEATH_EVENT这些布尔特征的数据类型显式设置为 Boolean避免被 AutoML 当作连续数值处理。三、路线一Low code/No code——在 Azure ML Studio 中用界面完成全流程3.1 创建 Azure ML 工作区Workspace工作区是 Azure Machine Learning 的顶层资源是使用 Azure ML 时所有产物训练运行的日志、指标、输出、脚本快照等的集中存放地通过它你能判断哪次训练运行产出了最佳模型。准备工作使用与操作系统兼容的最新版浏览器支持 Microsoft Edge新版非 legacy、Safari最新版仅 Mac、Chrome最新版、Firefox最新版。创建步骤使用与 Azure 订阅关联的 Microsoft 凭据登录 Azure 门户。选择Create a resource创建资源搜索 Machine Learning 并选择 Machine Learning 磁贴点击创建按钮。填写以下设置Subscription你的 Azure 订阅Resource group创建或选择资源组Workspace name为工作区输入唯一名称Region选择离你最近的地理区域Storage account / Key vault / Application insights记录将为工作区默认新建的存储账户、密钥保管库、应用洞察资源Container registry选择 None首次将模型部署到容器时会自动创建点击 Review create 并确认创建等待工作区创建完成可能需要几分钟。在工作区概览页启动 Azure Machine Learning studio或打开新标签页访问 https://ml.azure.com用 Microsoft 账户登录若提示选择你的 Azure 目录、订阅和工作区。在 Studio 中点击左上角 ☰ 图标切换界面中的各个页面用于管理工作区资源。注意只要 Azure ML 工作区存在于订阅中就会按存储容量收取少量数据存储费用停止使用后建议删除工作区。3.2 计算资源四种类型与关键选型计算资源Compute Resources是运行模型训练与数据探索过程的云端资源共有四种计算实例Compute Instances数据科学家用于处理数据和模型的开发工作站本质是一台虚拟机VM 笔记本实例可在笔记本中调用计算集群来训练模型。计算集群Compute Clusters用于按需处理实验代码的可伸缩 VM 集群训练模型时需要可使用专用 GPU 或 CPU 资源。推理集群Inference Clusters部署使用训练好的模型的预测服务的部署目标。附加计算Attached Compute关联现有的 Azure 计算资源如虚拟机或 Azure Databricks 集群。创建计算资源时有几个关键选型决策CPU 还是 GPUCPU 擅长快速处理宽范围任务但并发能力有限GPU 专为并行计算设计更擅长深度学习任务。CPUGPU较便宜较昂贵并发级别较低并发级别较高训练深度学习模型较慢深度学习最优集群大小Cluster Size集群越大越贵但响应更好。时间充裕而预算有限时从小集群起步反之预算充足但时间紧张时选较大集群。虚拟机大小VM Size可根据时间与预算调整 RAM、磁盘、核心数与时钟频率参数越高成本越高、性能越好。专用还是低优先级实例Dedicated vs Low-Priority低优先级实例可被中断Azure 可能收回资源分配给其他任务专用实例不可中断未经你许可任务不会被终止。可中断实例更便宜这同样是时间 vs 金钱的权衡。3.3 创建计算集群并加载数据集在 Studio 中点击Compute计算菜单进入Compute cluster标签页点击 New创建计算集群选择 Dedicated/Low priority、CPU/GPU、VM size 与核心数本项目可保留默认设置点击 Next。为集群命名设置最小/最大节点数、缩容空闲秒数、SSH 访问。最小节点数为 0 时集群空闲可省钱最大节点数越高训练越快推荐最大 3 个节点。点击Create创建过程需要几分钟。加载数据集到 Studio点击左侧Datasets菜单 → Create dataset→ 选择From local files选中之前下载的 Kaggle 心衰数据集文件。为数据集命名、选类型、写描述从文件上传数据。在 Schema 步骤中将anaemia、diabetes、high blood pressure、sex、smoking、DEATH_EVENT的数据类型改为Boolean点击 Next 并 Create。3.4 用 AutoML 完成无代码训练传统机器学习模型开发资源消耗大需要大量领域知识才能产出并对比几十个模型。自动化机器学习AutoML正是把模型开发中耗时、迭代的任务自动化让数据科学家、分析师和开发者以高规模、高效率、高生产力构建模型同时保持模型质量。在 Studio 中点击左侧Automated ML菜单选择刚上传的数据集点击 Next。输入新的实验名称、目标列DEATH_EVENT以及刚创建的计算集群点击 Next。选择任务类型Classification分类点击 Finish。训练时间约 30 分钟到 1 小时取决于计算集群大小。运行完成后点击Automated ML标签页 → 点击你的运行 → 在 Best model summary最佳模型摘要卡片中点击算法名称。这里可以看到 AutoML 生成的最佳模型的详细描述也可以在 Models 标签页探索其他模型并花时间查看模型的Explanations解释功能。选定要用的模型后课程默认选择 AutoML 选出的最佳模型即可进入部署环节。3.5 部署模型并消费端点模型部署在最佳模型描述页点击Deploy部署按钮填写名称、描述计算类型选择Azure Container InstanceACI启用身份验证点击 Deploy。该过程约需 20 分钟包含注册模型、生成资源、为 Web 服务配置等步骤。部署状态下会显示状态消息可定期点击 Refresh 刷新当状态为Healthy时表示部署成功并正在运行。部署完成后点击Endpoint标签页并选择刚部署的端点可查看端点的全部详细信息。端点消费点击Consume消费标签页可以看到 REST 端点地址和一个 Python 消费脚本该脚本可直接在本地机器运行并消费你的端点。重点关注这两行url http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score api_key # 将其替换为 Web 服务的 API 密钥url是 Consume 页中给出的 REST 端点api_key是同一页面给出的主密钥仅在启用身份验证时存在。运行脚本默认生成的输入数据各项为 0/false会得到输出b{\\result\\: [true]}这表示对给定数据的心衰预测为 true真。把脚本中的data替换为如下两条样本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第二组更接近真实患者画像预测为 false。至此你就完成了在 Azure ML 上用纯界面方式训练、部署并消费模型的全过程。项目结束后务必删除所有资源以停止计费。详细分步说明与界面截图可查看 18-Low-Code 课程。四、路线二Azure ML SDK——用 Python 代码完成同一套流程4.1 Azure ML SDK 是什么数据科学家和 AI 开发者使用 Azure ML SDK 在任意 Python 环境中Jupyter Notebook、Visual Studio Code 或任意 Python IDE构建和运行机器学习工作流。SDK 的关键能力包括探索、准备和管理实验中数据集的生命周期管理云端资源用于监控、日志与实验组织在本地或使用云端资源含 GPU 加速训练模型使用自动化机器学习AutoML自动迭代算法与超参数组合寻找最佳模型把训练好的模型部署为可被任意应用消费的 RESTful Web 服务。课程仓库提供了一份可上传到 Azure ML Studio 直接运行的完整实现 19-Azure/notebook.ipynb并附有参考答案 19-Azure/solution/notebook.ipynb。后续所有代码均取自该 notebook。4.2 前置准备工作区、计算实例与数据集工作区若还没有按 18-Low-Code 课程第 2.1 节 的步骤创建。计算实例在 Studio 的 Compute 菜单中点击 New为计算实例命名选择 CPU/GPU、VM size 与核心数点击 Create。计算实例将用于托管 Jupyter Notebook。数据集按 18-Low-Code 课程第 2.3 节 的步骤上传heart-failure-records数据集若尚未上传。4.3 创建 Notebook在 Studio 的计算实例列表中于 Applications 部分点击Jupyter选项勾选 Yes, I understand 后 Continue浏览器将打开 Jupyter Notebook 实例点击New新建 notebook。Notebook 是数据科学流程的重要组成部分可用于探索性数据分析EDA、调用计算集群训练模型、调用推理集群部署端点。4.4 训练模型工作区、实验、计算集群与数据集的代码化准备首先加载工作区需要 config.json 配置文件在工程目录下from azureml.core import Workspace ws Workspace.from_config()创建实验Experiment。实验名须为 3-36 个字符以字母或数字开头只能包含字母、数字、下划线和短横线若工作区中不存在同名实验则自动创建from azureml.core import Experiment experiment_name aml-experiment experiment Experiment(ws, experiment_name)创建用于训练的计算集群创建过程需要几分钟。代码先用 try/except 探测同名集群不存在则用provisioning_configuration指定 VM 大小与节点范围后创建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 DataFrame 进行探索dataset ws.datasets[heart-failure-records] df dataset.to_pandas_dataframe() df.describe()4.5 AutoMLConfig 配置与训练使用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 )提交实验开始训练根据集群大小最多可能需要 1 小时并用RunDetails组件可视化各实验运行情况remote_run experiment.submit(automl_config)from azureml.widgets import RunDetails RunDetails(remote_run).show()4.6 保存最佳模型remote_run是AutoMLRun对象其get_output()方法返回最佳运行及其拟合模型get_properties()可查看最佳模型的属性best_run, fitted_model remote_run.get_output() best_run.get_properties()然后用register_model注册模型同时从运行输出下载 AutoML 自动生成的评分脚本scoring_file_v_1_0_0.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)4.7 用 InferenceConfig 与 ACI 部署模型InferenceConfig表示用于部署的自定义环境配置AciWebservice表示部署在 Azure 容器实例ACI上的 Web 服务端点——部署后的服务是带 REST API 的负载均衡 HTTP 端点可向其发送数据并接收模型预测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)该步骤需要几分钟部署状态可在 Azure ML 门户中查看。4.8 消费端点构造一条与训练特征一致的患者样本输入所有值以字符串形式给出import json 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))调用已部署服务的run方法获取预测结果response aci_service.run(input_datatest_sample) response预期输出为{result: [false]}表示该患者大概率不会发生心衰事件。至此你就用 Azure ML SDK 完成了与 Low code 路线完全等价的全流程。同样项目完成后不要忘记删除所有资源。完整的分步说明见 19-Azure 课程可直接运行的代码见 notebook.ipynb。五、进阶挑战与实践建议Low code 路线挑战仔细查看 AutoML 为最佳模型生成的模型解释与细节思考为什么最佳模型优于其他模型——对比了哪些算法它们之间的差异是什么为什么在这个数据集上最佳模型表现更好SDK 路线挑战翻阅 Azure ML SDK 文档找到Pipeline类。Pipeline 是一系列可编排执行的工作流步骤可把数据准备、训练、评估、部署等环节串联成自动化流水线azureml.pipeline.core.Pipeline。独立练习从 Kaggle 或 Azure Open Datasets 挑选一份数据集分别用两种方式完成训练 → 部署 → 消费的完整闭环。Low code 路线的评分要点包括上传数据时正确调整特征类型、必要时清洗数据、通过 AutoML 完成训练并查看模型解释、部署最佳模型并成功消费SDK 路线的评分要点包括查阅 SDK 文档了解 AutoMLConfig 可用参数、通过 AutoML 完成训练并查看模型解释、部署并消费模型。六、小结本模块5-Data-Science-In-Cloud围绕心衰预测这一真实业务场景完整演示了云端数据科学项目的标准闭环理解云的价值 → 准备数据与计算资源 → AutoML 自动训练 → 选择最佳模型 → 部署为 REST 端点 → 编程消费。两种路线的对比极具实践价值——Low code/No code 适合快速验证想法POCAzure 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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价