使用 SageMaker 实现机器学习回归算法:轻松掌握数据预测技巧

这是本系列文章的第三篇,旨在通过动手实践,帮助大家学习亚马逊云科技的生成式AI相关技能。通过这些文章,大家将掌握如何利用亚马逊云科技的各类服务来应用AI技术。

那么让我们开始今天的内容吧!

介绍

什么是 AWS SageMaker?

  1. Amazon SageMaker 是一项全托管的机器学习 (ML) 服务。
  2. SageMaker 帮助数据科学家和开发人员快速、轻松地构建和训练机器学习模型。
  3. 它还提供了将这些模型直接部署到生产就绪的托管环境中的机制。
  4. 为了避免管理服务器,它集成了 Jupyter 编写笔记本实例,便于访问数据源进行分析。
  5. 此外,它提供了针对分布式环境和超大数据集优化的基础机器学习算法。
  6. SageMaker 还提供灵活的分布式训练选项,可根据您的具体工作流进行调整。
  7. 训练和托管按使用时间按分钟计费。
  8. 没有最低费用,也无需预先承诺。

架构图

 动手实践

创建一个公共 S3 存储桶

首先,在 AWS 控制台顶部点击 Services(服务),然后在 Storage(存储)部分中选择 S3,或直接搜索 S3 进行访问。

点击创建存储桶并进行以下设置:

  1. 存储桶名称:输入 tests3bucket-whizlabs(注意:S3 存储桶的名称在全球范围内必须唯一,确保选择一个可用的名称。)

  2. AWS 区域:选择 “US East (N. Virginia)” 即 us-east-1 区域。

  3. 对象所有权:将其设置为“启用 ACL”,并保持对象所有权的默认选项。

4.公共访问权限设置:取消勾选“阻止所有公共访问”。

5.其他设置保持默认。

6.然后点击“创建存储桶”。

下载对象文件并将 .csv 文件上传至 S3 存储桶

点击你的存储桶名称。

进入“对象”选项卡。

下载文件:点击下载 CSV 文件,将其下载到本地计算机。

将文件重命名为 day.csv,并将其上传到 S3 存储桶。

上传文件至 S3 存储桶的步骤如下:

  1. 点击“上传”按钮。
  2. 点击“添加文件”。
  3. 浏览并选择你本地的图片或我们提供的图片文件。
  4. 点击“上传”按钮。

你可以在屏幕顶部的传输面板中查看上传进度。

上传完成后,文件会显示在存储桶中。

编辑存储桶策略

  • 在 S3 控制台中,选择你的存储桶。
  • 点击“权限”选项卡。

  • 向下滚动找到“存储桶策略”部分,然后点击“编辑策略”按钮。

  • 输入或修改存储桶策略,以满足你的访问需求。
{
    "Version": "2012-10-17",
    "Id": "Policy1673362354378",
    "Statement": [
      {
        "Sid": "Stmt1673362352955",
        "Effect": "Allow",
        "Principal": "*",
        "Action": [
          "s3:GetObject",
          "s3:GetObjectAcl",
          "s3:PutObject",
          "s3:PutObjectAcl"
        ],
        "Resource": "<YOUR_BUCKET_ARN>/*"
      }
    ]
  }

