探索 Azure 机器学习中的自动化机器学习

在本练习中,你将使用 Azure 机器学习中的自动化机器学习功能来训练和评估机器学习模型。 然后,你将部署并测试已训练的模型。

完成此练习大约需要 30 分钟。

创建 Azure 机器学习工作区

若要使用 Azure 机器学习,需要在 Azure 订阅中预配 Azure 机器学习工作区。 然后,你就可以使用 Azure 机器学习工作室来处理工作区中的资源。

提示:如果已有 Azure 机器学习工作区,可以使用该工作区并跳至下一个任务。

  1. https://portal.azure.com 使用 Microsoft 凭据登录Azure 门户

  2. 选择“+创建资源”,搜索“机器学习”,然后通过以下设置创建新“Azure 机器学习”资源:
    • 订阅:Azure 订阅。
    • 资源组:创建或选择资源组。
    • 名称:输入工作区的唯一名称。
    • 区域:选择离你最近的地理区域。
    • 存储帐户:记下要为工作区创建的默认新存储帐户。
    • 密钥保管库:记下要为工作区创建的默认新密钥保管库。
    • Application Insightss:记下要为工作区创建的默认新 Application Insights 资源。
    • 容器注册表:无(第一次将模型部署到容器时,将自动创建一个)。
  3. 依次选择“查看 + 创建”、“创建”。 等待工作区创建完成(可能需要几分钟时间),然后转到部署的资源。

  4. 选择“启动工作室”(或打开新的浏览器标签页并导航到 https://ml.azure.com,然后使用 Microsoft 帐户登录 Azure 机器学习工作室)。 关闭显示的任何消息。

  5. 在 Azure 机器学习工作室中,应会看到新创建的工作区。 如果没有,请在左侧菜单中选择“所有工作区”**,然后选择刚创建的工作区。

使用自动化机器学习来训练模型

借助自动化机器学习,可以尝试多种算法和参数来训练多个模型,并确定最适合你的数据的模型。 在本练习中,你将使用历史自行车租赁详细信息数据集来训练一个模型,该模型根据季节和气象特征预测给定日期应预期的自行车租赁数。

引文:本练习中使用的数据派生自 Capital Bikeshare,并根据已发布数据许可协议使用。

  1. Azure 机器学习工作室中,查看“自动化 ML”页(位于“创作”下) 。

  2. 通过以下设置创建新自动化 ML 作业,并根据需要使用“下一步”来逐步完成用户界面:

    基本设置:

    • 作业名称mslearn-bike-automl
    • 新试验名称:mslearn-bike-rental
    • 说明:用于预测自行车租赁的自动化机器学习
    • 标签:无

    任务类型与数据:

    • 选择任务类型:回归
    • 选择数据集:使用以下设置创建新数据集:
      • 数据类型
        • 名称bike-rentals
        • 说明Historic bike rental data
        • 类型:表(mltable)
      • 数据源
        • 选择“从本地文件”**
      • 目标存储类型
        • 数据存储类型:Azure Blob 存储
        • 名称:workspaceblobstore
      • MLtable 选择
        • 上传文件夹下载并解压包含需要上传的两个文件的文件夹 https://aka.ms/bike-rentals

      选择创建。 创建数据集后,选择 bike-rentals 数据集以继续提交自动化 ML 作业。**

    任务设置:

    • 任务类型:回归
    • 数据集:bike-rentals
    • 目标列:租赁数(整数)
    • 其他配置设置:
      • 主要指标:NormalizedRootMeanSquaredError
      • 说明最佳模型:未选择
      • 启用整体堆叠:未选定**
      • 使用所有受支持的模型:未选择。 你将限制作业,仅尝试一些特定的算法。
      • 允许的模型:仅选择 RandomForest 和 LightGBM - 通常,你想尽可能多地尝试,但添加的每个模型都会增加运行作业所需的时间。* *
    • 限制:展开此节
      • 最大试用数3
      • 最大并发试用数3
      • 最大节点数3
      • 指标分数阈值0.085如果模型的标准均方根误差指标分数为0.085 或更低,则作业会结束。
      • eXPERIMENT 超时15
      • 迭代超时15
      • 启用提前终止:已选择
    • 验证和测试:
      • 验证类型:训练验证拆分
      • 验证数据百分比:10
      • 测试数据集:无

    计算:

    • 选择计算类型:无服务器
    • 虚拟机类型:CPU
    • 虚拟机层:专用
    • 虚拟机大小:*Standard_DS3_V2
    • 实例数:1

    * 如果订阅限制了你可用的 VM 大小,请选择任何可用的大小。**

  3. 提交训练作业。 它会自动启动。

  4. 请等待作业完成。 这可能需要一段时间 - 这段时间正好可以喝杯咖啡休息一下!

查看最佳模型

自动化机器学习作业完成后,可以查看它训练的最佳模型。

  1. 在自动化机器学习作业的“概述”选项卡上,记下最佳模型摘要。 自动化机器学习作业的最佳模型摘要的屏幕截图,其中在算法名称周围有一个框。

    注意:你可能会在状态下看到消息“警告: 已达到用户指定的退出分数…”。 这是预期的消息。 请继续执行下一步。

  2. 选择最佳模型的“算法名称”下的文本,以查看其详细信息。

  3. 选择“指标”选项卡,然后选择“残差”和“predicted_true”图标(如果尚未选择)。

    查看显示模型性能的图表。 “残差”图表以直方图显示残差(预测值与实际值之间的差异)。 predicted_true 图表将预测值与 true 值进行比较。

部署并测试模型

  1. 在自动化机器学习作业训练的最佳模型的“模型”选项卡上,选择“部署”并使用“实时终结点”选项通过以下设置来部署模型:****
    • 虚拟机:Standard_DS3_v2
    • 实例计数:3
    • 终结点:新建
    • 终结点名称保留默认值或确保其全局唯一
    • 部署名称:保留默认值**
    • 推理数据收集**已禁用
    • 包模型已禁用
  2. 等待部署开始 - 这可能需要几秒钟。 在页面的主要部分,“predict-rentals”终结点的“部署状态”将显示为“正在运行”。
  3. 等待“部署状态”更改为“已成功”。 这可能需要 5-10 分钟。

测试已部署的服务

现在,可以测试已部署的服务。

  1. 在 Azure 机器学习工作室的左侧菜单中,选择“终结点”,然后打开“predict-rentals”实时终结点。

  2. 在“predict-rentals”实时终结点页上,查看“测试”选项卡。

  3. 在“输入数据以测试终结点”窗格中,将模板 JSON 替换为以下输入数据:

     {
       "input_data": {
         "columns": [
             {
                 "day": 1,
                 "mnth": 1,   
                 "year": 2022,
                 "season": 2,
                 "holiday": 0,
                 "weekday": 1,
                 "workingday": 1,
                 "weathersit": 2, 
                 "temp": 0.3, 
                 "atemp": 0.3,
                 "hum": 0.3,
                 "windspeed": 0.3 
             }
         ],
         "index": [],
         "data": []
       }
     }
    
  4. 单击“测试”按钮**

  5. 查看测试结果,其中包括根据输入特征预测的租赁次数,与此类似:

     {
       "Results": [
         444.27799000000000
       ]
     }
    

    测试窗格采用输入数据,然后使用训练的模型返回预测的租赁次数。

我们来回顾一下你的操作。 使用历史自行车租赁数据的数据集来训练模型。 该模型基于季节和气象特征预测给定日的自行车租赁数。

清理

你创建的 Web 服务托管于“Azure 容器实例”中。 如果不打算进一步试验它,应删除终结点以避免产生不必要的 Azure 使用量。

  1. Azure 机器学习工作室的“终结点”选项卡上,选择“predict-rentals”终结点。 然后选择“删除”,并确认是否要删除该终结点。

    删除计算可确保不会向你的订阅收取计算资源的费用。 但是,只要订阅中存在 Azure 机器学习工作区,就会向你收取少量数据存储费用。 如果已完成对 Azure 机器学习的探索,可以删除 Azure 机器学习工作区和关联的资源。

删除工作区的步骤:

  1. Azure 门户的“资源组”页中,打开在创建 Azure 机器学习工作区时指定的资源组。
  2. 单击“删除资源组”,键入资源组名称以确认要删除资源组,然后选择“删除”。