如何在Azure上用线性回归模型预测汽车价格

2024年09月05日 由 alex 发表 103 0

简介

在本文中,我们将创建一个简单的 Azure 项目,根据一组特征预测汽车销售价格。我采取的步骤如下:

  1. 设置所需资源。
  2. 设计一个完整的机器学习测试管道,用于接收数据、准备数据、训练线性回归模型、评分和评估数据。
  3. 创建一个实时推理管道,我们可以在未见过的数据上进行测试。
  4. 部署一个实时端点,让我们可以使用我们的模型。


设置资源

在本文的每个阶段,我都会努力简化我们在云领域使用的技术术语。Azure 项目位于一个资源组中。资源组是一个逻辑容器,允许你组织、容纳和管理资源。工作区是资源组中的一个协作环境,允许用户在与其专业/任务(如数据科学和分析)相关的特定资源。


5

图2


创建免费的 Azure 订阅帐户后,导航到 Azure 主页,在顶部的搜索栏中输入 “Azure Machine Learning”,这是我们将在本项目中使用的资源。由于我们还没有将资源 “安置 ”在任何工作区中,因此请导航到左上角,然后单击 “+创建”,再单击 “新建工作区”。


6

图3


选择订阅并创建一个新的资源组来容纳我们的工作区(和资源),然后单击 “审查 + 创建”。Azure 产品的部署需要一两分钟的时间,所以请耐心等待。创建完成后,你将被重定向到主页,在这里你可以选择新创建的资源组,如下所示。


7

图4


你会发现在 Azure 机器学习工作区旁边还部署了其他工作区/资源。这些是支持项目的后台服务,不需要交互。单击 Azure 机器学习工作区,滚动到底部,然后单击 Launch Studio 按钮访问资源。


资源是云提供商提供的应用程序。与任何应用程序类似,资源也需要基础设施才能运行,例如,你的网络浏览器需要一台笔记本电脑才能访问。这就是计算集群的作用所在。集群提供运行资源所需的处理能力和虚拟架构。(听说过虚拟机吗?) 在仪表板中,向下导航并选择添加计算。



图5


9

图6


设计测试管道

现在我们有了必要的基础架构,让我们来设计一个管道,用于摄取数据、清理数据、准备数据、为模型评分并进行预测。在仪表板上,左侧的侧边栏为我们的项目提供了有用的快捷方式。点击左侧边栏上的设计器。你将被重定向到管道设计器仪表板。在搜索栏上搜索汽车价格数据(原始数据)。该测试数据集包含各种汽车的价格。查看特征/列,注意需要清理的特征/列。关于在处理线性回归模型时哪些特征需要准备,有什么提示吗?


10

图7


你所做的就是在管道中添加一个模块。模块是一个可重复使用的构件,用于在管道中执行各种相关任务。我们需要选择相关列,通过处理缺失值来清理数据,对数据进行规范化处理,并对分类列进行编码,然后才能对数据进行建模。


在我们进行了小型数据探索之后,我们意识到在提交管道的第一部分之前有几件事需要处理:

  1. 选择 “选择数据集中的列 ”模块 - “归一化损失 ”列缺少大量数据。我们将通过选择每一列,然后取消选择 “归一化损失 ”列来消除它。
  2. 选择 “清除缺失数据 ”模块 - “缸径、冲程、马力 ”列缺失了几行数据。如果数据集为空,我们将删除这些行。
  3. 选择 “归一化数据 ”模块 - 我们将使用 MinMax 缩放功能缩放数值列以适应特定范围。


屏幕截图2024-09-05103032

图8


单击 “配置并提交”。这将作为我们管道的第一部分。管道将作为作业提交。作业通常是指在管道或工作流中执行的任务或流程。导航到侧边栏上的作业,你会看到以下内容。


12

图9


接下来,我们需要对分类列进行编码。返回设计器并按照以下步骤操作:

  1. 选择 “编辑元数据 ”模块--这样我们就可以将分类列从字符串转换为类别。选择图 10 所示的列
  2. 选择 “转换为指标值 ”模块--这样我们就可以将分类列转换为标签编码。选择图 11 所示的列


13

图10


14

图11


最后

  1. 选择 “分割数据 ”模块--该模块将数据分割为训练数据和测试数据。
  2. 选择 “训练模型 ”模块--该模块在训练数据上训练线性回归模块
  3. 选择 “线性回归 ”模块--该模块实例化一个线性回归模型。
  4. 选择 “Score Model(评分模型)”模块--该模块显示各种评分指标,让我们了解模型的表现如何。


15

图12


16

图13


17

图13


点击配置并再次提交。成功后,在评分模型模块中检查模型结果。单击 “作业”,选择成功的管道作业,然后右键单击评分模型模块。


18

图14


根据这些评分指标,我们的模型表现相当出色。接下来,我们将构建实时推理管道。


设计实时推理管道

Azure 中的实时推理管道指的是部署机器学习模型并使用该模型及时对新数据进行预测的一系列步骤。Azure 中的实时推理管道通常与训练管道分开,以模拟其在生产环境中的执行情况。


导航到作业并创建实时推理管道,如图所示。


19

图15


成功后,你将被重定向到 “设计器 ”部分。请记住,推理管道的全部意义在于模拟模型在接触真实世界/未见数据时的表现。这意味着我们将从管道中删除数据集,以模拟管道接收未见数据的真实场景。值得注意的一点是,我们的管道还不是一个 “应用程序”。我们需要一些媒介将结果整合在一起,完成我们的管道。以下是需要采取的步骤:

  1. 从管道中移除 “汽车价格原始数据 ”和 “转换为数据集”,并在其位置上添加一个 “手动输入数据 ”模块--这将作为我们实时管道的数据输入点。你可以在这里找到要粘贴的数据。
  2. 编辑 “在数据集中选择列”--从所选列中移除价格列。请记住,这是一个真实世界的场景,所以价格是我们要预测的,因此它并不存在于我们的数据中。
  3. 添加 “执行 Python 脚本” - 将此模块放在 “Web 服务输出 ”之前。该脚本会将分数结果重命名为价格,这也是我们希望在假设应用程序中显示的结果。


20

图16


111

图17


创建实时终端

我们已经完成了对现实生活的模仿,我们的模型可以在现实世界中使用了。单击右上角的三个点,然后单击部署。

将其部署为新的实时端点,并选择 Azure 容器实例作为计算类型。


22


这大约需要 20-30 分钟,所以你可能需要耐心等待。


23

图19


一旦部署状态健康,就可以在任何地方部署模型。Azure 提供了 Python 或 R 代码片段等选项,你可以将其集成到应用程序中并使用模型,如图 19 所示。


文章来源:https://medium.com/towards-artificial-intelligence/building-a-simple-linear-regression-model-on-azure-to-predict-car-prices-136080bece24
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消