注意:将“<YOUR_BUCKET_ARN>”替换为你的存储桶 ARN,并确保不要删除 /*

完成后,点击“保存更改”。

使用 ACL 将对象设置为公开

  1. 进入你的存储桶。
  2. 在“对象”部分,选择已上传的 CSV 文件。
  3. 点击“操作”,然后选择“通过 ACL 公开”。
  4. 点击“公开”按钮。

创建 SageMaker 笔记本实例 

确保你所在的区域是 US East (N. Virginia) us-east-1

按照以下步骤操作:

  1. 在 AWS 控制台顶部点击 Services(服务),然后在 Machine Learning(机器学习) 部分点击 SageMaker
  2. 在左侧菜单中点击 Notebook(笔记本),然后选择 Notebook instances(笔记本实例)
  3. 要创建一个新的笔记本实例,点击 Create Notebook Instance(创建笔记本实例)
  4. 名称:输入 LabML
  5. Notebook instance type(笔记本实例类型):选择 ml.t2.medium
  6. 权限与加密
    • IAM role(IAM 角色):选择 Create a new role(创建新角色),在弹出窗口中点击 Create role(创建角色) 按钮。
  7. 完成设置后,点击 Create Notebook Instance(创建笔记本实例)

等待实例创建完成后,即可开始使用。

打开笔记本实例中的 Jupyter

  • 导航到 AWS SageMaker,然后从左侧菜单中点击 Notebook,选择 Notebook instances(笔记本实例)
  • 在这里你可以看到已经创建的笔记本实例。
  • 等待状态变为 InService(服务中)
  • 然后点击 “Open Jupyter”(打开 Jupyter)

 

上传 Python 文件

  1. 打开 Jupyter:进入你创建的 SageMaker 笔记本实例,并点击 “Open Jupyter”
  2. 下载 Python 文件:点击下载文件链接,获取需要上传的 Python 文件,文件名为 49-LinearLearnerModel
  3. 上传文件:在 Jupyter 界面中,点击右上角的 “Upload” 按钮,选择刚下载的 Python 文件并上传。
  4. 创建新笔记本
    • 点击 “New” 按钮。
    • 选择 “Conda_python3” 环境。

运行代码

  1. 在第一个单元格中输入代码:进入 Jupyter 笔记本,在第一个单元格中输入第一块代码。

  2. 点击“Run”:点击上方的 “Run” 按钮运行代码。

    • 如果单元格内显示星号 (*),表示代码正在执行。
    • 执行完成后,星号将被一个数字取代,表明代码运行结束。

  1. 在第二个单元格中输入代码:同样,将第二块代码输入到下一个单元格,并运行它。

    • 在该代码块中,替换存储桶名称和对象键,将其替换为你自己的 S3 存储桶名称和对象名称。

  1. 运行第三块代码:继续将第三块代码输入到相应单元格中并运行。

  1. 按顺序单独运行每个单元格:依次点击每个代码单元格,并逐一运行它们,确保代码按照正确的顺序执行。

训练和部署模型

  1. 训练模型:在 Jupyter 笔记本中,输入以下代码片段来训练模型(该步骤可能需要 5-10 分钟):

    • 运行训练代码片段并等待模型训练完成。
  2. 部署模型:在模型成功训练后,运行下一个代码片段以部署模型并检查端点的生成情况。

  3. 检查端点

    • 在 SageMaker 控制台左侧菜单中,向下滚动并点击 “Inference(推理)”,然后点击 “Endpoints(端点)”
    • 你将看到生成的端点,等待其状态变为 InService(服务中)

完成这些步骤后,模型便可以通过生成的端点进行调用。

 

使用测试数据进行预测

  1. 下载 Python 文件:点击下载 Python 文件,将其下载到本地,并将文件重命名为 client.py

  2. 在 VS Code 中配置 AWS CLI

    • 打开 VS Code,进入终端。
    • 输入以下命令配置 AWS CLI:
       
    • 提供你的 AWS Access Key、Secret Key 和区域名称。

  1. 运行 client.py 文件

    • 在代码编辑器中,运行 client.py 文件。
    • 确保你更改了 Python 文件名称,以匹配下载的 Python 文件名称。
      cd downloads
      
      py client_31_20.py
      

  2. 查看输出:运行完成后,输出结果将展示预测值与实际数据之间的对比。

这将帮助你评估模型的预测性能。

总结

本次翻译内容涉及如何在 AWS 环境中使用 SageMaker、S3 和 Jupyter 笔记本实例,具体步骤包括:

  1. 创建公共 S3 存储桶,并上传 CSV 文件。
  2. 编辑存储桶策略以设置适当的访问权限。
  3. 在 SageMaker 中创建和配置笔记本实例,并通过 Jupyter 笔记本上传并运行 Python 代码。
  4. 通过运行代码来训练模型,生成预测端点,并验证模型是否成功部署。
  5. 最后,通过配置 AWS CLI 并在本地运行 Python 脚本,使用测试数据进行预测并查看模型结果。

这些内容展示了如何使用 SageMaker 完成从数据上传、模型训练、到部署和预测的整个流程。所有这些步骤都可以在 Whizlabs 平台上进行动手实践。Whizlabs 提供了涵盖 AWS 的实验环境,用户可以通过真实场景练习 AWS 服务的使用,从而提高对云计算和机器学习的理解与技能。

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值