

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 亚马逊 SageMaker Canvas
<a name="canvas"></a>

Amazon SageMaker Canvas 使您无需编写任何代码即可使用机器学习生成预测。以下是一些可以使用 C SageMaker anvas 的用例：
+ 预测客户流失情况
+ 高效规划库存
+ 优化价格和收入
+ 提高准时交付率
+ 根据自定义类别对文本或图像进行分类
+ 识别图像中的对象和文本
+ 从文档中提取信息

使用 Canvas，您可以与流行的大型语言模型 (LLMs) 聊天、访问 Ready-to-use模型或构建基于您的数据训练的自定义模型。

Canvas 聊天是一项利用开源和 Amazon LLMs 来帮助您提高工作效率的功能。您可以提示模型在生成内容、对文档进行汇总或分类以及回答问题等任务方面获得帮助。要了解更多信息，请参阅[C SageMaker anvas 中的生成式 AI 基础模型](canvas-fm-chat.md)。

Canvas 中的[Ready-to-use 模型](canvas-ready-to-use-models.md)可以从您的数据中提取针对各种用例的见解。[你不必构建模型就能使用 Ready-to-use模型，因为它们由亚马逊人工智能服务提供支持，包括亚马逊 [Rekognition、Amazon Textract 和](https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html) Amazon C [ompre](https://docs.aws.amazon.com/textract/latest/dg/what-is.html) hend。](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html)您只需要导入数据并开始使用解决方案来生成预测即可。

如果您想要一个根据您的使用案例定制并使用您的数据进行训练的模型，则可以[构建模型](canvas-custom-models.md)。您可通过执行以下操作获得根据您的数据定制的预测结果：

1. 从一个或多个数据源导入数据。

1. 构建预测模型。

1. 评估模型的性能。

1. 使用模型生成预测。

Canvas 支持以下类型的自定义模型：
+ 数值预测（也称为*回归*）
+ 2 类和 3 类以上的分类预测（也称为*二元分类*和*多元分类*）
+ 时间序列预测
+ 单标签图像预测（也称为*图像分类*）
+ 多元文本预测（也称为*多元文本分类*）

要了解有关定价的更多信息，请参阅 [SageMaker Canvas 定价页面](https://aws.amazon.com/sagemaker/canvas/pricing/)。您也可以查看 [C SageMaker anvas 中的账单和费用](canvas-manage-cost.md)，了解更多信息。

SageMaker Canvas 目前在以下地区上市：
+ 美国东部（俄亥俄州）
+ 美国东部（弗吉尼亚州北部）
+ 美国西部（北加利福尼亚）
+ 美国西部（俄勒冈州）
+ 亚太地区（孟买）
+ 亚太地区（首尔）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（东京）
+ 加拿大（中部）
+ 欧洲地区（法兰克福）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（伦敦）
+ 欧洲地区（巴黎）
+ 欧洲地区（斯德哥尔摩）
+ 南美洲（圣保罗）

**Topics**
+ [你是第一次使用 C SageMaker anvas 吗？](#canvas-first-time-user)
+ [开始使用 Amazon C SageMaker anvas](canvas-getting-started.md)
+ [教程：在 Can SageMaker vas 中构建 end-to-end机器学习工作流程](canvas-end-to-end-machine-learning-workflow.md)
+ [Amazon SageMaker Canvas 设置和权限管理（适用于 IT 管理员）](canvas-setting-up.md)
+ [生成式人工智能协助，通过使用 Amazon Q 开发者版解决 Canvas 中的 ML 问题](canvas-q.md)
+ [导入数据](canvas-importing-data.md)
+ [数据准备](canvas-data-prep.md)
+ [C SageMaker anvas 中的生成式 AI 基础模型](canvas-fm-chat.md)
+ [Ready-to-use 模型](canvas-ready-to-use-models.md)
+ [自定义模型](canvas-custom-models.md)
+ [注销 Amazon SageMaker Canvas](canvas-log-out.md)
+ [限制和问题排查](canvas-limits.md)
+ [C SageMaker anvas 中的账单和费用](canvas-manage-cost.md)

## 你是第一次使用 C SageMaker anvas 吗？
<a name="canvas-first-time-user"></a>

如果您是首次使用 SageMaker Canvas，我们建议您先阅读以下章节：
+ 对于 IT 管理员 – [Amazon SageMaker Canvas 设置和权限管理（适用于 IT 管理员）](canvas-setting-up.md)
+ 对于分析师和个人用户 – [开始使用 Amazon C SageMaker anvas](canvas-getting-started.md)
+ 端到端工作流程示例：[教程：在 Can SageMaker vas 中构建 end-to-end机器学习工作流程](canvas-end-to-end-machine-learning-workflow.md)

# 开始使用 Amazon C SageMaker anvas
<a name="canvas-getting-started"></a>

本指南告诉你如何开始使用 SageMaker Canvas。如果您是 IT 管理员并想了解更多详细信息，请参阅[Amazon SageMaker Canvas 设置和权限管理（适用于 IT 管理员）](canvas-setting-up.md)为用户设置 SageMaker Canvas。

**Topics**
+ [设置 Amazon C SageMaker anvas 的先决条件](#canvas-prerequisites)
+ [第 1 步：登录 SageMaker 画布](#canvas-getting-started-step1)
+ [第 2 步：使用 SageMaker Canvas 获取预测](#canvas-getting-started-step2)

## 设置 Amazon C SageMaker anvas 的先决条件
<a name="canvas-prerequisites"></a>

要设置 SageMaker Canvas 应用程序，请使用以下设置方法之一进行登录：

1. **使用 AWS 主机加载。**要通过控制 AWS 台进行登录，您需要先创建一个 Amazon SageMaker AI 域。 SageMaker AI 领域支持各种机器学习 (ML) 环境，例如 Canvas 和 [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)。有关域的更多信息，请参阅 [亚马逊 SageMaker AI 域名概述](gs-studio-onboard.md)。

   1. （快速）[使用 Amazon A SageMaker I 的快速设置](onboard-quick-start.md)：如果您想快速设置域，请选择此选项。这会为用户授予所有默认 Canvas 权限和基本功能。任何其他功能（例如[文档查询](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query)）都可以由管理员稍后启用。如果您想要配置更精细的权限，我们建议您改用高级选项。

   1. （标准）[使用 Amazon A SageMaker I 的自定义设置](onboard-custom.md)：如果您想完成更高级的域设置，请选择此选项。对用户权限进行精细控制，例如访问数据准备功能、生成式人工智能和模型部署。

1. **与... 一起登机 CloudFormation。** [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)自动配置资源和配置，以便您可以同时为一个或多个用户配置文件设置 Canvas。如果您想大规模自动执行连接流程，并确保每次都以相同方式配置应用程序，请使用此选项。以下[CloudFormation 模板](https://github.com/aws-samples/cloudformation-studio-domain)提供了一种简化的 Canvas 入门方式，可确保正确设置所有必需的组件，并允许您专注于构建和部署机器学习模型。

以下部分介绍如何使用 AWS 控制台创建域来登录 Canvas。

**重要**  
要设置亚马逊 SageMaker Canvas，您的亚马逊 SageMaker Studio 版本必须为 3.19.0 或更高版本。有关更新 Amazon SageMaker Studio 的信息，请参阅[关闭并更新 Amazon SageMaker Studio 经典版](studio-tasks-update-studio.md)。

### 使用 AWS 主机上线
<a name="canvas-prerequisites-domain"></a>

如果您正在进行快速域设置，则可以按照 [使用 Amazon A SageMaker I 的快速设置](onboard-quick-start.md) 中的说明进行操作，跳过本节的其余部分，继续进行 [第 1 步：登录 SageMaker 画布](#canvas-getting-started-step1)。

如果您进行的是标准域设置，则您可以指定要授予用户访问权限的 Canvas 功能。在完成标准域设置时，请使用本节的其余部分来帮助您配置 Canvas 的特定权限。

在 [使用 Amazon A SageMaker I 的自定义设置](onboard-custom.md) 设置说明的**步骤 2：用户和 ML 活动**中，您必须选择要授予的 Canvas 权限。在 **ML 活动**部分，您可以选择以下权限策略来授予对 Canvas 功能的访问权限。在设置域时，您最多只能选择 8 个 **ML 活动**。使用 Canvas 需要以下列表中的前两个权限，其余权限用于其他功能。
+ **运行 Studio 应用程序**：这些权限是启动 Canvas 应用程序所必需的。
+ **[Canvas 核心访问权限](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)**：这些权限允许您访问 Canvas 应用程序和 Canvas 的基本功能，例如创建数据集、使用基本数据转换以及构建和分析模型。
+ （可选）**[Canvas 数据准备（由 Data Wrangler 提供支持）](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)**：这些权限允许您在 Canvas 中创建数据流和使用高级转换来准备数据。创建数据处理作业和数据准备作业计划也需要这些权限。
+ （可选）**[Canvas AI 服务](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasAIServicesAccess.html)** — 这些权限允许您访问 Canvas 中的 Ready-to-use模型、基础模型和 “与数据聊天” 功能。
+ （可选）**Kendra 访问权限**：此权限允许您访问[文档查询](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query)功能，您可以使用 Canvas 中的基础模型查询存储在 Amazon Kendra 索引中的文档。

  如果您选择此选项，则在 **Canvas Kendra Access 部分，输入您要 IDs 授予访问权限**的亚马逊 Kendra 索引的。
+ （可选）**[Canvas MLOps](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDirectDeployAccess.html)** — 此权限授予您访问 Canvas 中[模型部署](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-deploy-model.html)功能的权限，您可以在其中部署模型以用于生产。

在域设置的**步骤 3：应用程序**部分，选择**配置 Canvas**，然后执行以下操作：

1.  对于 **Canvas 存储配置**，请指定您希望 Canvas 存储应用程序数据（例如模型构件、批次预测、数据集和日志）的位置。 SageMaker AI 在此存储桶内创建一个用于存储数据的`Canvas/`文件夹。有关更多信息，请参阅 [配置 Amazon S3 存储](canvas-storage-configuration.md)。请在本节中执行以下操作：

   1. 如果您要将位置设置为遵循该模式`s3://sagemaker-{Region}-{your-account-id}`的 SageMaker AI 创建的默认存储桶，请选择 “**系统管理**”。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. （可选）对于 **Amazon Q 开发者版**，请执行以下操作：

   1. 开启 “在 ** SageMaker Canvas 中启用 Amazon Q 开发者进行自然语言机器**学习”，允许您的用户在 Canvas 的机器学习工作流程中利用生成式 AI 帮助。此选项仅授权查询 Amazon Q 开发者版，以帮助完成可在 Canvas 应用程序中执行的预定任务。

   1. 开**启启启用 Amazon Q Developer 聊天以 AWS 解答一般问题**，允许您的用户进行与 AWS 服务相关的生成式 AI 查询。

1. （可选）如果用户计划在 Canvas 中处理超过 5 GB 的数据集，请配置**大型数据处理**部分。有关如何配置这些选项的更多详细信息，请参阅[向用户授予在整个 ML 生命周期中使用大数据的权限](canvas-large-data-permissions.md)。

1. （可选）对于 **ML Ops 权限配置**部分，执行以下操作：

   1. **启用 “启用直接部署 Canvas 模型**” 选项以允许您的用户将其模型从 Canvas 部署到 A SageMaker I 端点。有关 Canvas 中模型部署的更多信息，请参阅 [将模型部署到端点](canvas-deploy-model.md)。

   1. 保持 “**为所有用户启用模型注册权限**” 选项处于启用状态，以授予用户向 SageMaker AI 模型注册表注册其模型版本的权限（该注册表默认处于开启状态）。有关更多信息，请参阅 [在 SageMaker AI 模型注册表中注册模型版本](canvas-register-model.md)。

   1. 如果您将**为所有用户启用模型注册权限**选项保持开启状态，则选择**仅注册到模型注册表**或**在模型注册表中注册并批准模型**。

1. （可选）在**本地文件上传配置**部分，打开**启用本地文件上传**选项，授予用户从本地计算机将文件上传到 Canvas 的权限。启用此选项后，会将跨源资源共享 (CORS) 策略附加到在 **Canvas 存储配置**中指定的 Amazon S3 存储桶（并覆盖任何现有的 CORS 策略）。要了解有关本地文件上传权限的更多信息，请参阅 [授予用户上传本地文件的权限](canvas-set-up-local-upload.md)。

1. （可选）在 **OAuth “设置”** 部分，执行以下操作：

   1. 选择**添加 OAuth 配置**。

   1. 在**数据来源**中，选择您的数据来源。

   1. 在**密钥设置**中，选择**创建新密钥**，然后输入身份供应商提供的信息。如果您尚未对数据源进行初始 OAuth 设置，请参阅[使用设置与数据源的连接 OAuth](canvas-setting-up-oauth.md)。

1. （可选）对于 **Canvas Ready-to-use 模型配置**，请执行以下操作：

   1. 让 “**启用画布 Ready-to-use模型**” 选项保持开启状态，让您的用户能够在 Canvas 中使用 Ready-to-use模型生成预测（默认情况下处于开启状态）。此选项还允许您与生成式人工智能支持的模型聊天。有关更多信息，请参阅 [C SageMaker anvas 中的生成式 AI 基础模型](canvas-fm-chat.md)。

   1. 打开**启用使用 Amazon Kendra 查询文档**选项，让用户有权限使用根基模型查询存储在 Amazon Kendra 索引中的文档。然后，从下拉菜单中选择要授予对其访问权限的现有索引。有关更多信息，请参阅 [C SageMaker anvas 中的生成式 AI 基础模型](canvas-fm-chat.md)。

   1. 对于 **Amazon Bedrock 角色**，选择**创建并使用新的执行角色**来创建与 Amazon Bedrock 具有信任关系的新 IAM 执行角色。这个 IAM 角色由 Amazon Bedrock 担任，负责在 Canvas 中微调大型语言模型 (LLMs)。如果您已经有一个具有信任关系的执行角色，请选择**使用现有的执行角色**，然后从下拉列表中选择您的角色。有关为自己的执行角色手动配置权限的更多信息，请参阅 [授予用户在 Canvas 中使用 Amazon Bedrock 和生成式人工智能功能的权限](canvas-fine-tuning-permissions.md)。

1. 按照 [使用 Amazon A SageMaker I 的自定义设置](onboard-custom.md) 步骤完成其余域设置的配置。

**注意**  
如果您在通过控制台授予权限（例如 Ready-to-use模型权限）时遇到任何问题，请参阅主题[解决通过 SageMaker AI 控制台授予权限的问题](canvas-limits.md#canvas-troubleshoot-trusted-services)。

现在，您应该已经设置了 A SageMaker I 域并配置了所有 Canvas 权限。

在初始域设置后，您可以编辑域或特定用户的 Canvas 权限。个人用户设置会覆盖域设置。要了解如何在域设置中编辑 Canvas 权限，请参阅 [编辑域设置](domain-edit.md)。

### 授予自己使用 Canvas 中特定功能的权限
<a name="canvas-prerequisites-permissions"></a>

以下信息概述了您可以向 Canvas 用户授予的权限，以允许他们使用 Canvas 中的各种特性和功能：其中有些权限可以在域设置时授予，但有些需要额外的权限或配置。请参阅要启用的每项功能的具体权限信息：
+ **本地文件上传。**在设置域时，默认情况下在 Canvas 基本权限中打开本地文件上传权限。如果您无法将本地文件从计算机上传到 C SageMaker anvas，则可以将 CORS 策略附加到您在 Canvas 存储配置中指定的 Amazon S3 存储桶。如果您允许 SageMaker AI 使用默认存储桶，则存储桶将遵循命名模式`s3://sagemaker-{Region}-{your-account-id}`。有关更多信息，请参阅[向用户授予上传本地文件的权限](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-set-up-local-upload.html)。
+ **自定义图像和文本预测模型。**在设置域时，默认情况下在 Canvas 基本权限中打开构建自定义映像和文本预测模型的权限。但是，如果您有自定义 IAM 配置并且不想将[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)策略附加到用户的 IAM 执行角色，则必须明确向您的用户授予必要的权限。有关更多信息，请参阅 [授予用户构建自定义图像和文本预测模型的权限](canvas-set-up-cv-nlp.md)。
+ **Ready-to-use 模型和基础模型。**您可能需要使用 Canvas Ready-to-use 模型来预测您的数据。有了 Ready-to-use模型权限，你还可以与生成式人工智能驱动的模型聊天。在设置域时，默认情况下会打开这些权限，您也可以编辑已创建的域的权限。Canvas Ready-to-use 模型权限选项会将[AmazonSageMakerCanvasAIServices访问](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)策略添加到您的执行角色中。有关更多信息，请参阅 Ready-to-use模型文档的[开始使用](canvas-ready-to-use-models.md#canvas-ready-to-use-get-started)部分。

  有关开始使用生成式人工智能根基模型的更多信息，请参阅 [C SageMaker anvas 中的生成式 AI 基础模型](canvas-fm-chat.md)。
+ **微调基础模型。**如果您想对 Canvas 中的基础模型进行微调，可以在设置域时添加权限，也可以在创建域后编辑域或用户配置文件的权限。您必须将[AmazonSageMakerCanvasAIServices访问](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)策略添加到您在设置用户资料时选择的 AWS IAM 角色，还必须向该角色添加与 Amazon Bedrock 的信任关系。有关如何将这些权限添加到 IAM 角色的说明，请参阅 [授予用户在 Canvas 中使用 Amazon Bedrock 和生成式人工智能功能的权限](canvas-fine-tuning-permissions.md)。
+ **将批量预测发送到 Quick。**您可能需要将[*批量预测*或从自定义模型生成的预测数据集发送](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html)到 Quick 进行分析。在中 [QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html)，您可以构建和发布包含预测结果的预测仪表板。有关如何将这些权限添加到 Canvas 用户的 IAM 角色的说明，请参阅[向您的用户授予向 Quick 发送预测的权限](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html)。
+ **将 Canvas 模型部署到 A SageMaker I 端点。** SageMaker AI Hosting 提供了*终端节点，您可以使用这些端点*来部署模型以用于生产。您可以将在 Canvas 中构建的模型部署到 A SageMaker I 端点，然后在生产环境中以编程方式进行预测。有关更多信息，请参阅 [将模型部署到端点](canvas-deploy-model.md)。
+ **将模型版本注册到模型注册表。**您可能需要将模型的*版本*注册到 [SageMaker AI 模型注册表](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html)，该注册表是一个用于跟踪模型更新版本状态的存储库。在 SageMaker Model Registry 工作的数据科学家或 MLOps 团队可以查看您构建的模型版本，并批准或拒绝这些版本。然后，他们可以将您的模型版本部署到生产环境或启动自动化工作流。默认情况下，您的域的模型注册权限处于开启状态。您可以在用户配置文件级别管理权限，并授予或删除特定用户的权限。有关更多信息，请参阅 [在 SageMaker AI 模型注册表中注册模型版本](canvas-register-model.md)。
+ **从 Amazon Redshift 导入数据。**如果您想从 Amazon Redshift 导入数据，则必须授予自己额外的权限。您必须将`AmazonRedshiftFullAccess`托管策略添加到您在设置用户配置文件时选择的 AWS IAM 角色中。有关如何向角色添加策略的说明，请参阅[向用户授予导入 Amazon Redshift 数据的权限](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html)。

**注意**  
和政策中包含[AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)通过其他数据源（例如 Amazon Athena 和 SaaS 平台）进行导入所需的权限。[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)如果您按照标准设置说明进行操作，则这些策略应该已经附加到执行角色。有关这些数据来源及其权限的更多信息，请参阅 [连接到数据来源](canvas-connecting-external.md)。

## 第 1 步：登录 SageMaker 画布
<a name="canvas-getting-started-step1"></a>

初始设置完成后，您可以使用以下任何一种方法访问 SageMaker Canvas，具体取决于您的用例：
+ 在 [SageMaker AI 控制台](https://console.aws.amazon.com/sagemaker/)中，选择左侧导航窗格中的**画布**。然后，在 **Canvas** 页面上，从下拉列表中选择用户并启动 Canvas 应用程序。
+ 打开 [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)，然后在 Studio 界面中，转到画布页面并启动 Canvas 应用程序。
+ 使用贵组织基于 SAML 2.0 的 SSO 方法，例如 Okta 或 IAM Identity Center。

当你首次登录 SageMaker Canvas 时， SageMaker AI 会为你创建应用程序和 SageMaker 人工智能*空间*。Canvas 应用程序的数据存储在空间中。要了解有关空间的更多信息，请参阅 [使用共享空间进行协作](domain-space.md)。此空间由用户配置文件的应用程序和所有应用程序数据的共享目录组成。如果您不想使用 SageMaker AI 创建的默认空间，而是希望创建自己的空间来存储应用程序数据，请参阅页面[将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中](canvas-spaces-setup.md)。

## 第 2 步：使用 SageMaker Canvas 获取预测
<a name="canvas-getting-started-step2"></a>

登录 Canvas 后，您就可以开始构建模型并生成数据预测。

您可以使用 Canvas Ready-to-use 模型在不构建模型的情况下进行预测，也可以针对您的特定业务问题构建自定义模型。查看以下信息，以确定 Ready-to-use模型还是自定义模型最适合您的用例。
+ **Ready-to-use 模型。**借助 Ready-to-use模型，您可以使用预先构建的模型从数据中提取见解。这些 Ready-to-use模型涵盖了各种用例，例如语言检测和文档分析。要开始使用 Ready-to-use模型进行预测，请参阅[Ready-to-use 模型](canvas-ready-to-use-models.md)。
+ **自定义模型。**使用自定义模型，您可以构建各种模型类型，这些模型类型经过自定义，可以对数据进行预测。如果您想构建基于业务特定数据训练的模型，并且想要使用诸如[评估模型性能](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html)之类的功能，请使用自定义模型。要开始构建自定义模型，请参阅 [自定义模型](canvas-custom-models.md)。

# 教程：在 Can SageMaker vas 中构建 end-to-end机器学习工作流程
<a name="canvas-end-to-end-machine-learning-workflow"></a>

本教程将指导您使用 Amazon C SageMaker anvas 完成 end-to-end机器学习 (ML) 工作流程。 SageMaker Canvas 是一个可视化的无代码界面，可用于准备数据以及训练和部署机器学习模型。在本教程中，您将使用纽约市出租车数据集来训练一个模型来预测给定行程的车费金额。您可以亲身体验关键的机器学习任务，例如评估数据质量和解决数据问题、将数据拆分为训练和测试集、模型训练和评估、进行预测以及部署训练过的模型，所有这些都在 SageMaker Canvas 应用程序中完成。

**重要**  
本教程假设您或您的管理员已经创建了一个 AWS 帐户。有关创建 AWS 账户的信息，请参阅[入门：你是第一次 AWS 使用吗？](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html)

## 设置
<a name="canvas-tutorial-setting-up"></a>

Amazon SageMaker AI 域是管理所有亚马逊 A SageMaker I 环境和资源的集中场所。域充当你在 SageMaker AI 中工作的虚拟边界，为你的机器学习 (ML) 资源提供隔离和访问控制。

要开始使用 Amazon SageMaker Canvas，您或您的管理员必须导航到 SageMaker AI 控制台并创建亚马逊 SageMaker AI 域。域拥有运行 C SageMaker anvas 所需的存储和计算资源。在该域中，您可以将 SageMaker Canvas 配置为访问您的 Amazon S3 存储桶并部署模型。使用以下步骤设置快速域并创建 SageMaker Canvas 应用程序。

**要设置 “ SageMaker 画布”**

1. 导航到 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker)。

1. 在左侧导航栏中，选择 “ SageMaker 画布”。

1. 选择**创建 A SageMaker I 域**。

1. 选择**设置**。域设置需要几分钟时间。

前面的步骤使用的是快速域设置。您可以执行高级设置，控制账户配置的各个方面，包括权限、集成和加密。有关自定义设置的更多信息，请参阅 [使用 Amazon A SageMaker I 的自定义设置](onboard-custom.md)。

默认情况下，进行快速域设置后，您就拥有了部署模型的权限。如果您通过标准域设置了自定义权限，并且需要手动授予模型部署权限，请参阅 [权限管理](canvas-deploy-model.md#canvas-deploy-model-prereqs)。

## 流创建
<a name="canvas-tutorial-flow-creation"></a>

Amazon SageMaker Canvas 是一个机器学习平台，使用户无需大量的编码或机器学习专业知识即可构建、训练和部署机器学习模型。Amazon SageMaker Canvas 的强大功能之一是能够导入和处理来自各种来源（例如 Amazon S3）的大型数据集。

在本教程中，我们将使用纽约出租车数据集，使用 Amazon Canvas Data Wrangler 数据 SageMaker 流预测每次行程的票价。以下过程概述了将修改后的纽约市出租车数据集导入数据流的步骤。

**注意**  
为了改进处理能力， SageMaker Canvas 会导入您的数据样本。默认情况下，它会随机采样 50000 行。

**要导入纽约市出租车数据集**

1. 在 SageMaker Canvas 主页上，选择 **Data Wrangler**。

1. 选择**导入数据**。

1. 选择**表格**。

1. 选择数据来源旁边的工具箱。

1. 从下拉列表中选择 **Amazon S3**。

1. 对于**输入 S3 端点**，请指定 `s3://amazon-sagemaker-data-wrangler-documentation-artifacts/canvas-single-file-nyc-taxi-dataset.csv`

1. 选择**开始**。

1. 选中数据集旁边的复选框。

1. 选择**预览数据**。

1. 选择**保存**。

## 数据质量和见解报告 1（样本）
<a name="canvas-tutorial-data-quality-insights-report-1"></a>

将数据集导入 Amazon SageMaker Canvas 后，您可以根据数据样本生成数据质量和见解报告。利用它为数据集提供有用的见解。此报告的作用如下：
+ 评测数据集的完整性
+ 识别缺失值和异常值

它可以找出可能影响模型性能的其他潜在问题。它还能评估每个功能对目标变量的预测能力，从而使您能够确定与要解决的问题最相关的功能。

我们可以利用报告中的见解来预测票价金额。通过指定**票价金额**列为目标变量并选择**回归**作为问题类型，报告将分析数据集是否适合预测票价等连续值。此报告应显示 **year** 和 **hour\$1of\$1day** 等功能对所选目标变量的预测能力较低，从而为您提供有用的见解。

按照以下步骤从数据集中获取 50000 行样本的数据质量和见解报告。

**要获取样本报告**

1. 从**数据类型**节点旁边的弹出窗口中选择**获取数据见解**。

1. 在**分析名称**中，为报告指定名称。

1. 在**问题类型**中，选择**回归**。

1. 在**目标列**中，选择**票价金额**。

1. 选择**创建**。

您可以查看有关数据样本的“数据质量和见解”报告。此报告显示，**year** 和 **hour\$1of\$1day** 功能无法预测目标变量**票价金额**。

在导航的顶部，选择数据流的名称以返回到次数据流。

## 删除“year”和“hour of day”
<a name="canvas-tutorial-drop-year-and-hour-of-day"></a>

我们正在使用报告中的见解来删除 **year** 和 **hour\$1of\$1day** 列，以简化功能空间，并有可能提高模型性能。

Amazon SageMaker Canvas 提供了用户友好的界面和工具来执行此类数据转换。

使用 Amazon Canvas 中的 Data Wrangler 工具，使用以下步骤从纽约出租车数据集中删除**年份**和 **hour\$1of\$1day** 列。 SageMaker 

1. 选择**数据类型**旁边的图标。

1. 选择**添加步骤**。

1. 在搜索栏中输入**删除列**。

1. 选择**管理列**。

1. 选择**删除列**。

1. 在**要删除的列**中，请选择 **year** 和 **hour\$1of\$1day**。

1. 选择**预览**，查看转换如何更改数据。

1. 选择**添加**。

您可以使用上述过程作为基础，在 Can SageMaker vas 中添加所有其他变换。

## 数据质量和见解报告 2（完整数据集）
<a name="canvas-tutorial-data-quality-insights-report-2"></a>

在之前的见解报告中，我们使用了纽约市出租车数据集的样本。在第二份报告中，我们将对整个数据集进行全面分析，以确定影响模型性能的潜在问题。

按照以下步骤为整个数据集创建数据质量和见解报告。

**获取有关整个数据集的报告**

1. 选择**删除列**节点旁边的图标。

1. 选择**获取数据见解**。

1. 在**分析名称**中，为报告指定名称。

1. 在**问题类型**中，选择**回归**。

1. 在**目标列**中，选择**票价金额**。

1. 在**数据大小**中，选择**完整数据集**。

1. 选择**创建**。

以下是见解报告中的图片：

![\[重复的行、偏斜的目标和极低的快速模型分数被列为 insightsP\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/canvas-tutorial-dqi-insights.png)


其中显示了以下问题：
+ 重复行
+ 偏斜的目标

重复的行会导致数据泄露，即模型在训练和测试过程中接触到相同的数据。它们会导致性能指标过于乐观。删除重复的行可确保模型在唯一的实例上进行训练，从而降低数据泄漏的风险并提高模型的泛化能力。

偏斜的目标变量分布（在本例中为**票价金额**列）会导致类别不平衡，在这种情况下，模型可能会偏向多数类。这可能会导致少数类的性能不佳，尤其是在需要准确预测罕见或代表性不足的实例的情况下，这就更成问题了。

## 解决数据质量问题
<a name="canvas-tutorial-addressing-data-quality-issues"></a>

要解决这些问题并为建模准备数据集，可以搜索并应用以下转换：

1. 使用**管理行**转换删除重复项。

1. 使用**稳健的标准差数值异常值**处理**票价金额**列中的**异常值**。

1. 使用**标准差数值异常值**处理**行程距离**和**行程持续时间**列中的**异常值**。

1. 使用 **Encode 分类**将**费率代码 ID**、**付款类型**、**额外标志**和**收费标志**列编码为浮点数。

如果您不确定如何应用转换，请参阅 [删除“year”和“hour of day”](#canvas-tutorial-drop-year-and-hour-of-day)

通过解决这些数据质量问题并应用适当的转换，可以提高数据集的建模适用性。

## 验证数据质量和快速模型准确性
<a name="canvas-tutorial-verifying-data-quality-and-quick-model-accuracy"></a>

在应用转换来解决数据质量问题（例如删除重复的行）之后，我们创建了最终的数据质量和见解报告。此报告有助于验证应用的转换是否解决了问题，以及数据集现在是否处于适合建模的状态。

在查看最终的数据质量和见解报告时，您应该希望看到没有发现任何重大数据质量问题。此报告应表明：
+ 目标变量不再偏斜
+ 没有异常值或重复的行

此外，此报告还应根据在转换后的数据集中训练的基线模型提供快速模型分数。此分数是衡量模型潜在准确性和性能的初步指标。

按照以下过程创建数据质量和见解报告。

**要创建数据质量和见解报告**

1. 选择**删除列**节点旁边的图标。

1. 选择**获取数据见解**。

1. 在**分析名称**中，为报告指定名称。

1. 在**问题类型**中，选择**回归**。

1. 在**目标列**中，选择**票价金额**。

1. 在**数据大小**中，选择**完整数据集**。

1. 选择**创建**。

## 将数据分成训练集和测试集
<a name="canvas-tutorial-split-data"></a>

为了训练模型并评估其性能，我们使用**拆分数据**转换将数据分成训练集和测试集。

默认情况下， SageMaker Canvas 使用随机拆分，但您也可以使用以下类型的拆分：
+ 有序
+ 分层
+ 按键拆分

您可以更改**拆分百分比**或添加拆分。

在本教程中，请使用拆分的所有默认设置。您需要双击数据集才能查看其名称。训练数据集的名称为**数据集（训练）**。

在**顺序编码**节点旁边，应用**拆分数据**转换。

## 训练模型
<a name="canvas-tutorial-train-model"></a>

拆分数据之后，就可以训练模型了。此模型可从数据规律中学习。您可以用它来做出预测或发掘见解。

SageMaker Canvas 既有快速构建，也有标准构建。使用标准构建在数据上训练性能最佳的模型。

在开始训练模型之前，必须先将训练数据集导出为 SageMaker Canvas 数据集。

**要导入数据集**

1. 在训练数据集节点旁边，选择图标并选择**导出**。

1. 选择**SageMaker 画布数据集**。

1. 选择**导出**以导出数据集。

创建数据集后，可以在已创建的 SageMaker Canvas 数据集上训练模型。有关训练模型的信息，请参阅[构建自定义的数值或分类预测模型](canvas-build-model-how-to.md#canvas-build-model-numeric-categorical)。

## 评估模型并做出预测
<a name="canvas-tutorial-evaluate-model-and-make-predictions"></a>

在训练完机器学习模型后，评估其性能至关重要，以确保它能满足您的要求，并在未见过的数据上表现良好。Amazon SageMaker Canvas 提供了一个用户友好的界面，用于评估模型的准确性、查看其预测并深入了解其优缺点。您可以利用这些见解，就其部署和潜在的改进领域做出明智的决策。

在部署模型之前，请使用以下步骤对其进行评估。

**评估模型**

1. 选择**我的模型**。

1. 选择您创建的模型。

1. 在**版本**下，选择与模型对应的版本。

您现在可以查看模型评测指标。

对模型进行评估后，就可以对新数据进行预测。我们正在使用创建的测试数据集。

要使用测试数据集进行预测，我们需要将其转换为 SageMaker Canvas 数据集。C SageMaker anvas 数据集采用模型可以解释的格式。

使用以下步骤从测试数据集创建 SageMaker Canvas 数据集。

**创建 SageMaker 画布数据集**

1. 在**数据集（测试）**数据集旁边，选择单选图标。

1. 选择**导出**。

1. 选择**SageMaker 画布数据集**。

1. 在**数据集名称**中，指定数据集的名称。

1. 选择**导出**。

使用以下步骤做出预测。它假设您仍在**分析**页面上。

**要对测试数据集做出预测**

1. 选择**预测**。

1. 选择**手动**。

1. 选择已导出的数据集。

1. 选择**生成预测**。

1.  SageMaker Canvas 完成预测生成后，选择数据集右侧的图标。

1. 选择**预览**以查看预测。

## 部署模型
<a name="canvas-tutorial-deploy-a-model"></a>

评估完模型后，就可以将其部署到端点。您可以向端点提交请求，以获得预测结果。

按照以下步骤部署模型。它假设您仍在**预测**页面上。

**要部署模型**

1. 选择**部署**。

1. 选择**创建部署**。

1. 选择**部署**。

## 清理
<a name="canvas-tutorial-cleaning-up"></a>

您已成功完成了教程。要避免产生额外费用，请删除您不使用的资源。

按照以下步骤删除您创建的端点。它假设您仍在**部署**页面上。

**删除端点**

1. 选择部署右侧的单选按钮。

1. 选择**删除部署**。

1. 选择**删除**。

删除部署后，删除您在 C SageMaker anvas 中创建的数据集。按照以下步骤删除数据集。

**要删除数据集**

1. 在左侧导航窗格中，选择**数据集**。

1. 选择您已分析的数据集和用于预测的合成数据集。

1. 选择**删除**。

为避免产生额外费用，您必须注销 SageMaker Canvas。有关更多信息，请参阅 [注销 Amazon SageMaker Canvas](canvas-log-out.md)。

# Amazon SageMaker Canvas 设置和权限管理（适用于 IT 管理员）
<a name="canvas-setting-up"></a>

以下页面介绍了 IT 管理员如何配置 Amazon SageMaker Canvas 并向其组织内的用户授予权限。您将学习如何设置存储配置、管理数据加密 VPCs、控制对特定功能（例如生成式 AI 基础模型）的访问权限、如何与 Amazon Redshift 等其他 AWS 服务集成等。通过执行这些步骤，您可以根据组织的特定要求为用户量身定制 C SageMaker anvas。

您也可以使用为用户设置 SageMaker Canvas AWS CloudFormation。有关更多信息，请参阅AWS《*AWS CloudFormation 用户指南》*中的[:: SageMaker AI:: App](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html)。

**Topics**
+ [授予用户上传本地文件的权限](canvas-set-up-local-upload.md)
+ [为用户设置 SageMaker 画布](setting-up-canvas-sso.md)
+ [配置 Amazon S3 存储](canvas-storage-configuration.md)
+ [授予跨账户 Amazon S3 存储的权限](canvas-permissions-cross-account.md)
+ [向用户授予在整个 ML 生命周期中使用大数据的权限](canvas-large-data-permissions.md)
+ [使用以下方式加密您的 SageMaker 画布数据 AWS KMS](canvas-kms.md)
+ [将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中](canvas-spaces-setup.md)
+ [授予用户构建自定义图像和文本预测模型的权限](canvas-set-up-cv-nlp.md)
+ [授予用户在 Canvas 中使用 Amazon Bedrock 和生成式人工智能功能的权限](canvas-fine-tuning-permissions.md)
+ [为用户更新 SageMaker 画布](canvas-update.md)
+ [请求提高限额](canvas-requesting-quota-increases.md)
+ [授予用户导入 Amazon Redshift 数据的权限](canvas-redshift-permissions.md)
+ [向您的用户授予向 Quick 发送预测的权限](canvas-quicksight-permissions.md)
+ [应用程序管理](canvas-manage-apps.md)
+ [在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas](canvas-vpc.md)
+ [使用设置与数据源的连接 OAuth](canvas-setting-up-oauth.md)

# 授予用户上传本地文件的权限
<a name="canvas-set-up-local-upload"></a>

如果您的用户要将文件从本地计算机上传到 C SageMaker anvas，则必须将 CORS（跨源资源共享）配置附加到他们正在使用的 Amazon S3 存储桶。设置或编辑 SageMaker AI 域或用户个人资料时，您可以指定自定义 Amazon S3 位置或默认位置，默认位置是 SageMaker AI 创建的 Amazon S3 存储桶，其名称使用以下模式：`s3://sagemaker-{Region}-{your-account-id}`。 SageMaker 每当用户上传文件时，Canvas 都会将他们的数据添加到存储桶中。

要授予用户将本地文件上传到存储桶的权限，您可以使用以下任一过程将 CORS 配置附加到该存储桶。在编辑域的设置时，您可以使用第一种方法，即选择允许 SageMaker AI 为您将 CORS 配置附加到存储桶。您也可以使用第一种方法编辑域内的用户配置文件。第二种方法是手动方法，您可以自己将 CORS 配置附加到存储桶。

## SageMaker AI 域名设置方法
<a name="canvas-set-up-local-upload-domain"></a>

要授予用户上传本地文件的权限，您可以编辑域设置中的 Canvas 应用程序配置。这会将跨源资源共享 (CORS) 配置附加到 Canvas 存储配置的 Amazon S3 存储桶，并向该域中的所有用户授予将 SageMaker 本地文件上传到 Canvas 的权限。默认情况下，设置新域时会打开权限选项，但您也可以根据需要打开或关闭此选项。

**注意**  
如果您在存储配置 Amazon S3 存储桶上已有 CORS 配置，打开本地文件上传选项后，新配置会覆盖现有配置。

以下过程说明如何通过在 SageMaker AI 控制台中编辑域设置来启用此选项。

1. 前往 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择 **域**。

1. 从域列表中选择您的域。

1. 在域详细信息页面上，选择**应用程序配置**选项卡。

1. 前往 **Canvas** 部分并选择**编辑**。

1. 打开**启用本地文件上传**开关。这将附加 CORS 配置并授予本地文件上传权限。

1. 选择**提交**。

指定域中的用户现在应该拥有本地文件上传权限。

您也可以按照前面的步骤，进入用户配置文件设置而不是整个域设置，为域中的特定用户配置文件授予权限。

## Amazon S3 存储桶方法
<a name="canvas-set-up-local-upload-s3"></a>

如果您想手动将 CORS 配置附加到 SageMaker AI Amazon S3 存储桶，请使用以下步骤。

1. 登录到 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择存储桶。如果您的域使用由 SageMaker 人工智能创建的默认存储桶，则存储桶的名称将使用以下模式：`s3://sagemaker-{Region}-{your-account-id}`。

1. 选择**权限**。

1. 导航到**跨源资源共享 (CORS)**。

1. 选择**编辑**。

1. 添加以下 CORS 策略：

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST"
           ],
           "AllowedOrigins": [
               "*"
           ],
           "ExposeHeaders": []
       }
   ]
   ```

1. 选择**保存更改**。

在上述过程中，CORS 策略必须在 `AllowedMethods` 下列出 `"POST"`。

完成该过程之后，您应该具有：
+ 分配给每个用户的 IAM 角色。
+ 您的每个用户都有亚马逊 SageMaker Studio Classic 运行时权限。 SageMaker Canvas 使用 Studio Classic 来运行用户的命令。
+ 如果用户正在从本地计算机上传文件，则其 Amazon S3 存储桶会附加 CORS 策略。

如果在更新 CORS 策略后，用户仍然无法上传本地文件，则浏览器可能缓存了上次上传尝试的 CORS 设置。如果用户遇到问题，请指示用户清除浏览器缓存，然后重试。

# 为用户设置 SageMaker 画布
<a name="setting-up-canvas-sso"></a>

要设置 Amazon SageMaker Canvas，请执行以下操作：
+ 创建亚马逊 A SageMaker I 域名。
+ 为域创建用户配置文件
+ 为用户设置 Okta 单点登录 (Okta SSO)。
+ 激活模型的链接共享。

使用 Okta 单点登录 (Okta SSO) 授予您的用户访问亚马逊 Canvas 的权限。 SageMaker SageMaker Canvas 支持 SAML 2.0 单点登录方法。以下各节将指导您完成设置 Okta SSO 的过程。

要设置域，请参阅 [使用 Amazon A SageMaker I 的自定义设置](onboard-custom.md) 并按照说明使用 IAM 身份验证设置域。您可以使用以下信息来帮助您完成本节中的过程：
+ 您可以忽略创建项目的步骤。
+ 您无需提供对其他 Amazon S3 存储桶的访问权限。您的用户可以使用我们在创建角色时提供的默认存储桶。
+ 要授予用户与数据科学家共享笔记本的权限，请打开**笔记本共享配置**。
+ 使用 Amazon SageMaker Studio 经典版 3.19.0 或更高版本。有关更新 Amazon SageMaker Studio Classic 的信息，请参阅[关闭并更新 Amazon SageMaker Studio 经典版](studio-tasks-update-studio.md)。

可使用以下过程设置 Okta。在以下所有过程中，您都要为 `IAM-role` 指定相同的 IAM 角色。

## 将 SageMaker Canvas 应用程序添加到 Okta
<a name="canvas-set-up-okta"></a>

为 Okta 设置登录方法。

1. 登录 Okta 管理员控制面板。

1. 选择**添加应用程序**。搜索 **AWS 账户联合身份验证**。

1. 选择**添加**。

1. 可选：将名称更改为 **Amazon SageMaker Canvas**。

1. 选择**下一步**。

1. 选择 **SAML 2.0** 作为**登录**方法。

1. 选择**身份提供商元数据**以打开元数据 XML 文件。将该文件保存在本地。

1. 选择**完成**。

## 在 IAM 中设置 ID 联合身份验证
<a name="set-up-id-federation-IAM"></a>

AWS Identity and Access Management (IAM) 是您用来获取 AWS 账户访问权限的 AWS 服务。您可以 AWS 通过 IAM 账户获得访问权限。

1. 登录 AWS 控制台。

1. 选择 **AWS Identity and Access Management (IAM)**。

1. 选择**身份提供商**。

1. 选择**创建提供商**。

1. 在**配置提供商**中，指定以下内容：
   + **提供商类型** – 从下拉列表中选择 **SAML**。
   + **提供商名称** – 指定 **Okta**。
   + **元数据文档** – 上传在[将 SageMaker Canvas 应用程序添加到 Okta](#canvas-set-up-okta)的步骤 7 中保存在本地的 XML 文档。

1. 在**身份提供商**下找到您的身份提供商。复制其**提供商 ARN** 值。

1. 对于**角色**，选择用于 Okta SSO 访问的 IAM 角色。

1. 在 IAM 角色的**信任关系**下，选择**编辑信任关系**。

1. 通过指定已复制的**提供商 ARN** 值来修改 IAM 信任关系策略，并添加以下策略：

------
#### [ JSON ]

****  

   ```
     {
     "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:AssumeRoleWithSAML",
             "sts:TagSession"
           ],
           "Condition": {
             "StringEquals": {
               "SAML:aud": "https://signin.aws.amazon.com/saml"
             }
           }
         },
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:SetSourceIdentity"
           ]
         }
       ]
     }
   ```

------

1. 对于**权限**，添加以下策略：

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AmazonSageMakerPresignedUrlPolicy",
              "Effect": "Allow",
              "Action": [
                   "sagemaker:CreatePresignedDomainUrl"
              ],
              "Resource": "*"
         }
     ]
   }
   ```

------

## 在 Okt SageMaker a 中配置画布
<a name="canvas-configure-okta"></a>

使用以下步骤在 Okta 中配置 Amazon C SageMaker anvas。

要将 Amazon SageMaker Canvas 配置为使用 Okta，请按照本节中的步骤操作。必须为每个**SageMakerStudioProfileName**字段指定唯一的用户名。例如，您可以将 `user.login` 用作值。如果用户名与 SageMaker Canvas 配置文件名称不同，请选择不同的唯一标识属性。例如，您可以使用员工的 ID 号作为配置文件名称。

有关可以为**属性**设置的值的示例，请参阅该过程后面的代码。

1. 在**目录**下，选择**组**。

1. 使用以下模式添加一个组：`sagemaker#canvas#IAM-role#AWS-account-id`。

1. 在 Okta 中，打开 **AWS 账户联合身份验证**应用程序集成配置。

1. 为 AWS 账户联合应用程序选择 “**登录**”。

1. 选择**编辑**并指定以下内容：
   + SAML 2.0
   + **默认中继状态** — https://*Region*.console.aws.amazon。 com/sagemaker/home？ region= *Region* \$1/ studio/canvas/open。*StudioId*你可以在控制台中找到 Studio Classic ID：[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. 选择**属性**。

1. 在**SageMakerStudioProfileName**字段中，为每个用户名指定唯一值。用户名必须与您在 AWS 控制台中创建的用户名一致。

   ```
   Attribute 1:
   Name: https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerStudioUserProfileName 
   Value: ${user.login}
   
   Attribute 2:
   Name: https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys
   Value: {"SageMakerStudioUserProfileName"}
   ```

1. 选择**环境类型**。选择**常规 AWS**。
   + 如果未列出您的环境类型，您可以在 **ACS URL** 字段中设置 ACS URL。如果您的环境类型已列出，则无需输入 ACS URL

1. 对于**身份提供商 ARN**，指定您在上述过程的步骤 6 中使用的 ARN。

1. 指定**会话持续时间**。

1. 选择**加入所有角色**。

1. 通过指定以下字段来打开**使用组映射**：
   + **应用程序筛选条件** – `okta`
   + **组筛选条件** – `^aws\#\S+\#(?IAM-role[\w\-]+)\#(?accountid\d+)$`
   + **角色值模式** – `arn:aws:iam::$accountid:saml-provider/Okta,arn:aws:iam::$accountid:role/IAM-role`

1. 选择**保存/下一步**。

1. 在**分配**下，将应用程序分配给您已创建的组。

## 在 IAM 中添加可选的访问控制策略
<a name="canvas-optional-access"></a>

在 IAM 中，可以对创建用户配置文件的管理员用户应用以下策略。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateSageMakerStudioUserProfilePolicy",
            "Effect": "Allow",
            "Action": "sagemaker:CreateUserProfile",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "studiouserid"
                    ]
                }
            }
        }
    ]
}
```

------

如果选择将上述策略添加到管理员用户，则必须使用[在 IAM 中设置 ID 联合身份验证](#set-up-id-federation-IAM)中的以下权限。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Sid": "AmazonSageMakerPresignedUrlPolicy",
           "Effect": "Allow",
           "Action": [
               "sagemaker:CreatePresignedDomainUrl"
           ],
           "Resource": "*",
           "Condition": {
                  "StringEquals": {
                      "sagemaker:ResourceTag/studiouserid": "${aws:PrincipalTag/SageMakerStudioUserProfileName}"
                 }
            }
      }
  ]
}
```

------

# 配置 Amazon S3 存储
<a name="canvas-storage-configuration"></a>

设置 SageMaker Canvas 应用程序时，模型项目、数据集和其他应用程序数据的默认存储位置是 Canvas 创建的 Amazon S3 存储桶。这个默认的 Amazon S3 存储桶遵循命名模式 `s3://sagemaker-{Region}-{your-account-id}`，并且与 Canvas 应用程序存在于同一个区域中。不过，您可以自定义存储位置，指定自己的 Amazon S3 存储桶来存储 Canvas 应用程序数据。出于以下任何原因，您可能希望使用自己的 Amazon S3 存储桶来存储应用程序数据：
+ 您的组织有 Amazon S3 存储桶的内部命名约定。
+ 您希望启用对模型构件或其他 Canvas 数据的跨账户存取。
+ 您希望遵守内部安全准则，例如限制用户使用特定的 Amazon S3 存储桶或模型构件。
+ 您希望独立于 AWS 控制台或 SageMaker Studio Classic，增强对 Canvas 生成的日志的可见性和访问权限。

通过指定您自己的 Amazon S3 存储桶，您可以加强对自己存储的控制并遵守组织的要求。

首先，您可以创建新的 SageMaker AI 域或用户配置文件，也可以更新现有的域或用户配置文件。请注意，用户配置文件设置优先于域级设置。例如，您可以使用域级别的默认存储桶配置，但也可以为单个用户指定自定义 Amazon S3 存储桶。为域或用户配置文件指定您自己的 Amazon S3 存储桶后，Canvas 会在输入的 Amazon S3 URI 下创建一个名为 `Canvas/<UserProfileName>` 的子文件夹，并将 Canvas 应用程序中生成的所有构件保存在该子文件夹下。

**重要**  
如果您更新了现有的域或用户配置文件，您将无法再访问以前位置的 Canvas 构件。您的文件仍位于原来的 Amazon S3 位置，但您无法再从 Canvas 中查看它们。新配置将在您下次登录应用程序时生效。

有关授予对 Amazon S3 存储桶的跨账户存取权限的更多信息，请参阅《Amazon S3 用户指南》**中的[授予跨账户对象权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example4.html#access-policies-walkthrough-example4-overview)。

以下几节将介绍如何为 Canvas 存储配置指定自定义 Amazon S3 存储桶。如果您要设置新的 SageMaker AI 域（或网域中的新用户），请使用[新的域设置方法](#canvas-storage-configuration-new-domain)或[新的用户配置文件设置方法](#canvas-storage-configuration-new-user)。如果您有一个现有的 Canvas 用户配置文件，并希望更新该配置文件的存储配置，请使用 [现有用户方法](#canvas-storage-configuration-existing-user)。

## 开始之前
<a name="canvas-storage-configuration-prereqs"></a>

如果您要指定来自其他 AWS 账户的 Amazon S3 URI，或者您使用的是使用加密的存储桶 AWS KMS，则必须先配置权限，然后才能继续操作。您必须授予 AWS IAM 权限，以确保 Canvas 可以从您的存储桶下载和上传对象。有关如何授予所需权限的详细信息，请参阅 [授予跨账户 Amazon S3 存储的权限](canvas-permissions-cross-account.md)。

此外，Canvas 存储位置中训练文件夹的最终 Amazon S3 URI 不得超过 128 个字符。最终的 Amazon S3 URI 由存储桶路径 `s3://<your-bucket-name>/<folder-name>/` 和 Canvas 添加到存储桶的路径组成：`Canvas/<user-profile-name>/Training`。例如，少于 128 个字符的可接受路径是 `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`。

## 新的域设置方法
<a name="canvas-storage-configuration-new-domain"></a>

如果要设置新的域和 Canvas 应用程序，请使用本节配置域级别的存储位置。此配置适用于您在域中创建的所有新用户，除非您为单个用户配置文件指定不同的存储位置。

为您的域进行**标准设置**时，请在**步骤 3：配置应用程序 - 可选**页面的 **Canvas** 部分按照以下步骤操作：

1. 对于 **Canvas 存储配置**，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的默认 SageMaker AI 存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成域的设置并选择**提交**。

现在，您的域已配置为使用您为 C SageMaker anvas 应用程序存储指定的 Amazon S3 位置。

## 新的用户配置文件设置方法
<a name="canvas-storage-configuration-new-user"></a>

如果要在域中设置新的用户配置文件，请使用本节配置用户的存储位置。此配置优先于域级配置。

在域中添加用户配置文件时，在**步骤 2：配置应用程序**中，在 **Canvas** 部分按照以下步骤操作：

1. 对于 **Canvas 存储配置**，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的 AI 创建的默认 SageMaker AI 创建的存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成用户配置文件的设置并选择**提交**。

现在，您的用户配置文件已配置为使用您为 C SageMaker anvas 应用程序存储指定的 Amazon S3 位置。

## 现有用户方法
<a name="canvas-storage-configuration-existing-user"></a>

如果您已有 Canvas 用户个人资料并且想要更新 Amazon S3 的存储位置，则可以编辑 SageMaker AI 域或用户配置文件设置。所做更改将在您下次登录 Canvas 应用程序时生效。

**注意**  
当您更改现有 Canvas 应用程序的存储位置时，您将无法从以前的存储位置访问 Canvas 构件。这些构件仍存储在原来的 Amazon S3 位置，但您无法再从 Canvas 中查看它们。

请记住，用户配置文件设置优先于常规域设置，因此您可以更新特定用户配置文件的 Amazon S3 存储位置，而无需更改所有用户的设置。您可以使用以下过程更新现有域或用户的存储配置。

------
#### [ Update an existing domain ]

使用以下过程更新域的存储配置。

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从域列表中选择您的域。

1. 在**域详细信息**页面上，选择**应用程序配置**选项卡。

1. 向下滚动到 **Canvas** 部分，然后选择 **编辑**。

1. 此时将打开**编辑 Canvas 设置**页面。在 **Canvas 存储配置**部分中，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的 AI 创建的默认 SageMaker AI 创建的存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成要对域进行的任何其他修改，然后选择**提交**以保存更改。

------
#### [ Update an existing user profile ]

使用以下过程更新用户配置文件的存储配置。

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从**域**列表中选择您的域。

1. 从域中的用户列表中，选择要编辑其配置的用户。

1. 在**用户详细信息**页面上，选择**编辑**。

1. 在导航窗格中，选择 **Canvas 设置**。

1. 对于 **Canvas 存储配置**，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的默认 SageMaker AI 存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成要对用户配置文件进行的任何其他修改，然后选择**提交**以保存更改。

------

Canvas 用户配置文件的存储位置现在应该已经更新。您下次登录 Canvas 应用程序时，就会收到存储位置已更新的通知。您将无法访问之前在 Canvas 中创建的任何构件。您仍然可以访问 Amazon S3 中的文件，但不能再在 Canvas 中查看它们。

# 授予跨账户 Amazon S3 存储的权限
<a name="canvas-permissions-cross-account"></a>

在设置 SageMaker AI 域或用户配置文件以供用户访问 SageMaker Canvas 时，您需要为 Canvas 项目指定 Amazon S3 存储位置。这些构件包括输入数据集、模型构件、预测和其他应用程序数据的保存副本。您可以使用 SageMaker AI 创建的默认 Amazon S3 存储桶，也可以自定义存储位置并指定自己的存储桶来存储 Canvas 应用程序数据。

您可以在另一个 AWS 账户中指定 Amazon S3 存储桶来存储您的 Canvas 数据，但首先必须授予跨账户权限，这样 Canvas 才能访问该存储桶。

以下几节介绍如何向 Canvas 授予通过另一个账户中 Amazon S3 存储桶上传和下载对象的权限。当您的存储桶使用加密时，还有其他权限 AWS KMS。

## 要求
<a name="canvas-permissions-cross-account-prereqs"></a>

在开始之前，请查看以下要求：
+ 跨账户 Amazon S3 存储桶（以及任何关联的 AWS KMS 密钥）必须与 Canvas 用户域或用户个人资料位于同一个 AWS 区域。
+ Canvas 存储位置中训练文件夹的最终 Amazon S3 URI 不得超过 128 个字符。最终的 S3 URI 由存储桶路径 `s3://<your-bucket-name>/<folder-name>/` 和 Canvas 添加到存储桶的路径组成：`Canvas/<user-profile-name>/Training`。例如，少于 128 个字符的可接受路径是 `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`。

## 跨账户 Amazon S3 存储桶的权限
<a name="canvas-permissions-cross-account-s3"></a>

下一节将概述授予必要权限以便 Canvas 可以在其他账户中访问您的 Amazon S3 存储桶的基本步骤。有关更详细的说明，请参阅《Amazon S3 用户指南》**中的[示例 2：存储桶拥有者授予跨账户存储桶权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html)。

1. 在账户 A 中创建 Amazon S3 存储桶 `bucketA`。

1. Canvas 用户存在于另一个名为账户 B 的账户中。在以下步骤中，我们将 Canvas 用户的 IAM 角色称为账户 B 中的 `roleB`。

   通过附加 IAM 策略，授予账户 B 中的 IAM 角色 `roleB` 通过账户 A 中的 `bucketA` 下载 (`GetObject`) 和上传 (`PutObject`) 对象的权限。

   要限制对特定存储桶文件夹的访问权限，请在资源元素中定义文件夹名称，例如 `arn:aws:s3:::<bucketA>/FolderName/*`。有关更多信息，请参阅[如何使用 IAM 策略授予特定用户对特定文件夹的访问权限？](https://aws.amazon.com/premiumsupport/knowledge-center/iam-s3-user-specific-folder/)
**注意**  
存储桶级别的操作（例如 `GetBucketCors` 和 `GetBucketLocation`）应添加在存储桶级别的资源上，而不是文件夹上。

   以下示例 IAM 策略授予 `roleB` 访问 `bucketA` 中对象所需的权限：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           }
       ]
   }
   ```

------

1. 在账户 A 中配置 `bucketA` 的存储桶策略，以向账户 B 中的 IAM 角色 `roleB` 授予权限。
**注意**  
管理员还必须关闭存储桶**权限**部分下的**阻止所有公开访问**。

   下面是 `bucketA` 的存储桶策略示例，用于向 `roleB` 授予必要的权限：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

配置上述权限后，账户 B 中的 Canvas 用户配置文件现在可以使用账户 A 中的 Amazon S3 存储桶作为 Canvas 构件的存储位置。

## 使用加密的跨账户 Amazon S3 存储桶的权限 AWS KMS
<a name="canvas-permissions-cross-account-s3-kms"></a>

以下过程向您展示如何授予必要的权限，以便 Canvas 可以在另一个使用加密的账户中访问您的 Amazon S3 存储桶 AWS KMS。相关步骤与上面的过程类似，但需要额外的权限。有关授予跨账户 KMS 密钥访问权限的更多信息，请参阅《AWS KMS 开发人员指南》**中的[允许其他账户中的用户使用 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。

1. 在账户 A 中创建 Amazon S3 存储桶 `bucketA` 和 Amazon S3 KMS 密钥 `s3KmsInAccountA`。

1. Canvas 用户存在于另一个名为账户 B 的账户中。在以下步骤中，我们将 Canvas 用户的 IAM 角色称为账户 B 中的 `roleB`。

   授予账户 B 中的 IAM 角色 `roleB` 执行以下操作的权限：
   + 通过账户 A 中的 `bucketA` 下载 (`GetObject`) 和上传 (`PutObject`) 对象。
   + 访问账户 A `s3KmsInAccountA` 中的 AWS KMS 密钥

   以下 IAM 策略示例授予 `roleB` 访问 `bucketA` 中对象和使用 KMS 密钥 `s3KmsInAccountA` 所需的权限：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           },
           {
               "Action": [
                   "kms:DescribeKey",
                   "kms:CreateGrant",
                   "kms:RetireGrant",
                   "kms:GenerateDataKey",
                   "kms:GenerateDataKeyWithoutPlainText",
                   "kms:Decrypt"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/s3KmsInAccountA"
           }
       ]
   }
   ```

------

1. 在账户 A 中配置 `bucketA` 的存储桶策略和 `s3KmsInAccountA` 的密钥策略，以向账户 B 中的 IAM 角色 `roleB` 授予权限。

   下面是 `bucketA` 的存储桶策略示例，用于向 `roleB` 授予必要的权限：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

   以下示例是您附加到账户 A 中的 KMS 密钥 `s3KmsInAccountA` 以授予 `roleB` 访问权限的密钥策略。有关如何创建和附加密钥策略声明的更多信息，请参阅《AWS KMS 开发人员指南》**中的[创建密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)。

   ```
   {
     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
       "AWS": [
         "arn:aws:iam::accountB:role/roleB"
       ]
     },
     "Action": [
           "kms:DescribeKey",
           "kms:CreateGrant",
           "kms:RetireGrant",
           "kms:GenerateDataKey",
           "kms:GenerateDataKeyWithoutPlainText",
           "kms:Decrypt"
     ],
     "Resource": "*"
   }
   ```

配置上述权限后，账户 B 中的 Canvas 用户配置文件现在可以使用账户 A 中加密的 Amazon S3 存储桶作为 Canvas 构件的存储位置。

# 向用户授予在整个 ML 生命周期中使用大数据的权限
<a name="canvas-large-data-permissions"></a>

Amazon SageMaker Canvas 用户使用大于 10 GB 的 CSV 格式的数据集或大于 2.5 GB 的 Parquet 格式的数据集需要特定的权限才能处理大型数据。这些权限对于在整个机器学习生命周期内管理大规模数据至关重要。当数据集超过规定的阈值或应用程序的本地内存容量时， SageMaker Canvas 会使用 Amazon EMR Serverless 进行高效处理。这适用于：
+ 数据导入：导入随机或分层采样的大型数据集。
+ 数据准备：将处理过的数据从 Canvas 中的 Data Wrangler 导出到 Amazon S3、新的 Canvas 数据集或 Canvas 模型。
+ 模型构建：在大型数据集上训练模型。
+ 推理：在大型数据集上进行预测。

默认情况下， SageMaker Canvas 使用 EMR Serverless 通过以下应用程序设置运行这些远程作业：
+ 预初始化容量：未配置
+ 应用程序限制：最大容量为 400 vCPUs，CPUs 每个账户最大并发容量 16 v，3000 GB 内存，20000 GB 磁盘
+ 元数据仓配置： AWS Glue Data Catalog
+ 应用程序日志： AWS 托管存储（已启用），使用 AWS 自有加密密钥
+ 应用程序行为：提交作业时自动启动，应用程序闲置 15 分钟后自动停止

要启用这些大型数据处理功能，用户需要必要的权限，这些权限可通过 Amazon A SageMaker I 域设置授予。授予这些权限的方法取决于您的 Amazon SageMaker AI 域最初的设置方式。我们将介绍三种主要场景：
+ 快速域设置
+ 自定义域名设置（使用公共互联网 access/without VPC）
+ 自定义域设置（含 VPC，不可访问公共互联网）

每种场景都需要特定的步骤，以确保用户拥有在 Canvas 的整个机器学习生命周期中利用 EMR Serverless 进行大型数据处理所需的权限。 SageMaker 

## 场景 1：快速域设置
<a name="canvas-large-data-quick-setup"></a>

如果您在创建 SageMaker AI 域时使用了**快速设置**选项，请按照以下步骤操作：

1. 导航至 Amazon SageMaker AI 域名设置：

   1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

   1. 在左侧导航窗格中，选择 **域**。

   1. 选择您的域。

   1. 选择**应用程序配置**选项卡。

   1. 滚动到 **Canvas** 部分，然后选择 **编辑**。

1. 启用大数据处理：

   1. 在**大数据处理配置**部分，打开**启用 EMR Serverless 以进行大数据处理**。

   1. 创建或选择 EMR Serverless 角色：

      1. 选择**创建并使用新的执行角色**来创建与 EMR Serverless 和附加的 [AWS 托管策略： AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) 策略具有信任关系的新 IAM 角色。此 IAM 角色由 Canvas 担任，用于创建 EMR Serverless 作业。

      1. 或者，如果您已经拥有一个与 EMR Serverless 具有信任关系的执行角色，请选择**使用现有执行角色**，然后从下拉列表中选择您的角色。
         + 现有角色的名称必须以 `AmazonSageMakerCanvasEMRSExecutionAccess-` 开头。
         + 您选择的角色还应至少拥有 [AWS 托管策略： AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) 策略中描述的权限。
         + 此角色应具有 EMR Serverless 信任策略，如下所示：

------
#### [ JSON ]

****  

           ```
           {
               "Version":"2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Sid": "EMRServerlessTrustPolicy",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "emr-serverless.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole",
                       "Condition": {
                           "StringEquals": {
                               "aws:SourceAccount": "111122223333"
                           }
                       }
                   }
               ]
           }
           ```

------

1. （可选）为自定义 Amazon S3 存储桶添加 Amazon S3 权限：

   1. Canvas 托管式策略会自动授予对名称中包含 `sagemaker` 或 `SageMaker AI` 的 Amazon S3 存储桶的读写权限。它还会为带有 `"SageMaker": "true"` 标签的自定义 Amazon S3 存储桶中的对象授予读取权限。

   1. 对于没有所需标签的自定义 Amazon S3 存储桶，请将以下策略添加到您的 EMR Serverless 角色中：

   1. 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:DeleteObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              }
          ]
      }
      ```

------

   1. 我们建议您将权限范围缩小到您希望 Canvas 访问的特定 Amazon S3 存储桶范围。

1. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

## 场景 2：自定义域名设置（使用公共互联网 access/without VPC）
<a name="canvas-large-data-custom-no-vpc"></a>

如果您创建或使用自定义域，请按照场景 1 中的步骤 1-3 操作，然后执行以下其他步骤：

1. 为你的 Amazon A SageMaker I 执行角色添加亚马逊 ECR `DescribeImages` 操作权限，因为 Canvas 利用公共 Amazon ECR Docker 镜像进行数据准备和模型训练：

   1. 登录 AWS 控制台并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. 选择**角色**。

   1. 在搜索框中，按名称搜索您的 SageMaker AI 执行角色并将其选中。

   1. 将以下策略添加到您的 SageMaker AI 执行角色。这可以通过将其添加为新的内联策略或将策略声明附加到现有策略中来实现。请注意，一个 IAM 角色最多可以附加 10 个策略。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
              "Sid": "ECRDescribeImagesOperation",
              "Effect": "Allow",
              "Action": "ecr:DescribeImages",
              "Resource": [
                  "arn:aws:ecr:*:*:repository/sagemaker-data-wrangler-emr-container",
                  "arn:aws:ecr:*:*:repository/ap-dataprep-emr"
              ]
          }]
      }
      ```

------

1. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

## 场景 3：自定义域设置（有 VPC，不可访问公共互联网）
<a name="canvas-large-data-custom-vpc"></a>

如果您创建或使用自定义域，请按照场景 2 的所有步骤操作，然后执行以下其他步骤：

1. 确保 VPC 子网是私有的：

   1. 确认子网的路由表中没有将 `0.0.0.0/0` 映射到互联网网关的条目。

1. 添加创建网络界面的权限：

   1. 当使用 SageMaker Canvas 和 EMR Serverless 进行大规模数据处理时，EMR Serverless 需要能够创建 Amazon EC2，以 ENIs 启用 EMR 无服务器应用程序与您的 VPC 资源之间的网络通信。

   1. 将以下策略添加到您的 Amazon SageMaker AI 执行角色中。这可以通过将其添加为新的内联策略或将策略声明附加到现有策略中来实现。请注意，一个 IAM 角色最多可以附加 10 个策略。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowEC2ENICreation",
                  "Effect": "Allow",
                  "Action": [
                      "ec2:CreateNetworkInterface"
                  ],
                  "Resource": [
                      "arn:aws:ec2:*:*:network-interface/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com"
                      }
                  }
              }
          ]
      }
      ```

------

1. （可选）将 ENI 的创建限制在特定子网内：

   1. 为了通过限制在您的 VPC 内创建某些子网 ENIs 来进一步保护您的设置，您可以根据特定条件标记每个子网。

   1. 使用以下 IAM 策略确保 EMR 无服务器应用程序只能在允许的子网和安全组 ENIs 内创建 Amazon EC2：

      ```
      {
          "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags",
          "Effect": "Allow", 
          "Action": [
              "ec2:CreateNetworkInterface"
          ],
          "Resource": [
              "arn:aws:ec2:*:*:subnet/*",
              "arn:aws:ec2:*:*:security-group/*"
          ],
          "Condition": {
              "StringEquals": {
                  "aws:ResourceTag/KEY": "VALUE"
              }
          }
      }
      ```

1. 按照页面[在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas](canvas-vpc.md)上的步骤为 Amazon S3 设置 VPC 终端节点，EMR Serverless 和 Canvas 使用的其他 AWS 服务都需要使用该终端节点。 SageMaker 

1. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

按照这些步骤操作，您可以在 SageMaker Canvas 中为各种域设置（包括具有自定义 VPC 配置的域设置）启用大数据处理。请记住在进行这些更改后重新启动 SageMaker Canvas 应用程序以应用新权限。

# 使用以下方式加密您的 SageMaker 画布数据 AWS KMS
<a name="canvas-kms"></a>

在使用 Amazon SageMaker Canvas 时，您可能有想要加密的数据，例如您的私人公司信息或客户数据。 SageMaker Canvas AWS Key Management Service 用于保护您的数据。 AWS KMS 是一项服务，您可以使用它来创建和管理用于加密数据的加密密钥。有关的更多信息 AWS KMS，请参阅[AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)《*AWS KMS 开发人员指南》*。

Amazon SageMaker Canvas 为您提供了多种加密数据的选项。 SageMaker Canvas 在应用程序中为诸如构建模型和生成见解之类的任务提供默认加密。您还可以选择对存储在 Amazon S3 中的数据进行加密，以保护静态数据。 SageMaker Canvas 支持导入加密数据集，因此您可以建立加密的工作流程。以下各节介绍如何在使用 C SageMaker anvas 构建模型时使用 AWS KMS 加密来保护数据。

## 在 C SageMaker anvas 中加密你的数据
<a name="canvas-kms-app-data"></a>

使用 SageMaker Canvas，您可以使用两个不同的 AWS KMS 加密密钥在 SageMaker Canvas 中加密数据，您可以在使用标准域[设置设置域名](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html)时指定这些密钥。这些密钥是在以下域设置步骤中指定的：
+ **步骤 3：配置应用程序 -（可选）**- 在配置 **Canvas 存储配置**部分时，您可以指定**加密密钥**。这是 SageMaker Canvas 用于长期存储模型对象和数据集的 KMS 密钥，这些对象和数据集存储在为您的域提供的 Amazon S3 存储桶中。如果使用 [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API 创建 Canvas 应用程序，请使用`S3KMSKeyId`字段指定此密钥。
+ **第 6 步：配置存储** — SageMaker Canvas 使用一个密钥来加密为您的 Canvas 应用程序创建的 Amazon SageMaker Studio 私有空间，其中包括临时应用程序存储、可视化和计算任务（例如构建模型）。您可以使用默认的 AWS 托管密钥，也可以指定自己的托管密钥。如果您指定 AWS KMS 密钥，则存储在`/home/sagemaker-user`目录中的数据将使用您的密钥进行加密。如果您未指定 AWS KMS 密钥，则使用 AWS 托管密钥对内部`/home/sagemaker-user`数据进行加密。无论您是否指定 AWS KMS 密钥，工作目录之外的所有数据都使用 AWS 托管密钥进行加密。要了解有关 Studio 空间和 Canvas 应用程序存储空间的更多信息，请参阅 [将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中](canvas-spaces-setup.md)。如果使用 [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API 创建 Canvas 应用程序，请使用`KmsKeyID`字段指定此密钥。

前面的密钥可以是相同的 KMS 密钥，也可以是不同的 KMS 密钥。

### 先决条件
<a name="canvas-kms-app-data-prereqs"></a>

要将您自己的 KMS 密钥用于上述任何一种目的，必须首先授予用户的 IAM 角色使用该密钥的权限。然后，您可以在设置域时指定 KMS 密钥。

向您的角色授予使用密钥的权限的最简单方法是修改密钥策略。使用以下过程授予角色必要的权限。

1. 打开 [AWS KMS 管理控制台](https://console.aws.amazon.com/kms/)。

1. 在**密钥策略**部分中，选择**切换到策略视图**。

1. 修改密钥的策略，向 IAM 角色授予 `kms:GenerateDataKey` 和 `kms:Decrypt` 操作权限。此外，如果您要修改用于加密 Studio 空间中 Canvas 应用程序存储空间的密钥政策，请执行 `kms:CreateGrant` 操作。您可以添加类似于以下内容的声明：

   ```
   {
     "Sid": "ExampleStmt",
     "Action": [
       "kms:CreateGrant", #this permission is only required for the key that encrypts your SageMaker Canvas application storage
       "kms:Decrypt",
       "kms:GenerateDataKey"
     ],
     "Effect": "Allow",
     "Principal": {
       "AWS": "<arn:aws:iam::111122223333:role/Jane>"
     },
     "Resource": "*"
   }
   ```

1. 选择**保存更改**。

比较不可取的方法是修改用户的 IAM 角色，以授予用户使用或管理 KMS 密钥的权限。如果使用这种方法，KMS 密钥策略还必须允许通过 IAM 进行访问管理。要了解如何通过用户的 IAM 角色授予 KMS 密钥权限，请参阅《AWS KMS 开发人员指南》**中的[在 IAM 策略声明中指定 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html)。

### 在 C SageMaker anvas 应用程序中加密您的数据
<a name="canvas-kms-app-data-app"></a>

您可以在 SageMaker Canvas 中使用的第一个 KMS 密钥用于加密存储在亚马逊弹性区块存储 (Amazon EBS) 卷和 SageMaker 人工智能在您的域中创建的亚马逊弹性文件系统中的应用程序数据。 SageMaker Canvas 在使用计算实例构建模型和生成见解时创建的底层应用程序和临时存储系统中使用此密钥对您的数据进行加密。 SageMaker 每当 Canvas 向其他 AWS 服务（例如 Autopilot）启动任务来处理您的数据时， SageMaker Canvas 就会将密钥传递给其他服务。

您可以通过在 `CreateDomain` API 调用中设置 `KmsKeyID` 或在管理控制台中进行标准域设置来指定此密钥。如果您未指定自己的 KMS 密钥， SageMaker AI 将使用默认 AWS 托管 KMS 密钥在 SageMaker Canvas 应用程序中加密您的数据。

要通过控制台指定您自己的 KMS 密钥以在 SageMaker Canvas 应用程序中使用，请先使用**标准**设置设置您的 SageMaker Amazon AI 域。使用以下过程完成域的**网络和存储部分**。

1. 填写所需的 Amazon VPC 设置。

1. 对于**加密密钥**，请选择**输入 KMS 密钥 ARN**。

1. 对于 **KMS ARN**，请输入 KMS 密钥的 ARN，其格式应类似于以下内容：`arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

### 加密保存在亚马逊 S3 中的 SageMaker 画布数据
<a name="canvas-kms-app-data-s3"></a>

您可以指定的第二个 KMS 密钥用于存储 SageMaker Canvas 存储到 Amazon S3 的数据。此 KMS 密钥是在 `CreateDomain` API 调用的`S3KMSKeyId`字段中指定的，或者在 SageMaker AI 控制台中进行标准域设置时指定的。 SageMaker Canvas 会将您的输入数据集、应用程序和模型数据以及输出数据的副本保存到您账户的该地区的默认 SageMaker AI S3 存储桶中。此存储桶的命名模式为`s3://sagemaker-{Region}-{your-account-id}`， SageMaker Canvas 将数据存储在该`Canvas/`文件夹中。





1. 打开**启用笔记本资源共享**。

1. 对于**可共享笔记本资源的 S3 位置**，请保留默认的 Amazon S3 路径。请注意， SageMaker Canvas 不使用此 Amazon S3 路径；此 Amazon S3 路径用于 Studio Classic 笔记本电脑。

1. 对于**加密密钥**，请选择**输入 KMS 密钥 ARN**。

1. 对于 **KMS ARN**，请输入 KMS 密钥的 ARN，其格式应类似于以下内容：`arn:aws:kms:us-east-1:111122223333:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

## 从 Amazon S3 导入加密数据集
<a name="canvas-kms-datasets"></a>

用户可能拥有使用 KMS 密钥加密的数据集。虽然上一节向您展示了如何加密 SageMaker Canvas 中的数据和存储到 Amazon S3 中的数据，但如果您想从 Amazon S3 中导入已使用加密的数据，则必须向用户的 IAM 角色授予额外权限 AWS KMS。

要向您的用户授予从 Amazon S3 将加密数据集导入 SageMaker Canvas 的权限，请将以下权限添加到您用于用户个人资料的 IAM 执行角色。

```
      "kms:Decrypt",
      "kms:GenerateDataKey"
```

要了解如何编辑角色的 IAM 权限，请参阅《IAM 用户指南》**中的[添加和删除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。有关 KMS 密钥的更多信息，请参阅《AWS KMS 开发人员指南》**中的 [AWS Key Management Service中的密钥策略](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html)。

## FAQs
<a name="canvas-kms-faqs"></a>

有关C SageMaker anvas AWS KMS 支持的常见问题解答，请参阅以下常见问题解答。

### 问：C SageMaker anvas 会保留我的 KMS 密钥吗？
<a name="canvas-kms-faqs-1"></a>

答：不是。 SageMaker Canvas 可能会暂时缓存您的密钥或将其传递给其他 AWS 服务（例如自动驾驶），但是 SageMaker Canvas 不会保留您的 KMS 密钥。

### 问：我在设置域时指定了一个 KMS 密钥。为什么我的数据集无法在 SageMaker Canvas 中导入？
<a name="canvas-kms-faqs-2"></a>

答：用户的 IAM 角色可能没有使用该 KMS 密钥的权限。要授予用户权限，请参阅 [先决条件](#canvas-kms-app-data-prereqs)。另一个可能的错误是，您的 Amazon S3 存储桶上的存储桶策略要求使用特定的 KMS 密钥，而该密钥与您在域中指定的 KMS 密钥不匹配。确保为 Amazon S3 存储桶和域指定相同的 KMS 密钥。

### 问：如何为我的账户找到该地区的默认 SageMaker AI Amazon S3 存储桶？
<a name="canvas-kms-faqs-3"></a>

答：默认 Amazon S3 存储桶遵循命名模式 `s3://sagemaker-{Region}-{your-account-id}`。此存储桶中的`Canvas/`文件夹用于存储您的 SageMaker Canvas 应用程序数据。

### 问：我能否更改用于存储 C SageMaker anvas 数据的默认 A SageMaker I Amazon S3 存储桶？
<a name="canvas-kms-faqs-4"></a>

答：不是， SageMaker AI 会为你创建这个存储桶。

### 问：C SageMaker anvas 在默认 SageMaker AI Amazon S3 存储桶中存储了什么？
<a name="canvas-kms-faqs-5"></a>

答： SageMaker Canvas 使用默认的 SageMaker AI Amazon S3 存储桶来存储您的输入数据集、模型工件和模型输出的副本。

### 问：在 C SageMaker anvas 中使用 KMS 密钥支持哪些用例？
<a name="canvas-kms-faqs-6"></a>

答：使用 SageMaker Canvas，您可以使用自己的加密密钥来构建回归、二进制和多类分类以及时间序列预测模型，以及对模型进行批量推理。 AWS KMS 

# 将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中
<a name="canvas-spaces-setup"></a>

您的 Amazon SageMaker Canvas 应用程序数据，例如您导入的数据集和模型构件，存储在 *Amazon SageMaker Studio 的私有空间*中。此空间包括应用程序数据的存储卷（每个用户配置文件 100 GB 的存储空间）、空间类型（在本例中为 Canvas 应用程序）和应用程序容器的映像。当你设置 Canvas 并首次启动应用程序时， SageMaker AI 会创建一个默认的私有空间，分配给你的用户个人资料并存储你的 Canvas 数据。您无需进行任何其他配置即可设置空间，因为 SageMaker AI 会自动代表您创建空间。但是，如果您不想使用默认空间，则可以选择指定自己创建的空间。如果您想隔离数据，这将非常有用。下一页将向您介绍如何创建和配置自己的 Studio 空间，用于存储 Canvas 应用程序数据。

**注意**  
您只能为新的 Canvas 应用程序配置自定义 Studio 空间。您不能修改现有 Canvas 应用程序的空间配置。

## 开始前的准备工作
<a name="canvas-spaces-setup-prereqs"></a>

要创建和使用 C SageMaker anvas 应用程序，您的 SageMaker Amazon AI 域或用户个人资料必须至少有 100 GB 的存储空间。

如果您通过 SageMaker AI 控制台创建了域，则默认情况下会配置足够的存储空间，您无需采取任何其他操作。如果您使用或创建了域名或用户个人资料 [ CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) APIs，请确保将该`MaximumEbsVolumeSizeInGb`值设置为 100 GB 或更大。[CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)要设置更大的存储值，您可以创建新的域名或用户配置文件，也可以使用或更新现有的域名或用户配置文件[ UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html) APIs。[UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)

## 创建新空间
<a name="canvas-spaces-setup-new-space"></a>

首先，创建配置为存储 Canvas 应用程序数据的新的 Studio 空间。这是您在下一步中创建新的 Canvas 应用程序时指定的空间。

要创建空间，您可以使用 适用于 Python (Boto3) 的 AWS SDK 或 AWS CLI。

------
#### [ SDK for Python (Boto3) ]

以下示例向您展示如何使用该 适用于 Python (Boto3) 的 AWS SDK `create_space`方法创建可用于 Canvas 应用程序的空间。确保指定以下参数：
+ `DomainId`：为您的 SageMaker AI 域指定 ID。要查找您的 ID，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域名” 部分找到您的**域名**。
+ `SpaceName`：指定新空间的名称。
+ `EbsVolumeSizeinGb`：指定空间的存储卷大小（单位：GB）。最小值为 `5`，最大值为 `16384`。
+ `SharingType`：将此字段指定为 `Private`。有关更多信息，请参阅 [亚马逊 SageMaker Studio 空间](studio-updated-spaces.md)。
+ `OwnerUserProfileName`：指定用户配置文件名称。要查找与域名关联的用户个人资料名称，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域**名” 部分找到您的域名**。在域的设置中，您可以查看用户配置文件。
+ `AppType`：将此字段指定为 `Canvas`。

```
response = client.create_space(
    DomainId='<your-domain-id>', 
    SpaceName='<your-new-space-name>',
    SpaceSettings={
        'AppType': 'Canvas',
        'SpaceStorageSettings': {
            'EbsStorageSettings': {
                'EbsVolumeSizeInGb': <storage-volume-size>
            }
        },
    },
    OwnershipSettings={
        'OwnerUserProfileName': '<your-user-profile>'
    },
    SpaceSharingSettings={
        'SharingType': 'Private'
    }  
)
```

------
#### [ AWS CLI ]

以下示例向您展示如何使用该 AWS CLI `create-space`方法创建可用于 Canvas 应用程序的空间。确保指定以下参数：
+ `domain-id`：指定域的 ID。要查找您的 ID，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域名” 部分找到您的**域名**。
+ `space-name`：指定新空间的名称。
+ `EbsVolumeSizeinGb`：指定空间的存储卷大小（单位：GB）。最小值为 `5`，最大值为 `16384`。
+ `SharingType`：将此字段指定为 `Private`。有关更多信息，请参阅 [亚马逊 SageMaker Studio 空间](studio-updated-spaces.md)。
+ `OwnerUserProfileName`：指定用户配置文件名称。要查找与域名关联的用户个人资料名称，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域**名” 部分找到您的域名**。在域的设置中，您可以查看用户配置文件。
+ `AppType`：将此字段指定为 `Canvas`。

```
  
create-space
--domain-id <your-domain-id>
--space-name <your-new-space-name>  
--space-settings '{
        "AppType": "Canvas", 
        "SpaceStorageSettings": {
            "EbsStorageSettings": {"EbsVolumeSizeInGb": <storage-volume-size>}
        },
     }'
--ownership-settings '{"OwnerUserProfileName": "<your-user-profile>"}'
--space-sharing-settings '{"SharingType": "Private"}'
```

------

现在，您应该拥有一个空间。跟踪空间名称，以备下一步使用。

## 创建新的 Canvas 应用程序。
<a name="canvas-spaces-setup-new-app"></a>

创建空间后，创建一个新的 Canvas 应用程序，指定此空间为其存储位置。

要创建新的 Canvas 应用程序，您可以使用 适用于 Python (Boto3) 的 AWS SDK 或 AWS CLI。

**重要**  
必须使用 适用于 Python (Boto3) 的 AWS SDK 或 AWS CLI 来创建 Canvas 应用程序。不支持在通过 SageMaker AI 控制台创建 Canvas 应用程序时指定自定义空间。

------
#### [ SDK for Python (Boto3) ]

以下示例向您展示如何使用该 适用于 Python (Boto3) 的 AWS SDK `create_app`方法创建新的 Canvas 应用程序。确保指定以下参数：
+ `DomainId`：为您的 SageMaker AI 域指定 ID。
+ `SpaceName`：指定上一步中创建的空间名称。
+ `AppType`：将此字段指定为 `Canvas`。
+ `AppName`：指定 `default` 为应用程序名称。

```
response = client.create_app(  
    DomainId='<your-domain-id>',
    SpaceName='<your-space-name>',
    AppType='Canvas', 
    AppName='default'  
)
```

------
#### [ AWS CLI ]

以下示例向您展示如何使用该 AWS CLI `create-app`方法创建新的 Canvas 应用程序。确保指定以下参数：
+ `DomainId`：为您的 SageMaker AI 域指定 ID。
+ `SpaceName`：指定上一步中创建的空间名称。
+ `AppType`：将此字段指定为 `Canvas`。
+ `AppName`：指定 `default` 为应用程序名称。

```
create-app
--domain-id <your-domain-id>
--space-name <your-space-name>
--app-type Canvas
--app-name default
```

------

现在您应该拥有了一个新的 Canvas 应用程序，它使用自定义 Studio 空间作为应用程序数据的存储位置。

**重要**  
当您删除 Canvas 应用程序（或注销）并重新创建应用程序时，必须在 `SpaceName` 字段中填写您的空间，以确保 Canvas 使用您的空间。

此空间将附加到您在空间配置中指定的用户配置文件。您可以在不删除空间的情况下删除 Canvas 应用程序，存储在空间中的数据仍会保留。只有当您删除用户配置文件或直接删除空间时，存储在空间中的数据才会删除。

# 授予用户构建自定义图像和文本预测模型的权限
<a name="canvas-set-up-cv-nlp"></a>

**重要**  
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。之所以需要为资源添加标签的权限，是因为 Studio 和 Studio Classic 会自动为创建的任何资源添加标签。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记，则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息，请参阅 [提供标记 A SageMaker I 资源的权限](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
[AWS 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。

在 Amazon SageMaker Canvas 中，您可以构建[自定义模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)以满足您的特定业务需求。其中两种自定义模型类型是单标签图像预测和多元文本预测。构建这些模型类型的权限包含在名为的 AWS Identity and Access Management (IAM) 策略中 [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)，如果您[启用 Canvas 基本权限](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites)，A SageMaker I 会默认将该策略附加到您的用户的 IAM 执行角色。如果您使用的是自定义 IAM 配置，则必须为用户的 IAM 执行角色明确添加权限，以便他们可以构建自定义映像和文本预测模型类型。要授予构建图像和文本预测模型所需的权限，请阅读以下部分，了解如何为您的角色附加最低权限策略。

要在用户的 IAM 角色中添加权限，请执行以下操作：

1. 转到 [IAM 控制台](https://console.aws.amazon.com/iamv2)。

1. 选择**角色**。

1. 在搜索框中，按名称搜索用户的 IAM 角色并将其选中。

1. 在用户角色页面的**权限**下，选择**添加权限**。

1. 选择**创建内联策略**。

1. 选择 JSON 选项卡，然后将以下最低权限策略粘贴到编辑器中。

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreateAutoMLJobV2",
                   "sagemaker:DescribeAutoMLJobV2"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 选择**查看策略**。

1. 输入策略的**名称**。

1. 选择**创建策略**。

有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[托管策略和内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。

# 授予用户在 Canvas 中使用 Amazon Bedrock 和生成式人工智能功能的权限
<a name="canvas-fine-tuning-permissions"></a>

Amazon C SageMaker anvas 中的生成式人工智能功能由 Amazon Bedrock 基础模型提供支持，这些模型是大型语言模型 (LLMs)，能够理解和生成类似人类的文本。本页介绍如何授予 C SageMaker anvas 中以下功能所需的权限：
+ [与亚马逊 Bedrock 模型聊天和比较：通过 C](canvas-fm-chat.md) anvas 访问亚马逊 Bedrock 模特并开始对话聊天。 SageMaker 
+ [使用 Data Wrangler 中的聊天功能进行数据准备](canvas-chat-for-data-prep.md)：使用自然语言浏览、可视化和转换数据。此功能由 Anthropic Claude 2 提供支持。
+ [微调 Amazon Bedrock 基础模型](canvas-fm-chat-fine-tune.md)：根据您自己的数据微调 Amazon Bedrock 基础模型，以接收自定义的响应。

要使用这些功能，您必须先申请访问您要使用的特定 Amazon Bedrock 模型。然后，将必要的 AWS IAM 权限以及与 Amazon Bedrock 的信任关系添加到用户的执行角色中。要授予角色权限，您可以选择以下方法之一：
+ 创建新的 Amazon SageMaker AI 域名或用户个人资料并开启亚马逊 Bedrock 权限。有关更多信息，请参阅 [开始使用 Amazon C SageMaker anvas](canvas-getting-started.md)。
+ 编辑现有 Amazon A SageMaker I 域名或用户个人资料的设置。
+ 手动向域或用户的 IAM 角色添加权限和信任关系。

## 步骤 1：添加 Amazon Bedrock 模型访问权限
<a name="canvas-bedrock-access"></a>

默认情况下，不会授予访问亚马逊 Bedrock 模型的权限，因此您必须前往 Amazon Bedrock 控制台为您的 AWS 账户申请访问模型。

要了解如何请求访问特定的 Amazon Bedrock 模型，请按照**《Amazon Bedrock 用户指南》**中[管理对 Amazon Bedrock 基础模型的访问权限](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)页面上的*添加模型访问权限*的步骤进行操作。

## 步骤 2：向用户的 IAM 角色授予权限
<a name="canvas-bedrock-iam-permissions"></a>

在设置您的 Amazon A SageMaker I 域或用户个人资料时，用户的 IAM 执行角色必须附加[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)策略以及与 Amazon Bedrock 的信任关系，以便您的用户可以从 SageMaker Canvas 访问亚马逊 Bedrock 模型。

您可以修改域设置，然后创建新的执行角色（ SageMaker AI 会为您附加所需的权限），也可以指定现有角色。

或者，您也可以通过 IAM 控制台手动修改现有的 IAM 角色的权限。

以下部分中将介绍这两种方法。

### 通过域设置授予权限
<a name="canvas-fine-tuning-permissions-console"></a>

您可以编辑您的域名或用户个人资料设置以打开 C **anvas Ready-to-use 模型配置**设置并指定 Amazon Bedrock 角色。

要编辑域设置并向域中的 Canvas 用户授予对 Amazon Bedrock 模型的访问权限，请执行以下操作：

1. 前往 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择 **域**。

1. 从域列表中选择您的域。

1. 选择**应用程序配置**选项卡。

1. 在 **Canvas** 部分中，选择**编辑**。

1. 此时将打开**编辑 Canvas 设置**页面。对于 **Canvas Ready-to-use 模型配置**部分，请执行以下操作：

   1. 打开 “**启用画布 Ready-to-use模型” 选项**。

   1. 对于 **Amazon Bedrock 角色**，选择**创建并使用新的执行角色**来创建新的 IAM 执行角色，该角色附有[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)策略并与 Amazon Bedrock 建立信任关系。当您访问 Amazon Bedrock 模型、使用数据准备聊天功能或在 Canvas 中微调 Amazon Bedrock 模型时，此 IAM 角色将由 Amazon Bedrock 担任。如果您已经有一个具有信任关系的执行角色，请选择**使用现有的执行角色**，然后从下拉列表中选择您的角色。

1. 选择 **Submit (提交)** 可保存您的更改。

现在，您的用户应该拥有访问 Amazon Bedrock 模型、使用数据准备聊天功能以及在 Canvas 中微调 Amazon Bedrock 模型所需的权限。

您可以使用上述编辑单个用户设置的相同步骤，但要从域页面进入单个用户的配置文件，然后编辑用户设置。授予单个用户的权限不适用于域中的其他用户，而通过域设置授予的权限则适用于域中的所有用户配置文件。

有关编辑域设置的更多信息，请参阅[查看和编辑域](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view-edit.html)。

### 通过 IAM 手动授予权限
<a name="canvas-fine-tuning-permissions-manual"></a>

您可以通过为域或用户配置文件指定的 IAM 角色添加权限，手动授予用户在 Canvas 中访问和微调 Amazon Bedrock 模型的权限。IAM 角色必须附加[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)政策并与 Amazon Bedrock 建立信任关系。

下一节将向您介绍如何将策略附加到 IAM 角色以及如何与 Amazon Bedrock 建立信任关系。

首先，请注意您的域或用户配置文件的 IAM 角色。请注意，授予单个用户的权限不适用于域中的其他用户，而通过域授予的权限则适用于域中的所有用户配置文件。

要配置 IAM 角色并授予在 Canvas 中微调基础模型的权限，请执行以下操作：

1. 前往 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧导航窗格中，选择 **角色**。

1. 从角色列表中按名称搜索用户的 IAM 角色并将其选中。

1. 在**权限**选项卡中，请选择**添加权限**。从下拉菜单中选择**附加策略**。

1. 搜索 `AmazonSageMakerCanvasBedrockAccess` 策略并将其选中。

1. 选择**添加权限**。

1. 回到 IAM 角色页面，选择**信任关系**选项卡。

1. 选择**编辑信任策略**。

1. 在策略编辑器中，找到右侧面板中的**添加主体选项**，然后选择**添加**。

1. 在对话框中的**主体类型**中，选择 **AWS 服务**。

1. 在 **ARN** 中，输入 **bedrock.amazonaws.com**。

1. 选择**添加主体**。

1. 选择**更新策略**。

现在，您应该拥有一个附有[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)策略的 IAM 角色并与 Amazon Bedrock 建立信任关系。有关 AWS 托管策略的信息，请参阅 *IAM 用户指南*中的[托管策略和内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。

# 为用户更新 SageMaker 画布
<a name="canvas-update"></a>

您可以以用户或 IT 管理员的身份更新到最新版本的 Amazon SageMaker Canvas。您可以一次为单个用户更新 Amazon SageMaker Canvas。

要更新 Amazon SageMaker Canvas 应用程序，您必须删除之前的版本。

**重要**  
删除先前版本的 Amazon SageMaker Canvas 不会删除用户创建的数据或模型。

使用以下步骤登录 AWS、打开亚马逊 A SageMaker I 域并更新 Amazon SageMaker Canvas。用户重新登录后即可开始使用 SageMaker Canvas 应用程序。

1. 在亚马逊 [ SageMaker Runtime 上登录亚马逊 A SageMaker ](https://console.aws.amazon.com/sagemaker/) I 控制台。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 在**域**页面上，选择您的域。

1. 从**用户配置文件**列表中，选择一个用户配置文件。

1. 在**应用程序**列表中，找到 Canvas 应用程序（**应用程序类型**显示为 **Canvas**），然后选择**删除应用程序**。

1. 完成对话框并选择**确认操作**。

下图显示了用户配置文件页面，并突出显示了前面步骤中的**删除应用程序**操作。

![\[突出显示了“删除应用程序”操作的用户配置文件页面的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-update-app-1.png)


# 请求提高限额
<a name="canvas-requesting-quota-increases"></a>

您的用户使用的 AWS 资源量可能会超过其配额中指定的数量。如果您的用户资源有限，并且在 SageMaker Canvas 中遇到错误，您可以申请增加他们的配额。

有关 SageMaker AI 配额以及如何申请增加配额的更多详细信息，请参阅[配额](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html#regions-quotas-quotas)。

Amazon SageMaker Canvas 使用以下服务来处理您的用户的请求：
+ Amazon SageMaker 自动驾驶仪
+ 亚马逊 SageMaker Studio 经典版域名

有关 C SageMaker anvas 操作的可用配额列表，请参阅 [Amazon A SageMaker I 终端节点和配额](https://docs.aws.amazon.com//general/latest/gr/sagemaker.html)。

## 请求增加用于构建自定义模型的实例
<a name="canvas-requesting-quota-increases-instances"></a>

在构建自定义模型时，如果您在构建后分析过程中遇到错误，提示您增加 `ml.m5.2xlarge` 实例限额，请使用以下信息来解决问题。

您必须将 AWS 账户中该`ml.m5.2xlarge`实例类型的 SageMaker AI Hosting 终端节点配额提高到非零值。构建模型后， SageMaker Canvas 将模型托管在 A SageMaker I Hosting 端点上，并使用该端点生成构建后分析。如果您不将`ml.m5.2xlarge`实例的默认账户配额增加到 0， SageMaker Canvas 将无法完成此步骤，并在构建后分析期间生成错误。

有关增加配额的步骤，请参阅*《服务配额用户指南》*中的[请求增加配额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

# 授予用户导入 Amazon Redshift 数据的权限
<a name="canvas-redshift-permissions"></a>

您的用户可能有存储在 Amazon Redshift 中的数据集。在用户可以将数据从 Amazon Redshift 导入 SageMaker Canvas 之前，您必须将`AmazonRedshiftFullAccess`托管策略添加到用于用户个人资料的 IAM 执行角色中，并将 Amazon Redshift 作为服务委托人添加到该角色的信任策略中。您还必须将 IAM 执行角色与 Amazon Redshift 集群关联。完成以下几节中的步骤，向您的用户授予导入 Amazon Redshift 数据所需的权限。

## 在 IAM 角色中添加 Amazon Redshift 权限
<a name="canvas-redshift-permissions-iam-role"></a>

您必须向用户配置文件中指定的 IAM 角色授予 Amazon Redshift 权限。

要将 `AmazonRedshiftFullAccess` 策略添加到用户的 IAM 角色，请执行以下操作。

1. 登录 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 选择**角色**。

1. 在搜索框中，按名称搜索用户的 IAM 角色并将其选中。

1. 在用户角色页面的**权限**下，选择**添加权限**。

1. 选择**附加策略**。

1. 搜索 `AmazonRedshiftFullAccess` 托管策略并将其选中。

1. 选择**附加策略**将策略附加到该角色。

附加策略后，该角色的**权限**部分现在应包括 `AmazonRedshiftFullAccess`。

要将 Amazon Redshift 作为服务主体添加到 IAM 角色，请执行以下操作。

1. 在 IAM 角色的同一页面上，在**信任关系**下，选择**编辑信任策略**。

1. 在**编辑信任策略**编辑器中，更新信任策略以将 Amazon Redshift 添加为服务主体。允许 Amazon Redshift 代表您访问其他 AWS 服务的 IAM 角色具有如下信任关系：

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "redshift.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 编辑信任策略后，选择**更新策略**。

现在，你应该拥有一个`AmazonRedshiftFullAccess`附有策略的 IAM 角色，并与亚马逊 Redshift 建立了信任关系，允许用户将亚马逊 Redshift 数据导入 Canvas。 SageMaker 有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[托管策略和内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。

## 将 IAM 角色与 Amazon Redshift 集群关联
<a name="canvas-redshift-permissions-cluster"></a>

在 Amazon Redshift 集群的设置中，您必须关联在上一节中授予权限的 IAM 角色。

要将 IAM 角色与集群关联，请执行以下操作。

1. 登录亚马逊 Redshift 控制台，网址为。[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. 在导航菜单上，选择**集群**，然后选择要更新的集群的名称。

1. 在**操作**下拉菜单中，选择**管理 IAM 角色**。此时将出现**集群权限**页面。

1. 对于**可用的 IAM 角色**，输入 ARN 或 IAM 角色的名称，或从列表中选择 IAM 角色。

1. 选择**关联 IAM 角色**以将该角色添加到**关联的 IAM 角色**列表中。

1. 选择**保存更改**将 IAM 角色与集群关联。

Amazon Redshift 会修改集群以完成更改，您之前授予 Amazon Redshift 权限的 IAM 角色现在与您的 Amazon Redshift 集群相关联。您的用户现在拥有将亚马逊 Redshift 数据导入 Canvas 所需的权限。 SageMaker 

# 向您的用户授予向 Quick 发送预测的权限
<a name="canvas-quicksight-permissions"></a>

您必须向 SageMaker Canvas 用户授予向 Quick 发送批量预测的权限。在 Quick 中，用户可以使用数据集创建分析和报告，并准备仪表板以共享结果。有关将预测发送到进行分析 QuickSight 的更多信息，请参阅[将预测发送到 Quick](canvas-send-predictions.md)。

要授予与用户共享批量预测所需的权限 QuickSight，您必须向用于用户个人资料的 AWS Identity and Access Management (IAM) 执行角色添加权限策略。下一节将介绍如何为角色附加最低权限策略。

**在 IAM 角色中添加权限策略**

**要添加权限策略，请执行以下步骤：**

1. 登录 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 选择**角色**。

1. 在搜索框中，按名称搜索用户的 IAM 角色并将其选中。

1. 在用户角色页面的**权限**下，选择**添加权限**。

1. 选择**创建内联策略**。

1. 选择 JSON 选项卡，然后将以下最低权限策略粘贴到编辑器中。将占位符 `<your-account-number>` 替换为您自己的 AWS 账号。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "quicksight:CreateDataSet",
                   "quicksight:ListUsers",
                   "quicksight:ListNamespaces",
                   "quicksight:CreateDataSource",
                   "quicksight:PassDataSet",
                   "quicksight:PassDataSource"
               ],
               "Resource": [
                   "arn:aws:quicksight:*:111122223333:datasource/*",
                   "arn:aws:quicksight:*:111122223333:user/*",
                   "arn:aws:quicksight:*:111122223333:namespace/*",
                   "arn:aws:quicksight:*:111122223333:dataset/*"
               ]
           }
       ]
   }
   ```

------

1. 选择**查看策略**。

1. 输入策略的**名称**。

1. 选择**创建策略**。

现在，您的执行角色应该有一个客户托管的 IAM 策略，该策略授予您的 Canvas 用户向中的 QuickSight用户发送批量预测所需的权限。

# 应用程序管理
<a name="canvas-manage-apps"></a>

以下各节介绍如何管理 SageMaker Canvas 应用程序。您可以从 SageMaker AI 控制台的 “**域**” 部分查看、删除或重新启动应用程序。

**Topics**
+ [检查处于活动状态的应用程序](canvas-manage-apps-active.md)
+ [删除应用程序](canvas-manage-apps-delete.md)
+ [重新启动应用程序](canvas-manage-apps-relaunch.md)

# 检查处于活动状态的应用程序
<a name="canvas-manage-apps-active"></a>

要检查您是否有任何正在运行的 SageMaker Canvas 应用程序，请按以下步骤操作。

1. 打开 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**控制面板**。

1. 在 **LCNC** 部分中，有一行 Canvas 告诉你有多少活跃的应用程序正在运行。选择数字以查看应用程序列表。

**状态**列显示应用程序的状态，例如 **Ready**、**Pending** 或 **Deleted**。如果应用程序**已准备就绪**，则您的 SageMaker Canvas 工作空间实例处于活动状态。您可以从控制台中删除应用程序，也可以重新打开 Canvas 并注销。

# 删除应用程序
<a name="canvas-manage-apps-delete"></a>

如果要终止 SageMaker Canvas 工作空间实例，可以从 SageMaker Canvas 应用程序注销，也可以从 SageMaker AI 控制台中删除应用程序。从您开始使用 Canvas 到停止使用 SageMaker Canvas，*工作空间实例*专供您使用。删除应用程序只会终止工作区实例并停止工作区实例收费。模型和数据集不会受到影响，但重新启动应用程序时，快速构建任务会自动重新启动。

要通过 AWS 控制台删除 Canvas 应用程序，请先关闭打开 Canvas 应用程序的浏览器选项卡。然后，使用以下步骤删除您的 SageMaker Canvas 应用程序。

1. 打开 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 在**域**页面上，选择您的域。

1. 在**域名详细信息**页面上，选择**资源**。

1. 在 “**应用程序**” 下，在 “应用程序**类型” 列中找到显示 **Canvas** 的应用程序**。

1. 选中 “画布” 应用程序旁边的复选框，然后选择 “**停止**”。

现在，您已成功停止应用程序并终止了工作区实例。

您也可以通过从 C SageMaker anvas 应用程序中[注销来](canvas-log-out.md)终止工作区实例。

# 重新启动应用程序
<a name="canvas-manage-apps-relaunch"></a>

如果您删除或注销 SageMaker Canvas 应用程序并想要重新启动该应用程序，请按以下步骤操作。

1. 导航到 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在导航窗格中，选择 **Canvas**。

1. 在 SageMaker Canvas 登录页面的 “**入门**” 框中，从下拉列表中选择您的用户个人资料。

1. 选择**打开 Canvas** 以打开该应用程序。

SageMaker Canvas 开始启动应用程序。

如果您在前面的过程中遇到任何问题，也可以使用下面的辅助过程。

1. 打开 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 在**域**页面上，选择您的域。

1. 在**域名详细信息**页面的**用户配置文件**下，选择要查看的 SageMaker Canvas 应用程序的用户配置文件名称。

1. 选择**启动**，然后从下拉列表中选择 **Canvas**。

SageMaker Canvas 开始启动应用程序。

# 在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas
<a name="canvas-vpc"></a>

Amazon SageMaker Canvas 应用程序在 AWS 托管的亚马逊虚拟私有云 (VPC) 的容器中运行。如果您想进一步控制对资源的访问或在没有公共互联网访问的情况下运行 SageMaker Canvas，则可以配置您的 Amazon A SageMaker I 域和 VPC 设置。在您自己的 VPC 中，您可以配置安全组（控制 Amazon EC2 实例入站和出站流量的虚拟防火墙）和子网（VPC 中的 IP 地址范围）等设置。要了解更多信息 VPCs，请参阅 [Amazon VPC 的工作原理](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)。

当 SageMaker Canvas 应用程序在 AWS 托管 VPC 中运行时，它可以使用互联网连接或通过在客户管理的 VPC 中创建的 VPC 终端节点（无需公共互联网访问）与其他 AWS 服务进行交互。 SageMaker Canvas 应用程序可以通过 Studio Classic 创建的网络接口访问这些 VPC 终端节点，该接口提供与客户管理的 VPC 的连接。 SageMaker Canvas 应用程序的默认行为是访问互联网。使用互联网连接时，前述作业的容器会通过互联网访问 AWS 资源，例如存储训练数据和模型构件的 Amazon S3 存储桶。

但是，如果您有安全要求来控制对数据和任务容器的访问，我们建议您配置 SageMaker Canvas 和您的 VPC，以便无法通过 Internet 访问您的数据和容器。 SageMaker AI 使用您在为 C SageMaker anvas 设置域时指定的 VPC 配置设置。

如果您想在不访问互联网的情况下配置 SageMaker Canvas 应用程序，则必须在加入 [Amazon A SageMaker I 域](gs-studio-onboard.md)时配置 VPC 设置，设置 VPC 终端节点并授予必要的 AWS Identity and Access Management 权限。有关在 Amazon A SageMaker I 中配置 VPC 的信息，请参阅[选择 Amazon VPC](onboard-vpc.md)。以下各节介绍如何在没有公共互联网访问权限的 VPC 中运行 SageMaker Canvas。

## 在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas
<a name="canvas-vpc-configure"></a>

您可以通过自己的 VPC 将流量从 SageMaker Canvas 发送到其他 AWS 服务。如果您自己的 VPC 没有公共互联网访问权限，并且您已将域设置为**仅限 VPC** 模式，那么 SageMaker Canvas 也无法访问公共互联网。这包括所有请求，如访问 Amazon S3 中的数据集或标准构建的训练作业，这些请求通过 VPC 中的 VPC 端点而不是公共互联网进行。当您加入域和 [选择 Amazon VPC](onboard-vpc.md) 时，可以指定自己的 VPC 作为域的默认 VPC，并指定所需的安全组和子网设置。然后， SageMaker AI 会在您的 VPC 中创建一个网络接口，Canva SageMaker s 使用该接口来访问您的 VPC 中的终端节点。

确保在您的 VPC 中设置一个或多个安全组，并设置允许[安全组内 TCP 流量](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances)的入站和出站规则。这是 Jupyter Server 应用程序和 Kernel Gateway 应用程序之间的连接所需。必须至少允许访问范围 `8192-65535` 内的端口。此外，确保为每个用户配置文件创建不同的安全组，并添加来自同一安全组的入站访问权限。我们不建议对用户配置文件重复使用域级安全组。如果域级安全组允许对其自身进行入站访问，该域中的所有应用程序都有权访问域中的所有其他应用程序。请注意，安全组和子网设置是在您完成加入域后设置的。

在入网域时，如果您选择 “**仅限公共互联网**” 作为网络访问类型，则 VPC 将由 A SageMaker I 管理并允许访问互联网。

您可以通过**仅选择 VPC** 来更改此行为，以便 SageMaker AI 将所有流量发送到 A SageMaker I 在您指定 VPC 中创建的网络接口。选择此选项时，必须提供与 SageMaker API 和 SageMaker AI 运行时通信所需的子网、安全组和 VPC 终端节点，以及 C SageMaker anvas 使用的各种 AWS 服务，例如 Amazon S3 和 Amazon CloudWatch。请注意，您只能从与 VPC 位于同一区域的 Amazon S3 存储桶导入数据。

以下过程说明如何将这些设置配置为在没有互联网的情况下使用 SageMaker Canvas。

### 第 1 步：登录 Amazon A SageMaker I 域名
<a name="canvas-vpc-configure-onboard"></a>

要将 SageMaker Canvas 流量发送到您自己的 VPC 中的网络接口，而不是通过互联网发送，请指定您在加入 [Amazon A SageMaker I 域](gs-studio-onboard.md)时要使用的 VPC。您还必须在 VPC 中指定至少两个 SageMaker AI 可以使用的子网。在为域配置**网络和存储部分**时，选择**标准设置**并执行以下步骤。

1. 选择所需的 **VPC**。

1. 选择两个或更多**子网**。如果您未指定子网， SageMaker AI 将使用 VPC 中的所有子网。

1. 选择一个或多个**安全组**。

1. 选择 “**仅限 VPC**” 可在托管 C SageMaker anvas 的 AWS 托管 VPC 中关闭直接互联网访问。

禁用互联网访问后，完成信息载入过程以设置您的域。有关 Amazon A SageMaker I 域的 VPC 设置的更多信息，请参阅[选择 Amazon VPC](onboard-vpc.md)。

### 步骤 2：配置 VPC 端点和访问权限
<a name="canvas-vpc-configure-endpoints"></a>

**注意**  
要在您自己的 VPC 中配置 Canvas，必须为 VPC 端点启用私有 DNS 主机名。有关更多信息，请参阅[通过 VPC 接口终端节点连接到 SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/interface-vpc-endpoint.html)。

SageMaker Canvas 仅访问其他 AWS 服务来管理和存储数据以实现其功能。例如，如果用户访问 Amazon Redshift 数据库，它就会连接到 Amazon Redshift。它可以使用互联网连接或 VPC 终端节点连接到诸如 Amazon Redshift 之类的 AWS 服务。如果您想设置从 VPC 到不使用公共互联网的 AWS 服务的连接，请使用 VPC 终端节点。

VPC 终端节点使用与公共 Internet 隔离的网络路径创建与 AWS 服务的私有连接。例如，如果您使用自己的 VPC 终端节点设置对 Amazon S3 的访问权限，那么 SageMaker Canvas 应用程序可以通过您的 VPC 中的网络接口，然后通过连接到 Amazon S3 的 VPC 终端节点来访问 Amazon S3。 SageMaker Canvas 和 Amazon S3 之间的通信是私密的。

有关为 VPC 配置 VPC 端点的更多信息，请参阅 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)。如果您正在使用带有 VPC 的 Canvas 中的 Amazon Bedrock 模型，则有关控制数据访问权限的更多信息，请参阅《Amazon Bedrock 用户指南》**中的[使用 VPC 保护作业](https://docs.aws.amazon.com/bedrock/latest/userguide/usingVPC.html#configureVPC)。

以下是您可以在 C SageMaker anvas 中使用的每项服务的 VPC 终端节点：


| 服务 | 端点 | 端点类型 | 
| --- | --- | --- | 
|  AWS 应用程序 Auto Scaling  |  com.amazonaws。 *Region*. 应用程序自动缩放  | 接口 | 
|  Amazon Athena  |  com.amazonaws。 *Region*.athena  | 接口 | 
|  亚马逊 SageMaker AI  |  com.amazonaws。 *Region*.sagemaker.api com.amazonaws。 *Region*.sagemaker.runtime com.amazonaws。 *Region*. 笔记本  | 接口 | 
|  亚马逊 SageMaker AI 数据科学助手  |  com.amazonaws。 *Region*。 sagemaker-data-science-assistant  | 接口 | 
|  AWS Security Token Service  |  com.amazonaws。 *Region*.sts  | 接口 | 
|  Amazon Elastic Container Registry (Amazon ECR)  |  com.amazonaws。 *Region*.ecr.api com.amazonaws。 *Region*.ecr.dkr  | 接口 | 
|  Amazon Elastic Compute Cloud (Amazon EC2)  |  com.amazonaws。 *Region*.ec2  | 接口 | 
|  Amazon Simple Storage Service（Amazon S3）  |  com.amazonaws。 *Region*.s3  | 网关 | 
|  Amazon Redshift  |  com.amazonaws。 *Region*.redShift-data  | 接口 | 
|  AWS Secrets Manager  |  com.amazonaws。 *Region*.secretsManag  | 接口 | 
|  AWS Systems Manager  |  com.amazonaws。 *Region*.ssm  | 接口 | 
|  Amazon CloudWatch  |  com.amazonaws。 *Region*. 监控  | 接口 | 
|  Amazon CloudWatch 日志  |  com.amazonaws。 *Region*.logs  | 接口 | 
|  Amazon Forecast  |  com.amazonaws。 *Region*. 预测 com.amazonaws。 *Region*.forecastquer  | 接口 | 
|  Amazon Textract  |  com.amazonaws。 *Region*.extract  | 接口 | 
|  Amazon Comprehend  |  com.amazonaws。 *Region*.comprehend  | 接口 | 
|  Amazon Rekognition  |  com.amazonaws。 *Region*. rekognition  | 接口 | 
|  AWS Glue  |  com.amazonaws。 *Region*. glue  | 接口 | 
|  AWS App Auto Scaling  |  com.amazonaws。 *Region*. 应用程序自动缩放  | 接口 | 
|  Amazon Relational Database Service (Amazon RDS)  |  com.amazonaws。 *Region*.rds  | 接口 | 
|  Amazon Bedrock（见此表后的注释）  |  com.amazonaws。 *Region*.bedrock-rutime  | 接口 | 
|  Amazon Kendra  |  com.amazonaws。 *Region*.kendra  | 接口 | 
|  Amazon EMR Serverless  |  com.amazonaws。 *Region*.emr-serverless  | 接口 | 
|  Amazon Q 开发者版（见此表后的注释）  |  com.amazonaws。 *Region*.q  | 接口 | 

**注意**  
Amazon Q 开发者版 VPC 端点目前仅在美国东部（弗吉尼亚州北部）区域提供。要从其他区域连接到该端点，您可以根据安全和基础设施首选项选择下列选项之一：  
**设置 NAT 网关。**在您的 VPC 的私有子网中配置 NAT 网关，为 Q 开发者版端点启用互联网连接。有关更多信息，请参阅[在 VPC 私有子网中设置 NAT 网关](https://repost.aws/knowledge-center/nat-gateway-vpc-private-subnet)。
**启用跨区域 VPC 端点访问权限。**为 Q 开发者版设置跨区域 VPC 端点访问权限。使用此选项可安全连接，而无需互联网访问权限。有关更多信息，请参阅[配置跨区域 VPC 端点访问权限](https://repost.aws/knowledge-center/vpc-endpoints-cross-region-aws-services)。

**注意**  
对于 Amazon Bedrock，接口端点服务名称 `com.amazonaws.Region.bedrock` 已被弃用。使用上表中列出的服务名称创建新的 VPC 端点。  
此外，在没有互联网接入的情况下，你无法从 Canv VPCs as 微调基础模型。这是因为 Amazon Bedrock 不支持 VPC 终端节点进行模型自定义 APIs。要了解有关在 Canvas 中微调基础模型的更多信息，请参阅 [微调基础模型](canvas-fm-chat-fine-tune.md)。

您还必须为 Amazon S3 添加终端节点策略，以控制 AWS 委托人对您的 VPC 终端节点的访问权限。有关如何更新 VPC 端点策略的信息，请参阅[使用端点策略控制对 VPC 端点的访问](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

以下是您可以使用的两个 VPC 端点策略。如果您只想授予对 Canvas 基本功能（例如导入数据和创建模型）的访问权限，请使用第一种策略。如果您要授予对 Canvas 中其他的[生成式人工智能功能](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html)的访问权限，请使用第二种策略。

------
#### [ Basic VPC endpoint policy ]

以下策略授予 VPC 端点必要的访问权限，以便在 Canvas 中进行基本操作。

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------
#### [ Generative AI VPC endpoint policy ]

以下策略授予 VPC 端点必要的访问权限，以便在 Canvas 中进行基本操作以及使用生成式人工智能基础模型。

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*",
                "arn:aws:s3:::*fmeval/datasets*",
                "arn:aws:s3:::*jumpstart-cache-prod*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------

### 步骤 3：授予 IAM 权限
<a name="canvas-vpc-configure-permissions"></a>

 SageMaker Canvas 用户必须具有必要的 AWS Identity and Access Management 权限才能允许连接到 VPC 终端节点。您授予权限的 IAM 角色必须与您在加入 Amazon A SageMaker I 域时使用的角色相同。您可以将 SageMaker AI 托管`AmazonSageMakerFullAccess`策略附加到用户的 IAM 角色，以向用户授予所需的权限。如果您需要更严格的IAM权限并改用自定义策略，请向用户的角色`ec2:DescribeVpcEndpointServices`授予权限。 SageMaker Canvas 需要这些权限来验证是否存在标准构建任务所需的 VPC 终端节点。如果检测到这些 VPC 端点，那么标准构建作业就会默认在 VPC 中运行。否则，它们将在默认 AWS 托管 VPC 中运行。

有关如何将 `AmazonSageMakerFullAccess` IAM 策略附加到用户的 IAM 角色的说明，请参阅[添加和删除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

要向用户的 IAM 角色授予精细的 `ec2:DescribeVpcEndpointServices` 权限，请按以下步骤操作。

1. 登录 AWS 管理控制台 并打开 [IAM 控制台](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**角色**。

1. 在列表中，选择要授予其权限的角色的名称。

1. 选择**权限**选项卡。

1. 选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡并输入以下授予 `ec2:DescribeVpcEndpointServices` 权限的策略：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "ec2:DescribeVpcEndpointServices",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 选择**查看策略**，然后输入策略的**名称**（例如 `VPCEndpointPermissions`）。

1. 选择**创建策略**。

用户的 IAM 角色现在应该有权访问在 VPC 中配置的 VPC 端点。

### （可选）步骤 4：覆盖特定用户的安全组设置
<a name="canvas-vpc-configure-override"></a>

如果您是管理员，则可能希望不同的用户拥有不同的 VPC 设置，或特定于用户的 VPC 设置。当您覆盖特定用户的默认 VPC 安全组设置时，这些设置将传递到该用户的 SageMaker Canvas 应用程序。

在 Studio Classic 中设置新用户配置文件时，可以覆盖特定用户在 VPC 中可以访问的安全组。你可以使用 [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) SageMaker API 调用（或者使用 [create\$1user\$1profil](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_user_profile) e [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)），然后在中`UserSettings`，你可以为用户指`SecurityGroups`定。

# 使用设置与数据源的连接 OAuth
<a name="canvas-setting-up-oauth"></a>

以下部分描述了从 C SageMaker anvas 建立与数据源的 OAuth 连接时必须采取的步骤。 [OAuth](https://oauth.net/2/)是一个常用的身份验证平台，用于在不共享密码的情况下授予对资源的访问权限。使用 OAuth，您可以从 Canvas 快速连接到您的数据并将其导入以构建模型。Canvas 目前支持 OAuth Snowflake 和 Salesforce 数据云。

**注意**  
只能为每个数据源建立一个 OAuth 连接。

## 为 Sales OAuth force 数据云做好准备
<a name="canvas-setting-up-oauth-salesforce"></a>

要设置 Sales OAuth force 数据云，请按照以下一般步骤操作：

1. 登录 Salesforce Data Cloud。

1. 在 Salesforce Data Cloud 中，创建一个新的应用程序连接并执行以下操作：

   1. 启用 OAuth 设置。

   1. 当系统提示输入回调 URL（或访问数据的资源的 URL）时，请指定 Canvas 应用程序的 URL。Canvas 应用程序 URL 采用以下格式：`https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

   1. 复制用户密钥。

   1. 复制授权 URL 和令牌 URL。

有关在 Salesforce Data Cloud 中执行上述任务的更详细说明，请参阅 Data Wrangler 文档中有关从 Salesforce Data Cloud 导入数据的[从 Salesforce Data Cloud 导入数据](data-wrangler-import.md#data-wrangler-import-salesforce-data-cloud)。

启用从 Salesforce Data Cloud 的访问权限并获取您的连接信息后，您必须创建一个[AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)密钥来存储该信息，并将其添加到您的 Amazon A SageMaker I 域或用户个人资料中。请注意，您可以在域和用户配置文件中同时添加密钥，但 Canvas 会首先在用户配置文件中查找密钥。

要在域或用户配置文件中添加密钥，请执行以下操作：

1. 前往 [Amazon SageMaker AI 控制台](https://console.aws.amazon.com/sagemaker)。

1. 在导航窗格中选择**域**。

1. 从**域**列表中选择您的域。

   1. 如果要在域中添加密钥，请执行以下操作：

      1. 选择域。

      1. 在**域设置**页面上，选择**域设置**选项卡。

      1. 选择**编辑**。

   1. 如果要在用户配置文件中添加密钥，请执行以下操作：

      1. 选择用户的域。

      1. 在**域设置**页面上，选择用户配置文件。

      1. 在**用户详细信息**页面上，选择**编辑**。

1. 在导航窗格中，选择 **Canvas 设置**。

1. 对于**OAuth 设置**，请选择**添加 OAuth 配置**。

1. 对于**数据来源**，选择 **Salesforce Data Cloud**。

1. 对于**密钥设置**，选择**创建新密钥**。或者，如果您已经使用凭据创建了 AWS Secrets Manager 密钥，请输入该密钥的 ARN。如果创建新密钥，请执行以下操作：

   1. 对于**身份提供商**，选择 **SALESFORCE**。

   1. 对于**客户端 ID**、**客户端密钥**、**授权 URL** 和**令牌 URL**，请输入您在上一个过程中从 Salesforce Data Cloud 收集的所有信息。

1. 保存域或用户配置文件设置。

现在，您应该可以从 Canvas 创建与 Salesforce Data Cloud 中数据的连接。

## 为 Snowfla OAuth ke 做好准备
<a name="canvas-setting-up-oauth-snowflake"></a>

要为 Snowflake 设置身份验证，Canvas 支持身份提供商，您可以使用它们来代替让用户直接在 Canvas 中输入凭证。

以下是 Canvas 支持的身份供应商的 Snowflake 文档链接：
+ [Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html)
+ [Okta](https://docs.snowflake.com/en/user-guide/oauth-okta.html)
+ [Ping Federate](https://docs.snowflake.com/en/user-guide/oauth-pingfed.html)

下面的过程描述了您必须采取的一般步骤。有关执行这些步骤的更详细说明，请参阅 Data Wrangler 文档中有关从 Snowflake 导入数据的[设置 Snowflake 访问权限 OAuth](data-wrangler-import.md#data-wrangler-snowflake-oauth-setup)部分。

要设置 Snow OAuth flake，请执行以下操作：

1. 在身份提供商处将 Canvas 注册为应用程序。这需要指定一个重定向到 Canvas 的 URL，该 URL 应遵循以下格式：`https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

1. 在身份提供商中，创建一个向 Canvas 发送 OAuth 令牌的服务器或 API，以便 Canvas 可以访问 Snowflake。设置服务器时，请使用授权码和刷新令牌授权类型，指定访问令牌的有效期，并设置刷新令牌策略。此外，在 Snowflake 的外部 OAuth 安全集成中，启用。`external_oauth_any_role_mode`

1. 从身份提供商处获取以下信息：令牌 URL、授权 URL、客户端 ID、客户端密钥。对于 Azure AD，还要检索 OAuth 范围凭据。

1. 将上一步中检索到的信息存储在 AWS Secrets Manager 密钥中。

   1. 对于 Okta 和 Ping Federate，密钥的格式如下：

      ```
      {"token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token",
      "client_id":"example-client-id", "client_secret":"example-client-secret", "identity_provider":"OKTA"|"PING_FEDERATE",
      "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize"}
      ```

   1. 对于 Azure AD，密钥还应包括 OAuth 范围凭据作为`datasource_oauth_scope`字段。

配置身份提供商和密钥后，您必须创建一个用于存储信息的[AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)密钥并将其添加到您的 Amazon A SageMaker I 域或用户个人资料中。请注意，您可以在域和用户配置文件中同时添加密钥，但 Canvas 会首先在用户配置文件中查找密钥。

要在域或用户配置文件中添加密钥，请执行以下操作：

1. 前往 [Amazon SageMaker AI 控制台](https://console.aws.amazon.com/sagemaker)。

1. 在导航窗格中选择**域**。

1. 从**域**列表中选择您的域。

   1. 如果要在域中添加密钥，请执行以下操作：

      1. 选择域。

      1. 在**域设置**页面上，选择**域设置**选项卡。

      1. 选择**编辑**。

   1. 如果要在用户配置文件中添加密钥，请执行以下操作：

      1. 选择用户的域。

      1. 在**域设置**页面上，选择用户配置文件。

      1. 在**用户详细信息**页面上，选择**编辑**。

1. 在导航窗格中，选择 **Canvas 设置**。

1. 对于**OAuth 设置**，请选择**添加 OAuth 配置**。

1. 对于**数据来源**，选择 **Snowflake**。

1. 对于**密钥设置**，选择**创建新密钥**。或者，如果您已经使用凭据创建了 AWS Secrets Manager 密钥，请输入该密钥的 ARN。如果创建新密钥，请执行以下操作：

   1. 对于**身份提供商**，选择 **SNOWFLAKE**。

   1. 对于**客户端 ID**、**客户端密钥**、**授权 URL** 和**令牌 URL**，请输入您在上一个过程中从身份供应商处收集的所有信息。

1. 保存域或用户配置文件设置。

现在，您应该能够从 Canvas 创建到 Snowflake 中的数据的连接。

# 生成式人工智能协助，通过使用 Amazon Q 开发者版解决 Canvas 中的 ML 问题
<a name="canvas-q"></a>

在使用 Amazon SageMaker Canvas 时，你可以用自然语言与 Amazon Q Developer 聊天，以利用生成人工智能并解决问题。Q 开发者版是一位助手，可帮助您将目标转化为机器学习（ML）任务，并描述机器学习工作流的每个步骤。Q 开发者版可帮助 Canvas 用户减少利用 ML 并为其组织做出数据驱动型决策所需的时间、精力和数据科学专业知识。

通过与 Q 开发者版进行对话，您可以在 Canvas 中发起操作，例如准备数据、构建 ML 模型、进行预测以及部署模型。Q 开发者版会为后续步骤提供建议，并在您完成每个步骤时为您提供相关上下文。它还会向您告知结果；例如，Canvas 可根据最佳实践对您的数据集进行转换，而 Q 开发者版能列出所使用的转换及其原因。

Amazon Q Developer 在 SageMaker Canvas 中提供，Amazon Q Developer Pro 套餐和免费套餐用户均无需支付额外费用。但是， SageMaker Canvas工作空间实例等资源以及用于构建或部署模型的任何资源均需支付标准费用。有关定价的更多信息，请参阅 [Amazon SageMaker Canvas 定价](https://aws.amazon.com/sagemaker-ai/canvas/pricing/)。

Amazon Q 的使用依据 [MIT 0 许可证](https://github.com/aws/mit-0)向您授权，并需遵守 [AWS 负责任的人工智能政策](https://aws.amazon.com/machine-learning/responsible-ai/policy/)。当您在美国之外使用 Q 开发者版时，Q 开发者版会在美国各区域间处理数据。有关更多信息，请参阅 [Amazon Q 开发者版中的跨区域推理](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/cross-region-inference.html)。

**注意**  
无论您使用的是免费套餐还是专业版订阅， SageMaker Canvas 中的 Amazon Q Developer 都不会使用用户内容来改进服务。对于服务遥测目的，Q 开发者版可能会跟踪您的使用情况，例如提问的数量以及推荐是否被接受或拒绝。这些遥测数据不包括个人身份信息，如 IP 地址。

## 工作原理
<a name="canvas-q-how-it-works"></a>

Amazon Q Developer 是一款由人工智能驱动的生成式助手，在 SageMaker Canvas 中可用，你可以使用自然语言进行查询。Q 开发者版会为机器学习工作流的每个步骤提供建议，解释相关概念，并根据需要为您提供选项及更多详细信息。您可以使用 Q 开发者版获取帮助，来处理回归、二元分类和多元分类使用案例。

例如，要预测客户流失，可通过 Q 开发者版将历史客户流失信息数据集上传到 Canvas。Q 开发者版会推荐合适的 ML 模型类型，并提供解决数据集问题、构建模型以及进行预测的步骤。

**重要**  
Amazon Q Developer 专为在 SageMaker Canvas 中讨论机器学习问题而设计。它将引导用户完成 Canvas 操作，并可选择性地解答关于 AWS 服务的问题。Q 开发者版仅支持处理英文形式的模型输入。有关如何使用 Q 开发者版的更多信息，请参阅《Amazon Q 开发者版用户指南》**中的 [Amazon Q 开发者版功能](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/features.html)。

## 支持的区域
<a name="canvas-q-regions"></a>

Amazon Q Developer 在 SageMaker Canvas 中提供以下版本 AWS 区域：
+ 美国东部（弗吉尼亚州北部）
+ 美国东部（俄亥俄州）
+ 美国西部（俄勒冈州）
+ 亚太地区（孟买）
+ 亚太地区（首尔）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（东京）
+ 欧洲地区（法兰克福）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（巴黎）

## 可在 Canvas 中使用的 Amazon Q 开发者版功能
<a name="canvas-q-capabilities"></a>

以下列表汇总了 Q 开发者版可协助完成的 Canvas 任务：
+ **描述您的目标** – Q 开发者版可推荐 ML 模型类型以及解决您问题的通用方法。
+ **导入和分析数据集** – 告知 Q 开发者版您的数据集存储位置，或上传文件以将其另存为 Canvas 数据集。提示 Q 开发者版识别您数据集中的任何问题，例如异常值或缺失值。Q 开发者版会提供有关您的数据集的汇总统计信息，并列出所有已识别的问题。

  Q 开发者版支持查询各个列的以下统计信息：
  + 数字列 – `number of valid values`、`feature type`、`mean`、`median`、`minimum`、`maximum`、`standard deviation`、`25th percentile`、`75th percentile`、`number of outliers`
  + 分类列 – `number of missing values`、`number of valid values`、`feature type`、`most frequent`、`most frequent category`、`most frequent category count`、`least frequent`、`least frequent category`、`least frequent category count`、`categories`
+ **修复数据集问题** – 提示 Q 开发者版使用 Canvas 的数据转换功能来创建数据集的修订版本。Canvas 会创建一个 Data Wrangler 数据流，并依据数据科学最佳实践执行转换操作。有关更多信息，请参阅 [数据准备](canvas-data-prep.md)。

  如果您需要完成比 Q 开发者版所能实现的更高级的数据分析或数据准备任务，建议您转至 Data Wrangler 数据流界面。
+ **训练模型** – Q 开发者版会告知您针对您的问题推荐的 ML 模型类型，以及建议的模型构建配置。您可以使用建议的默认设置进行快速构建，也可以修改配置后进行标准构建。准备就绪后，提示 Q 开发者版构建您的 Canvas 模型。

  所有自定义模型类型均受支持。有关模型类型以及快速构建与标准构建的更多信息，请参阅[自定义模型的工作原理](canvas-build-model.md)。
+ **评估模型准确性** – 构建模型后，Q 开发者版会提供模型各项指标的评分摘要。这些指标可帮助您确定模型的实用性和准确性。Q 开发者版能够详细说明任何概念或指标。

  要查看完整详细信息和可视化内容，请从聊天窗口或 Canvas 的**我的模型**页面打开模型。有关更多信息，请参阅 [模型评测](canvas-evaluate-model.md)。
+ **获取新数据预测** – 您可以上传新数据集，并提示 Q 开发者版帮助您开启 Canvas 的预测功能。

  Q 开发者版会在应用程序中打开一个新窗口，您可在该窗口中使用新数据集进行单次预测或批量预测。有关更多信息，请参阅 [使用自定义模型进行预测](canvas-make-predictions.md)。
+ **部署模型** – 要将模型部署到生产环境中，请让 Q 开发者版帮助您通过 Canvas 部署模型。Q 开发者版会打开一个新窗口，您可在该窗口中配置部署。

  部署后，可在以下位置查看您的部署详细信息：1）Canvas 的**我的模型**页面上模型的**部署**标签页中，或 2）**机器学习操作**页面上的**部署**标签页中。有关更多信息，请参阅 [将模型部署到端点](canvas-deploy-model.md)。

## 先决条件
<a name="canvas-q-prereqs"></a>

要使用 Amazon Q Developer 在 SageMaker Canvas 中构建机器学习模型，请完成以下先决条件：

**设置 Canvas 应用程序**

确保您已设置 Canvas 应用程序。有关如何设置 Canvas 应用程序的信息，请参阅[开始使用 Amazon C SageMaker anvas](canvas-getting-started.md)。

**授予 Q 开发者版权限**

要在使用 Canvas 时访问 Q Developer，您必须为用于 A SageMaker I 域或用户个人资料的 AWS IAM 角色附加必要的权限。您可以通过此部分中所述的控制台执行此操作。如果您因使用控制台方法而遇到任何权限问题，请手动将 AWS 托管策略附加[ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)到 IAM 角色。

除非在用户配置文件级别授予或撤销单个权限，否则在域级别附加的权限将适用于域中的所有用户配置文件。

------
#### [ SageMaker AI console method ]

您可以通过编辑 SageMaker AI 域或用户配置文件设置来授予权限。

要通过 SageMaker AI 控制台中的域设置授予权限，请执行以下操作：

1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从域列表中选择您的域。

1. 在**域详细信息**页面上，选择**应用程序配置**选项卡。

1. 在 **Canvas** 部分中，选择**编辑**。

1. 在**编辑 Canvas 设置**页面上，转至 **Amazon Q 开发者版**部分并执行以下操作：

   1. 开启 “在 ** SageMaker Canvas 中启用 Amazon Q 开发者进行自然语言机器**学习”，将在 Canvas 中与 Q 开发者聊天的权限添加到域的执行角色中。

   1. （可选）如果您想向 **Q 开发者询问各种 AWS 问题 AWS 服务 （例如：描述 Athena 的工作原理），请开启启启用 Amazon Q 开发者聊天以解决一般**问题。
**注意**  
向 Q Developer 进行一般 AWS 查询时，您的请求将通过美国东部（弗吉尼亚北部）发出 AWS 区域。要防止您的数据通过美国东部（弗吉尼亚州北部）路由，请禁用**启用 Amazon Q 开发者版聊天以解答一般 AWS 问题**。

------
#### [ Manual method ]

将[ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)策略附加到用于您的域名或用户个人资料的 AWS IAM 角色。有关如何执行此操作的更多信息，请参阅《AWS IAM 用户指南》**中的[添加和删​​除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

------

**（可选）配置从您的 VPC 访问 Q 开发者版的权限**

如果您配置的 VPC 不具有公共互联网访问权限，则可以为 Q 开发者版添加 VPC 端点。有关更多信息，请参阅 [在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas](canvas-vpc.md)。

## 开始使用
<a name="canvas-q-get-started"></a>

要使用 Amazon Q Developer 在 SageMaker Canvas 中构建机器学习模型，请执行以下操作：

1. 打开你的 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择 **Amazon Q**。

1. 选择**开始新对话**以打开新聊天。

当您开始新的聊天时，Q 开发者版会提示您陈述您的问题或提供数据集。

![\[Q 开发者版在开始新聊天时向您发送的问候语。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/amazon-q-greeting.png)


导入数据后，您可以让 Q 开发者版为您提供有关数据集的汇总统计信息，也可以询问有关特定列的问题。有关 Q 开发者版支持的不同统计信息的列表，请参阅上一部分[可在 Canvas 中使用的 Amazon Q 开发者版功能](#canvas-q-capabilities)。以下屏幕截图中的实例说明如何查询数据集统计信息，以及产品类别列中最频繁出现的类别。

![\[请求 Q 开发者版提供数据集统计信息以及最频繁出现的类别统计信息的聊天对话。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/amazon-q-dataset-statistics.png)


Q 开发者版会跟踪您在对话期间导入或创建的任何 Canvas 构件，例如转换后的数据集和模型。您可以通过聊天或其他 Canvas 应用程序选项卡访问它们。例如，如果 Q 开发者版修复了数据集中的问题，您可从以下位置访问新的转换后的数据集：
+ Q 开发者版聊天界面中的构件侧边栏
+ Canvas 的**数据集**页面，可在其中查看原始数据集和转换后的数据集。转换后的数据集已添加**由 Amazon Q 构建**标签。
+ Canvas 的 **Data Wrangler** 页面，Q 开发者版可在其中为数据集创建新的数据流

以下屏幕截图在聊天的侧边栏中显示了原始数据集和转换后的数据集。

![\[这些构件（包括数据集和转换后的数据集）显示在 Q 开发者版聊天的侧边栏中。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/amazon-q-artifacts.png)


在数据准备就绪后，让 Q 开发者版帮助构建 Canvas 模型。Q 开发者版可能会提示您确认几个字段并查看构建配置。如果您使用默认构建配置，则模型将使用快速构建进行构建。如果您想自定义构建配置的任何部分（例如，选择使用的算法或更改目标指标），则模型将使用标准构建进行构建。

以下屏幕截图说明如何通过几个提示，让 Q 开发者版启动 Canvas 模型构建。此示例使用默认配置来开始快速构建。

![\[与 Q 开发者版的对话，提示用户启动 Canvas 模型构建。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/amazon-q-training-chat.png)


构建模型后，您可以使用聊天中的自然语言或构件侧边栏菜单执行其他操作。例如，您可以查看模型详细信息和指标、进行预测或部署模型。以下屏幕截图显示了侧边栏，可在其中选择这些附加选项。

![\[Q 开发者版对话省略号菜单已展开，其中显示用于查看模型详细信息、预测和部署的选项。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/amazon-q-ellipsis-menu.png)


您也可以通过转至 Canvas 的**我的模型**页面，并选择您的模型来执行这些操作中的任一操作。在模型页面上，您可以导航到**分析**、**预测**和**部署**标签页，分别查看模型指标和可视化内容、进行预测和管理部署。

# 记录 Q 开发者与的对话 AWS CloudTrail
<a name="canvas-q-cloudtrail"></a>

AWS CloudTrail 是一项记录用户、角色或 AWS 服务 在 Amazon A SageMaker I 中执行的操作的服务。 CloudTrail 捕获您在使用 Canvas（无代码机器学习界面）时与 Amazon Q De SageMaker veloper（对话式 AI 助手）互动时产生的 API 调用。 CloudTrail 数据显示了请求的详细信息、请求者的 IP 地址、发出请求的人以及何时发出。

你与 Q Developer 的互动将作为 `SendConversation` API 调用发送到 SageMaker AI 数据科学助手服务，这是 Canvas 在后端利用的一项内部服务。`SendConversation` API 调用的事件源是 `sagemaker-data-science-assistant.amazonaws.com`。

**注意**  
出于隐私和安全原因，您的对话内容在日志中被隐藏，并在请求和响应元素中显示为 `HIDDEN_DUE_TO_SECURITY_REASONS`。

要了解更多信息 CloudTrail，请参阅《[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。要了解有关 SageMaker AI CloudTrail 的更多信息，请参阅[使用记录亚马逊 SageMaker AI API 调用 AWS CloudTrail](logging-using-cloudtrail.md)。

下面是 `SendConversation` API 的日志文件条目示例：

```
{
    "eventVersion":"1.10",
    "userIdentity": {
        "type":"AssumedRole",
        "principalId":"AROA123456789EXAMPLE:user-Isengard",
        "arn":"arn:aws:sts::111122223333:assumed-role/Admin/user",
        "accountId":"111122223333",
        "accessKeyId":"ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type":"Role",
                "principalId":"AROA123456789EXAMPLE",
                "arn":"arn:aws:iam::111122223333:role/Admin",
                "accountId":"111122223333",
                "userName":"Admin"
            },
            "attributes": {
                "creationDate":"2024-11-11T22:04:37Z",
                "mfaAuthenticated":"false"
            }
        }
    },
    "eventTime":"2024-11-11T22:09:22Z",
    "eventSource":"sagemaker-data-science-assistant.amazonaws.com",
    "eventName":"SendConversation",
    "awsRegion":"us-west-2",
    "sourceIPAddress":"192.0.2.0",
    "userAgent":"Boto3/1.33.13 md/Botocore#1.33.13 ua/2.0 os/linux#5.10.227-198.884.amzn2int.x86_64 md/arch#x86_64 lang/python#3.7.16 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.33.13",
    "requestParameters": {
        "conversation": [
            {
                "utteranceId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                "utterance":"HIDDEN_DUE_TO_SECURITY_REASONS",
                "timestamp":"Feb 4, 2020, 7:46:29 AM",
                "utteranceType":"User"
            }
        ],
        "utteranceId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "responseElements": {
        "responseCode":"CHAT_RESPONSE",
        "conversationId":"1234567890abcdef0",
        "response": {
            "chat": {
                "body":"HIDDEN_DUE_TO_SECURITY_REASONS"
            }
        }
    },
    "requestID":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "eventID":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "readOnly":false,
    "eventType":"AwsApiCall",
    "managementEvent":true,
    "recipientAccountId":"123456789012",
    "eventCategory":"Management",
    "tlsDetails": {
        "tlsVersion":"TLSv1.2",
        "cipherSuite":"ECDHE-RSA-AES128-GCM-SHA256",
        "clientProvidedHostHeader":"gamma.us-west-2.data-science-assistant.sagemaker.aws.dev"
    }
}
```

# 导入数据
<a name="canvas-importing-data"></a>

Amazon SageMaker Canvas 支持导入表格、图像和文档数据。您可以从本地计算机、Amazon S3 和 Amazon Redshift 等 Amazon 服务以及外部数据来源导入数据集。从 Amazon S3 导入数据集时，您可以导入任意大小的数据集。使用导入的数据集来构建模型并对其他数据集进行预测。

您可以为其构建自定义模型的每个使用案例都接受不同类型的输入。例如，如果要构建单标签图像分类模型，则应导入图像数据。有关不同的模型类型及其接受的数据的更多信息，请参阅[自定义模型的工作原理](canvas-build-model.md)。您可以在 C SageMaker anvas 中为以下数据类型导入数据并构建自定义模型：
+ **表格**（CSV、Parquet 或表格）
  + 分类 - 使用分类数据构建自定义分类预测模型，以进行 2 和 3\$1 类别预测。
  + 数值 - 使用数值数据构建自定义数值预测模型。
  + 文本 - 使用文本数据构建自定义的多元文本预测模型。
  + 时间序列 - 使用时间序列数据构建自定义的时间序列预测模型。
+ **图像**（JPG 或 PNG）- 使用图像数据构建自定义的单标签图像预测模型。
+ **文档**（PDF、JPG、PNG、TIFF）-仅 SageMaker 画布 Ready-to-use模型支持文档数据。要详细了解可以预测文档数据的 Ready-to-use模型，请参阅[Ready-to-use 模型](canvas-ready-to-use-models.md)。

您可以从以下数据来源将数据导入 Canvas：
+ 计算机上的本地文件
+ Amazon S3 存储桶
+ Amazon Redshift 预配置集群（非 Amazon Redshift Serverless）
+ AWS Glue Data Catalog 通过亚马逊 Athena
+ Amazon Aurora
+ Amazon Relational Database Service (Amazon RDS)
+ Salesforce Data Cloud
+ Snowflake
+ 通过 JDBC 连接器实现的 Databricks、M SQLServer ariaDB 和其他常用数据库
+ 40 多个外部 SaaS 平台，例如 SAP OData

有关可以从中导入数据的数据来源的完整列表，请参阅下表：


| 来源 | Type | 支持的数据类型 | 
| --- | --- | --- | 
| 本地文件上传 | 本地 | 表格、图像、文档 | 
| Amazon Aurora | Amazon 内部 | 表格 | 
| 亚马逊 S3 存储桶 | Amazon 内部 | 表格、图像、文档 | 
| Amazon RDS | Amazon 内部 | 表格 | 
| Amazon Redshift 预配置集群（非 Redshift Serverless） | Amazon 内部 | 表格 | 
| AWS Glue Data Catalog （通过亚马逊 Athena） | Amazon 内部 | 表格 | 
| [Databricks](https://www.databricks.com/) | 外部 | 表格 | 
| Snowflake | 外部 | 表格 | 
| [Salesforce Data Cloud](https://www.salesforce.com/products/genie/overview/) | 外部 | 表格 | 
| SQLServer | 外部 | 表格 | 
| MySQL | 外部 | 表格 | 
| PostgreSQL | 外部 | 表格 | 
| MariaDB | 外部 | 表格 | 
| [Amplitude](https://docs.aws.amazon.com/appflow/latest/userguide/amplitude.html) | 外部 SaaS 平台 | 表格 | 
| [CircleCI](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-circleci.html) | 外部 SaaS 平台 | 表格 | 
| [DocuSign 监控](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-docusign-monitor.html) | 外部 SaaS 平台 | 表格 | 
| [Domo](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-domo.html) | 外部 SaaS 平台 | 表格 | 
| [Datadog](https://docs.aws.amazon.com/appflow/latest/userguide/datadog.html) | 外部 SaaS 平台 | 表格 | 
| [Dynatrace](https://docs.aws.amazon.com/appflow/latest/userguide/dynatrace.html) | 外部 SaaS 平台 | 表格 | 
| [Facebook Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-ads.html) | 外部 SaaS 平台 | 表格 | 
| [Facebook Page Insights](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-page-insights.html) | 外部 SaaS 平台 | 表格 | 
| [Google Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-ads.html) | 外部 SaaS 平台 | 表格 | 
| [Google Analytics 4](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-analytics-4.html) | 外部 SaaS 平台 | 表格 | 
| [Google Search Console](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-search-console.html) | 外部 SaaS 平台 | 表格 | 
| [GitHub](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-github.html) | 外部 SaaS 平台 | 表格 | 
| [GitLab](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-gitlab.html) | 外部 SaaS 平台 | 表格 | 
| [Infor Nexus](https://docs.aws.amazon.com/appflow/latest/userguide/infor-nexus.html) | 外部 SaaS 平台 | 表格 | 
| [Instagram Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-instagram-ads.html) | 外部 SaaS 平台 | 表格 | 
| [Jira Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-jira-cloud.html) | 外部 SaaS 平台 | 表格 | 
| [LinkedIn 广告](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | 外部 SaaS 平台 | 表格 | 
| [LinkedIn 广告](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | 外部 SaaS 平台 | 表格 | 
| [Mailchimp](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mailchimp.html) | 外部 SaaS 平台 | 表格 | 
| [Marketo](https://docs.aws.amazon.com/appflow/latest/userguide/marketo.html) | 外部 SaaS 平台 | 表格 | 
| [Microsoft Teams](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-microsoft-teams.html) | 外部 SaaS 平台 | 表格 | 
| [Mixpanel](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mixpanel.html) | 外部 SaaS 平台 | 表格 | 
| [Okta](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-okta.html) | 外部 SaaS 平台 | 表格 | 
| [Salesforce](https://docs.aws.amazon.com/appflow/latest/userguide/salesforce.html) | 外部 SaaS 平台 | 表格 | 
| [Salesforce Marketing Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-salesforce-marketing-cloud.html) | 外部 SaaS 平台 | 表格 | 
| [Salesforce Pardot](https://docs.aws.amazon.com/appflow/latest/userguide/pardot.html) | 外部 SaaS 平台 | 表格 | 
| [SAP OData](https://docs.aws.amazon.com/appflow/latest/userguide/sapodata.html) | 外部 SaaS 平台 | 表格 | 
| [SendGrid](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-sendgrid.html) | 外部 SaaS 平台 | 表格 | 
| [ServiceNow](https://docs.aws.amazon.com/appflow/latest/userguide/servicenow.html) | 外部 SaaS 平台 | 表格 | 
| [Singular](https://docs.aws.amazon.com/appflow/latest/userguide/singular.html) | 外部 SaaS 平台 | 表格 | 
| [Slack](https://docs.aws.amazon.com/appflow/latest/userguide/slack.html) | 外部 SaaS 平台 | 表格 | 
| [Stripe](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-stripe.html) | 外部 SaaS 平台 | 表格 | 
| [Trend Micro](https://docs.aws.amazon.com/appflow/latest/userguide/trend-micro.html) | 外部 SaaS 平台 | 表格 | 
| [Typeform](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-typeform.html) | 外部 SaaS 平台 | 表格 | 
| [Veeva](https://docs.aws.amazon.com/appflow/latest/userguide/veeva.html) | 外部 SaaS 平台 | 表格 | 
| [Zendesk](https://docs.aws.amazon.com/appflow/latest/userguide/zendesk.html) | 外部 SaaS 平台 | 表格 | 
| [Zendesk Chat](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-chat.html) | 外部 SaaS 平台 | 表格 | 
| [Zendesk Sell](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sell.html) | 外部 SaaS 平台 | 表格 | 
| [Zendesk Sunshine](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sunshine.html) | 外部 SaaS 平台 | 表格 | 
| [Zoom Meetings](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zoom.html) | 外部 SaaS 平台 | 表格 | 

有关如何导入数据的说明和输入数据要求的信息，如图像的最大文件大小，请参阅[创建数据集](canvas-import-dataset.md)。

Canvas 还在您的应用程序中提供了多个示例数据集以帮助您快速入门。要详细了解您可以尝试的 SageMaker AI 提供的示例数据集，请参阅[使用示例数据集](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-sample-datasets.html)。

将数据集导入 Canvas 后，您可以随时更新数据集。您可以进行手动更新，也可以设置自动更新数据集的时间表。有关更多信息，请参阅 [更新数据集](canvas-update-dataset.md)。

请参阅下面几节，了解有关每种数据集类型的更多信息：

**表格**

要从外部数据来源（例如 Snowflake 数据库或 SaaS 平台）导入数据，必须在 Canvas 应用程序中向数据来源进行身份验证并连接到该数据来源。有关更多信息，请参阅 [连接到数据来源](canvas-connecting-external.md)。

如果您要将大于 5 GB 的数据集从 Amazon S3 导入 Canvas，则可以使用 Amazon Athena 从 Amazon S3 查询和采样数据，从而加快采样速度。

在 Canvas 中创建数据集后，您可以使用 Data Wrangler 的数据准备功能来准备和转换数据。您可以使用 Data Wrangler 处理缺失值、转换功能、将多个数据集合并为单个数据集等。有关更多信息，请参阅 [数据准备](canvas-data-prep.md)。

**提示**  
只要将数据排列成表格，就可以连接来自 Amazon Redshift、Amazon Athena 或 Snowflake 等不同来源的数据集。

**图像**

有关如何编辑图像数据集以及如何执行诸如分配或重新分配标签、添加图像或删除图像之类的任务的信息，请参阅[编辑图像数据集](canvas-edit-image.md)。

# 创建数据集
<a name="canvas-import-dataset"></a>

**注意**  
如果您要将大于 5 GB 的数据集导入 Amazon SageMaker Canvas，我们建议您使用 Canvas 中的 [Data Wrangler 功能](canvas-data-prep.md)来创建数据流。Data Wrangler 支持高级数据准备功能，例如[连接](canvas-transform.md#canvas-transform-join)和[串联](canvas-transform.md#canvas-transform-concatenate)数据。创建数据流后，您可以将数据流导出为 Canvas 数据集，然后开始构建模型。有关更多信息，请参阅 [导出以创建模型](canvas-processing-export-model.md)。

以下各节介绍如何在 Amazon C SageMaker anvas 中创建数据集。对于自定义模型，您可以为表格和图像数据创建数据集。对于 Ready-to-use模型，您可以使用表格和图像数据集以及文档数据集。根据以下信息选择工作流：
+ 对于分类、数值、文本和时间序列数据，请参阅[导入表格数据](#canvas-import-dataset-tabular)。
+ 对于图像数据，请参阅[导入图像数据](#canvas-import-dataset-image)。
+ 有关文档数据，请参阅 [导入文档数据](#canvas-ready-to-use-import-document)。

一个数据集可以由多个文件组成。例如，您可能有多个 CSV 格式的库存数据文件。只要这些文件的架构（或列名和数据类型）匹配，就可以将这些文件作为数据集一起上传。

Canvas 还支持管理数据集的多个版本。创建数据集时，第一个版本将标记为 `V1`。您可以通过更新数据集来创建数据集的新版本。您可以手动更新，也可以设置自动使用新数据更新数据集的时间表。有关更多信息，请参阅 [更新数据集](canvas-update-dataset.md)。

将数据导入 Canvas 时，请确保数据符合下表中的要求。这些限制因您正在构建的模型类型不同而异。


| 限制 | 2 类别、3\$1 类别、数值和时间序列模型 | 文本预测模型 | 图像预测模型 | \$1模型的 Ready-to-use文档数据 | 
| --- | --- | --- | --- | --- | 
| 支持的文件类型 |  CSV 和 Parquet（本地上传、Amazon S3 或数据库） JSON（数据库）  |  CSV 和 Parquet（本地上传、Amazon S3 或数据库） JSON（数据库）  | JPG、PNG | PDF、JPG、PNG、TIFF | 
| 最大文件大小 |  本地上传：5 GB 数据源： PBs  |  本地上传：5 GB 数据源： PBs  | 每张图像 30 MB | 每个文档 5 MB | 
| 一次可以上传的最大文件数 | 30 | 30 | 不适用 | 不适用 | 
| 最大列数 | 1000 | 1000 | 不适用 | 不适用 | 
| **快速构建**的最大条目数（行、图像或文档） | 不适用 | 7500 行 | 5000 张图像 | 不适用 | 
| **标准构建**的最大条目数（行、图像或文档） | 不适用 | 15 万行 | 18 万张图像 | 不适用 | 
| **快速构建**的最小条目（行）数 |  2 类别：500 行 3\$1 类别、数值、时间序列：不适用  | 不适用 | 不适用 | 不适用 | 
| **标准构建**的最小条目数（行、图像或文档） | 250 行 | 50 行 | 50 张图像 | 不适用 | 
|  每个标签的最小条目数（行或图像） | 不适用 | 25 行 | 25 行 | 不适用 | 
| 最小标签数量 |  2 类别：2 3\$1 类别：3 数值、时间序列：不适用  | 2 | 2 | 不适用 | 
|  随机抽样的最小样本量 | 500 | 不适用 | 不适用 | 不适用 | 
|  随机抽样的最小样本量 | 200,000 | 不适用 | 不适用 | 不适用 | 
| 最大标签数量 |  2 类别：2 3\$1 类别、数值、时间序列：不适用  | 1000 | 1000 | 不适用 | 

\$1目前只有接受文档数据的[Ready-to-use 模型](canvas-ready-to-use-models.md)才支持文档数据。您无法使用文档数据构建自定义模型。

另请注意以下限制：
+ 从 Amazon S3 存储桶导入数据时，请确保 Amazon S3 存储桶的名称不包含 `.`。如果您的存储桶名称包含 `.`，则在尝试将数据导入 Canvas 时可能会出错。
+ 对于表格数据，Canvas 不允许在本地上传和 Amazon S3 导入时选择任何扩展名为 .csv、.parquet、.parq 和 .pqt 以外的文件。CSV 文件可以使用任何常用或自定义的分隔符，除非是表示新行，否则不得使用换行符。
+ 对于使用 Parquet 文件的表格数据，请注意以下几点：
  + Parquet 文件不能包含地图和列表等复杂类型。
  + Parquet 文件的列名不能包含空格。
  + 如果使用压缩，Parquet 文件必须使用 gzip 或 snappy 压缩类型。有关上述压缩类型的更多信息，请参阅 [gzip 文档](https://www.gzip.org/)和 [snappy 文档](https://github.com/google/snappy)。
+ 对于图像数据，如果您有任何未标注的图像，则必须在构建模型之前对其进行标注。有关如何在 Canvas 应用程序中为图像分配标签的信息，请参阅[编辑图像数据集](canvas-edit-image.md)。
+ 如果您设置了自动数据集更新或自动批量预测配置，则在 Canvas 应用程序中总共只能创建 20 个配置。有关更多信息，请参阅 [如何管理自动化](canvas-manage-automations.md)。

导入数据集后，您可以随时在**数据集**页面上查看自己的数据集。

## 导入表格数据
<a name="canvas-import-dataset-tabular"></a>

使用表格数据集，您可以构建分类、数值、时间序列预测和文本预测模型。查看前面**导入数据集**部分中的限制表，确保您的数据符合表格数据的要求。

使用以下过程将表格数据集导入 Canvas：

1. 打开你的 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**数据集**。

1. 选择**导入数据**。

1. 从下拉菜单中，选择**表格**。

1. 在弹出的对话框中，在**数据集名称**字段中，输入数据集的名称，然后选择**创建**。

1. 在**创建表格数据集**页面上，打开**数据来源**下拉菜单。

1. 选择您的数据来源：
   + 要从计算机上传文件，请选择**本地上传**。
   + 要从其他来源（例如 Amazon S3 存储桶或 Snowflake 数据库）导入数据，请在**搜索数据来源栏**中搜索您的数据来源。然后，选择所需数据来源对应的图块。
**注意**  
您只能从具有活动连接的图块中导入数据。如果要连接到无法使用的数据来源，请联系您的管理员。如果您是管理员，请参阅[连接到数据来源](canvas-connecting-external.md)。

   以下屏幕截图显示**数据来源**下拉菜单。  
![\[显示数据来源下拉菜单以及在搜索栏中搜索数据来源的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/import-data-choose-source.png)

1. （可选）如果您是首次连接到 Amazon Redshift 或 Snowflake 数据库，则会出现一个用于创建连接的对话框。在对话框中填写您的凭证，然后选择**创建连接**。如果您已经有连接，请选择您的连接。

1. 从您的数据来源中，选择要导入的文件。对于本地上传和从 Amazon S3 导入，您可以选择文件。仅适用于 Amazon S3，您还可以选择在**输入 S3 端点**字段中直接输入 S3 URI、别名、存储桶的 ARN 或 S3 接入点，然后选择要导入的文件。对于数据库源，您可以使用左侧导航窗格中的 drag-and-drop数据表。

1. （可选）对于支持 SQL 查询的表格数据来源（例如 Amazon Redshift、Amazon Athena 或 Snowflake），您可以选择**编辑 SQL**，在导入前进行 SQL 查询。

   以下屏幕截图显示了 Amazon Athena 数据来源的**编辑 SQL** 视图。  
![\[显示 Amazon Athena 数据的编辑 SQL 视图中 SQL 查询的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/import-data-edit-sql.png)

1. （可选）选择**预览数据集**，在导入数据前预览数据。

1. 在**导入设置**中，输入**数据集名称**或使用默认数据集名称。

1. （可选）对于从 Amazon S3 导入的数据，系统会显示**高级**设置，您可以填写以下字段：

   1. 如果您要使用数据集的第一行作为列名，请切换**使用第一行作为标题**选项。如果您选择了多个文件，这适用于每个文件。

   1. 如果您要导入的是 CSV 文件，请在**文件编码 (CSV)** 下拉列表中选择数据集文件的编码。默认为 `UTF-8`。

   1. 在**分隔符**下拉列表中，选择用于分隔数据中每个单元格的分隔符。默认分隔符为 `,`。您还可以指定自定义分隔符。

   1. 如果您希望 Canvas 手动解析整个数据集的多行单元格，请选择**多行检测**。默认情况下，此选项处于未选中状态，Canvas 会通过对数据进行采样来确定是否使用多行支持。但是，Canvas 可能检测不到样本中的任何多行单元格。如果您有多行单元格，我们建议您选择**多行检测**选项，以强制 Canvas 检查整个数据集是否有多行单元格。

1. 如果您已准备好导入数据，请选择**创建数据集**。

在数据集导入 Canvas 的过程中，您可以看到**数据集**页面上列出了您的数据集。在此页面上，您可以[查看数据集详细信息](#canvas-view-dataset-details)。

当数据集的**状态**显示为`Ready`时，表示 Canvas 成功导入了您的数据，您可以继续[构建模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)。

如果您已连接到数据来源，例如 Amazon Redshift 数据库或 SaaS 连接器，则可以返回该连接。对于 Amazon Redshift 和 Snowflake，您可以添加另一个连接，方法是创建另一个数据集，返回**导入数据**页面，并选择该连接的**数据来源**图块。从下拉菜单中，您可以打开之前的连接或选择**添加连接**。

**注意**  
对于 SaaS 平台，每个数据来源只能有一个连接。

## 导入图像数据
<a name="canvas-import-dataset-image"></a>

使用图像数据集，您可以构建单标签图像预测自定义模型，用于预测图像的标签。查看前面的**导入数据集**部分中的限制，以确保您的图像数据集符合图像数据的要求。

**注意**  
您只能通过本地文件上传或 Amazon S3 存储桶导入图像数据集。此外，对于图像数据集，每个标签必须至少有 25 张图像。

使用以下过程将图像数据集导入 Canvas：

1. 打开你的 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**数据集**。

1. 选择**导入数据**。

1. 从下拉菜单中，选择**图像**。

1. 在弹出的对话框中，在**数据集名称**字段中，输入数据集的名称，然后选择**创建**。

1. 在**导入**页面上，打开**数据来源**下拉菜单。

1. 选择您的数据来源。要从计算机上传文件，请选择**本地上传**。要从 Amazon S3 导入文件，请选择 **Amazon S3**。

1. 从您的电脑或 Amazon S3 存储桶中选择要上传的图像或图像文件夹。

1. 如果您已准备好导入数据，请选择**导入数据**。

在数据集导入 Canvas 的过程中，您可以看到**数据集**页面上列出了您的数据集。在此页面上，您可以[查看数据集详细信息](#canvas-view-dataset-details)。

当数据集的**状态**显示为`Ready`时，表示 Canvas 成功导入了您的数据，您可以继续[构建模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)。

在构建模型时，您可以编辑图像数据集，也可以分配或重新分配标签、添加图像或从数据集中删除图像。有关如何编辑图像数据集的更多信息，请参阅[编辑图像数据集](canvas-edit-image.md)。

## 导入文档数据
<a name="canvas-ready-to-use-import-document"></a>

费用分析、身份证件分析、文档分析和文档查询 Ready-to-use模型支持文档数据。您无法使用文档数据构建自定义模型。

使用文档数据集，您可以生成支出分析、身份证件分析、文档分析和文档查询 Ready-to-use模型的预测。查看[创建数据集](#canvas-import-dataset)一节中的限制表，确保您的文档数据集符合文档数据的要求。

**注意**  
您只能通过本地文件上传或 Amazon S3 存储桶导入文档数据集。

使用以下过程将文档数据集导入 Canvas：

1. 打开你的 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**数据集**。

1. 选择**导入数据**。

1. 从下拉菜单中选择**文档**。

1. 在弹出的对话框中，在**数据集名称**字段中，输入数据集的名称，然后选择**创建**。

1. 在**导入**页面上，打开**数据来源**下拉菜单。

1. 选择您的数据来源。要从计算机上传文件，请选择**本地上传**。要从 Amazon S3 导入文件，请选择 **Amazon S3**。

1. 从您的计算机或 Amazon S3 存储桶中选择要上传的文档文件。

1. 如果您已准备好导入数据，请选择**导入数据**。

在数据集导入 Canvas 的过程中，您可以看到**数据集**页面上列出了您的数据集。在此页面上，您可以[查看数据集详细信息](#canvas-view-dataset-details)。

当数据集的**状态**显示为`Ready`时，表示 Canvas 已成功导入您的数据。

在**数据集**页面上，您可以选择数据集进行预览，最多可显示数据集的前 100 个文档。

## 查看数据集详细信息
<a name="canvas-view-dataset-details"></a>



对于每个数据集，您可以查看数据集中的所有文件、数据集的版本历史记录以及该数据集的任何自动更新配置。在**数据集**页面中，您还可以启动诸如[更新数据集](canvas-update-dataset.md)或[自定义模型的工作原理](canvas-build-model.md)之类的操作。

要查看数据集的详细信息，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**数据集**。

1. 从数据集列表中选择您的数据集。

在**数据**选项卡上，您可以看到数据的预览。如果选择**数据集详细信息**，则可以查看数据集中的所有文件。选择一个文件以在预览中仅查看该文件中的数据。对于图像数据集，预览仅显示数据集的前 100 张图像。

在**版本历史记录**选项卡上，您可以看到数据集所有版本的列表。每当更新数据集时，都会生成一个新版本。要了解有关更新数据集的更多信息，请参阅[更新数据集](canvas-update-dataset.md)。以下屏幕截图显示了 Canvas 应用程序中的**版本历史记录**选项卡。

![\[数据集版本历史记录选项卡的屏幕截图，其中包含数据集版本列表。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-version-history.png)


在**自动更新**选项卡上，您可以启用数据集自动更新，并设置配置以定期更新数据集。要了解有关设置数据集自动更新的更多信息，请参阅[配置数据集自动更新](canvas-update-dataset-auto.md)。以下屏幕截图显示了开启自动更新的**自动更新**选项卡，以及已对数据集执行的自动更新作业的列表。

![\[显示已开启自动更新和自动更新作业列表的数据集自动更新选项卡。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-auto-updates.png)


# 更新数据集
<a name="canvas-update-dataset"></a>

将初始数据集导入 Amazon SageMaker Canvas 后，您可能还有其他数据要添加到数据集中。例如，您可能会在每周末获得想要添加到数据集中的库存数据。您可以更新现有数据集并在其中添加或删除文件，而不必多次导入数据。

**注意**  
您只能更新通过本地上传或 Amazon S3 导入的数据集。

您可以手动或自动更新数据集。有关数据集自动更新的更多信息，请参阅 [配置数据集自动更新](canvas-update-dataset-auto.md)。

每次更新数据集时，Canvas 都会为数据集创建一个新版本。您只能使用最新版本的数据集来构建模型或生成预测。有关查看数据集版本历史记录的更多信息，请参阅[查看数据集详细信息](canvas-import-dataset.md#canvas-view-dataset-details)。

您还可以将数据集更新与自动批量预测结合使用，这样每当您更新数据集时，都会启动批量预测作业。有关更多信息，请参阅 [C SageMaker anvas 中的批量预测](canvas-make-predictions-batch.md)。

下面几节介绍如何对数据集进行手动更新。

## 手动更新数据集
<a name="canvas-update-dataset-manual"></a>

要手动更新，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**数据集**。

1. 从数据集列表中，选择要更新的数据集。

1. 选择**更新数据集**下拉菜单，然后选择**手动更新**。您会进入导入数据工作流。

1. 从**数据来源**下拉菜单中，选择**本地上传**或 **Amazon S3**。

1. 该页面显示您的数据预览。在这里，您可以在数据集中添加或删除文件。如果要导入表格数据，则新文件的架构（列名和数据类型）必须与现有文件的架构相匹配。此外，新文件不得超过最大数据集大小或文件大小。有关这些限制的更多信息，请参阅[导入数据集](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html)。
**注意**  
如果您添加与数据集中现有文件同名的文件，则新文件将覆盖该文件的旧版本。

1. 如果您已准备好保存更改，请选择**更新数据集**。

现在，您应该有了一个新版本的数据集。

在**数据集**页面上，您可以选择**版本历史记录**选项卡，查看数据集的所有版本以及手动和自动更新的历史记录。

# 配置数据集自动更新
<a name="canvas-update-dataset-auto"></a>

将初始数据集导入 Amazon SageMaker Canvas 后，您可能还有其他数据要添加到数据集中。例如，您可能会在每周末获得想要添加到数据集中的库存数据。您可以更新现有数据集并在其中添加或删除文件，而不必多次导入数据。

**注意**  
您只能更新通过本地上传或 Amazon S3 导入的数据集。

通过自动更新数据集，您可以指定 Canvas 按您指定的频率检查文件的位置。如果您在更新期间导入新文件，则这些文件的架构必须与现有数据集完全匹配。

每次更新数据集时，Canvas 都会为数据集创建一个新版本。您只能使用最新版本的数据集来构建模型或生成预测。有关查看数据集版本历史记录的更多信息，请参阅[查看数据集详细信息](canvas-import-dataset.md#canvas-view-dataset-details)。

您还可以将数据集更新与自动批量预测结合使用，这样每当您更新数据集时，都会启动批量预测作业。有关更多信息，请参阅 [C SageMaker anvas 中的批量预测](canvas-make-predictions-batch.md)。

下面几节介绍如何对数据集进行自动更新。

自动更新是指为 Canvas 设置一个配置，使其按指定频率更新数据集。如果您经常收到要添加到数据集的新数据文件，我们建议您使用此选项。

设置自动更新配置时，您可以指定上传文件的 Amazon S3 位置以及 Canvas 检查该位置和导入文件的频率。Canvas 更新数据集的每个实例都称为*作业*。对于每个作业，Canvas 都会导入 Amazon S3 位置中的所有文件。如果您有与数据集中现有文件同名的新文件，Canvas 会用新文件覆盖旧文件。

对于数据集的自动更新，Canvas 不执行架构验证。如果在自动更新期间导入的文件架构与现有文件的架构不匹配或超过大小限制（有关文件大小限制表，请参阅[导入数据集](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html)），则作业运行时会出现错误。

**注意**  
在 Canvas 应用程序中，您最多只能设置 20 个自动配置。此外，Canvas 仅在您登录 Canvas 应用程序时才会执行自动更新。如果您从 Canvas 应用程序注销，则自动更新会暂停，直到您重新登录。

要配置数据集的自动更新，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**数据集**。

1. 从数据集列表中，选择要更新的数据集。

1. 选择**更新数据集**下拉菜单，然后选择**自动更新**。您将进入数据集的**自动更新**选项卡。

1. 打开**启用自动更新**开关。

1. 在**指定数据来源**中，输入您计划定期上传文件的文件夹的 Amazon S3 路径。

1. 在**选择频率**中，选择**每小时**、**每周**或**每天**。

1. 在**指定开始时间**中，使用日历和时间选择器选择您希望第一个自动更新作业何时开始。

1. 准备好创建自动更新配置后，选择**保存**。

Canvas 会在指定的开始时间启动自动更新序列的第一个作业。

# 查看数据集自动更新作业
<a name="canvas-update-dataset-auto-view"></a>

要在 Amazon SageMaker Canvas 中查看自动更新数据集的任务历史记录，请在数据集详情页面上，选择**自动更新**选项卡。

对数据集的每次自动更新都会在**作业历史记录**部分下的**自动更新**选项卡中显示为作业。对于每个作业，您可以看到以下内容：
+ **作业创建时间** – Canvas 开始更新数据集的时间戳。
+ **文件** - 数据集中的文件数。
+ **单元格（列 x 行）**- 数据集中的列数和行数。
+ **状态** - 更新后数据集的状态。如果作业成功，则状态为**就绪**。如果作业因任何原因失败，则状态为**失败**，您可以将鼠标悬停在状态上以获取更多详细信息。

# 编辑数据集自动更新配置
<a name="canvas-update-dataset-auto-edit"></a>

您可能需要更改数据集的自动更新配置，例如更改更新频率。您可能还需要关闭自动更新配置以暂停对数据集的更新。

要更改数据集的自动更新配置，请转到数据集的**自动更新**选项卡，然后选择**编辑**以更改配置。

要暂停数据集更新，请关闭自动配置。您可以前往数据集的**自动更新**选项卡并关闭**启用自动更新**开关，从而关闭自动更新。您可以随时重新打开此开关以恢复更新计划。

要了解如何删除配置，请参阅[删除自动配置](canvas-manage-automations-delete.md)。

# 连接到数据来源
<a name="canvas-connecting-external"></a>

在 Amazon SageMaker Canvas 中，您可以使用 JDBC 连接器通过 AWS 服务、SaaS 平台或其他数据库从本地文件系统以外的位置导入数据。例如，您可能想从 Amazon Redshift 的数据仓库中导入表，或者想导入 Google Analytics 数据。

通过**导入**工作流在 Canvas 应用程序中导入数据时，您可以选择数据来源，然后选择要导入的数据。对于某些数据来源（如 Snowflake 和 Amazon Redshift），必须指定您的凭证并添加与数据来源的连接。

以下屏幕截图显示了**导入**工作流中的数据来源工具栏，其中突出显示了所有可用的数据来源。您只能从可用的数据来源中导入数据。如果您所需的数据来源不可用，请联系您的管理员。

![\[Canvas 中导入数据页面上的数据来源下拉菜单。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/data-sources.png)


以下几节提供有关建立与外部数据来源的连接以及从外部数据来源导入数据的信息。请先查看以下部分，以确定从数据来源导入数据所需的权限。

## Permissions
<a name="canvas-connecting-external-permissions"></a>

查看以下信息，以确保您拥有从数据来源导入数据的必要权限：
+ **Amazon S3：**只要用户拥有访问 Amazon S3 存储桶的权限，就可以从任何这样的存储桶导入数据。有关使用 AWS IAM 控制对 Amazon S3 存储桶的访问的更多信息，请参阅 Amazon S3 *用户指南*[中的 Amazon S3 中的身份和访问管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)。
+ **Amazon Athena**：如果您[AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)将策略和[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)策略附加到用户的执行角色上，则可以通过 A AWS Glue Data Catalog mazon Athena 查询您的策略。如果您是 Athena 工作组的成员，请确保 Canvas 用户有权对数据运行 Athena 查询。有关更多信息，请参阅《Amazon Athena 用户指南》**中的[使用工作组运行查询](https://docs.aws.amazon.com/athena/latest/ug/workgroups.html)。
+ **Amazon DocumentDB：**只要您拥有连接到数据库的凭证（用户名和密码），并拥有附加到用户执行角色的最低基本 Canvas 权限，您就可以从任何 Amazon DocumentDB 数据库导入数据。有关 Canvas 权限的更多信息，请参阅 [设置 Amazon C SageMaker anvas 的先决条件](canvas-getting-started.md#canvas-prerequisites)。
+ **Amazon Redshift：**要授予您自己从 Amazon Redshift 导入数据的必要权限，请参阅[授予用户导入 Amazon Redshift 数据的权限](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html)。
+ **Amazon RDS：**如果您将[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)策略附加到用户的执行角色，那么您将能够从 Canvas 访问您的 Amazon RDS 数据库。
+ **SaaS 平台：**如果您将[AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)策略和[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)策略附加到用户的执行角色，那么您就拥有从 SaaS 平台导入数据的必要权限。有关连接到特定 SaaS 连接器的更多信息，请参阅[在 Canvas 中使用 SaaS 连接器](#canvas-connecting-external-appflow)。
+ **JDBC 连接器：**对于 Databricks、MySQL 或 MariaDB 等数据库源，在尝试从 Canvas 进行连接之前，必须先在源数据库上启用用户名和密码身份验证。如果要连接到 Databricks 数据库，必须有包含必要凭证的 JDBC URL。

## Connect 连接到存储在中的数据库 AWS
<a name="canvas-connecting-internal-database"></a>

您可能需要导入存储在中的数据 AWS。您可以从 Amazon S3 导入数据，使用 Amazon Athena 在中查询数据库，从 Amazon RDS 导入数据，或者连接到预配置的 [Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) Redshift 数据库（不 AWS Glue Data Catalog是 Redshift Serverless）。

您可以创建多个到 Amazon Redshift 的连接。对于 Amazon Athena，您可以访问 [AWS Glue Data Catalog](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/aws-glue-data-catalog.html) 中的任何数据库。对于 Amazon S3，只要您拥有必要的权限，就可以从存储桶导入数据。

请查看以下几节，了解更多详细信息。

### 连接 Amazon S3、Amazon Athena 或 Amazon RDS 中的数据
<a name="canvas-connecting-internal-database-s3-athena"></a>

对于 Amazon S3，只要您拥有访问 Amazon S3 存储桶的权限，就可以从该存储桶导入数据。

对于亚马逊 Athena，只要您拥有通过亚马逊 [A](https://docs.aws.amazon.com/athena/latest/ug/manage-queries-control-costs-with-workgroups.html) thena 工作组的权限，您就可以访问 AWS Glue Data Catalog 自己的数据库。

对于 Amazon RDS，如果您将[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)策略附加到您的用户角色上，则可以将数据从 Amazon RDS 数据库导入到 Canvas。

要从 Amazon S3 存储桶导入数据，或使用 Amazon Athena 运行查询和导入数据表，请参阅[创建数据集](canvas-import-dataset.md)。您只能从 Amazon Athena 导入表格数据，但可以从 Amazon S3 导入表格和图像数据。

### 连接到 Amazon DocumentDB 数据库
<a name="canvas-connecting-docdb"></a>

Amazon DocumentDB 是一种完全托管的无服务器文档数据库服务。您可以将存储在 Amazon DocumentDB 数据库中的非结构化文档数据作为表格数据集导 SageMaker 入 Canvas，然后使用这些数据构建机器学习模型。

**重要**  
您的 SageMaker AI 域必须配置为**仅限 VPC 模式才能**添加与 Amazon DocumentDB 的连接。您只能访问与 Canvas 应用程序位于同一 Amazon VPC 中的 Amazon DocumentDB 集群。此外，Canvas 只能连接到支持 TLS 的 Amazon DocumentDB 集群。有关如何在**仅限 VPC** 模式下设置 Canvas 的更多信息，请参阅 [在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas](canvas-vpc.md)。

要从 Amazon DocumentDB 数据库导入数据，您必须拥有访问 Amazon DocumentDB 数据库的凭证，并在创建数据库连接时指定用户名和密码。您可以通过修改 Amazon DocumentDB 用户权限来配置更精细的权限并限制访问权限。要了解有关 Amazon DocumentDB 中访问控制的更多信息，请参阅[《Amazon DocumentDB 开发人员指南》](https://docs.aws.amazon.com/documentdb/latest/developerguide/role_based_access_control.html)中的*使用基于角色的访问控制进行数据库访问*。

当您从 Amazon DocumentDB 导入时，Canvas 会将字段映射到表中的列，从而将非结构化数据转换为表格数据集。为数据中的每个复杂字段（或嵌套结构）创建其他表，其中的列与复杂字段的子字段相对应。有关此过程的更多详细信息以及架构转换示例，请参阅 [Amazon DocumentDB JDBC 驱动程序](https://github.com/aws/amazon-documentdb-jdbc-driver/blob/develop/src/markdown/schema/schema-discovery.md)架构发现页面。 GitHub 

Canvas 只能连接到 Amazon DocumentDB 中的单个数据库。要从不同的数据库导入数据，您必须创建新的连接。

您可以使用以下方法将 Amazon DocumentDB 中的数据导入 Canvas：
+ [创建数据集](canvas-import-dataset.md)。您可以在 Canvas 中导入 Amazon DocumentDB 数据并创建表格数据集。如果您选择此方法，请确保按照[导入表格数据](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html#canvas-import-dataset-tabular)步骤操作。
+ [创建数据流](canvas-data-flow.md)。您可以在 Canvas 中创建数据准备管道，并将 Amazon DocumentDB 数据库添加为数据来源。

要继续导入数据，请按照前面列表中链接的方法之一操作。

当您在工作流程中选择数据来源的步骤时（创建数据集的步骤 6 或创建数据流的步骤 8），请执行以下操作：

1. 在**数据来源**中，打开下拉菜单并选择 **DocumentDB**。

1. 选择**添加连接**。

1. 在对话框中指定您的 Amazon DocumentDB 凭证：

   1. 输入**连接名称**。这是 Canvas 用来识别此连接的名称。

   1. 在**集群**中，选择 Amazon DocumentDB 中存储数据的集群。Canvas 会自动在下拉菜单中填充与 Canvas 应用程序位于同一 VPC 中的 Amazon DocumentDB 集群。

   1. 输入 Amazon DocumentDB 集群的**用户名**。

   1. 输入 Amazon DocumentDB 集群的**密码**。

   1. 输入要连接到的**数据库**的名称。

   1. **读取首选项**选项决定了 Canvas 从集群上哪些类型的实例读取数据。选择以下选项之一：
      + **次要首选**：Canvas 默认为从集群的次要实例中读取，但如果次要实例不可用，则 Canvas 会从主实例中读取。
      + **次要**：Canvas 仅从集群的次要实例读取数据，从而避免读取操作干扰集群的正常读写操作。

   1. 选择**添加连接**。下图显示了带有 Amazon DocumentDB 连接前面字段的对话框。  
![\[Canvas 中的添加新的 DocumentDB 连接对话框的界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/add-docdb-connection.png)

现在您应该连接到了 Amazon DocumentDB，您可以在 Canvas 中使用 Amazon DocumentDB 数据创建数据集或数据流。

### 连接到 Amazon Redshift 数据库
<a name="canvas-connecting-redshift"></a>

您可以从组织保存数据的数据仓库 Amazon Redshift 中导入数据。在从 Amazon Redshift 导入数据之前，您使用 AWS 的 IAM 角色必须附加`AmazonRedshiftFullAccess`托管策略。有关如何附加此策略的说明，请参阅[授予用户导入 Amazon Redshift 数据的权限](canvas-redshift-permissions.md)。

要从 Amazon Redshift 导入数据，您需要执行以下操作：

1. 创建与 Amazon Redshift 数据库的连接。

1. 选择要导入的数据。

1. 导入数据。

您可以使用 Amazon Redshift 编辑器将数据集拖到导入窗格上，然后将其导入到 Canvas 中 SageMaker 。要更好地控制数据集中返回的值，可以使用以下方法：
+ SQL 查询
+ 联接

通过 SQL 查询，您可以自定义导入数据集中值的方式。例如，您可以指定数据集中返回的列或列的值范围。

您可以使用联接将来自 Amazon Redshift 的多个数据集合并到一个数据集中。您可以将数据集从 Amazon Redshift 拖动到面板中，以便您能够联接数据集。

您可以使用 SQL 编辑器编辑已联接的数据集，并将联接的数据集转换为单个节点。您可以将另一个数据集联接到该节点。你可以将你选择的数据导入 SageMaker 画布。

使用以下过程从 Amazon Redshift 导入数据。

1. 在 SageMaker Canvas 应用程序中，转到**数据集**页面。

1. 选择**导入数据**，然后从下拉菜单中选择**表格**。

1. 输入数据集的名称，然后选择**创建**。

1. 对于**数据来源**，打开下拉菜单并选择 **Redshift**。

1. 选择**添加连接**。

1. 在对话框中指定您的 Amazon Redshift 凭证：

   1. 对于**身份验证方法**，请选择 **IAM**。

   1. 输入**集群标识符**以指定要连接到哪个集群。只输入集群标识符，不输入 Amazon Redshift 集群的完整端点。

   1. 输入要连接的数据库的**数据库名称**。

   1. 输入**数据库用户**以识别要用来连接到数据库的用户。

   1. 对于 **ARN**，输入 IAM 角色 ARN，该角色是 Amazon Redshift 集群在向 Amazon S3 移动和写入数据时应代入的角色。有关此角色的更多信息，请参阅《[亚马逊 Redshift 管理指南》中的授权亚马逊 Reds *hift* 代表您访问 AWS 其他服务](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html)。

   1. 输入**连接名称**。这是 Canvas 用来识别此连接的名称。

1. 从显示连接名称的选项卡中，将要导入的 .csv 文件拖动到**拖放表以导入**窗格。

1. 可选：将其他表拖到导入窗格中。您可以使用 GUI 来联接表。要使联接更具体，请选择**在 SQL 中编辑**。

1. 可选：如果您使用 SQL 查询数据，则可以选择**上下文**通过指定以下内容的值来向连接添加上下文：
   + **数据仓库**
   + **数据库**
   + **架构**

1. 选择**导入数据**。

下图显示了为 Amazon Redshift 连接指定的字段的示例。

![\[Canvas 中的添加新的 Redshift 连接对话框的界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-add-connection.png)


下图显示了用于在 Amazon Redshift 中联接数据集的页面。

![\[Canvas 中导入页面的界面截图，显示正在连接的两个数据集。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-join.png)


下图显示了用于在 Amazon Redshift 中编辑联接的 SQL 查询。

![\[Canvas 中导入页面上编辑 SQL 编辑器中的 SQL 查询界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-edit-sql.png)


## 使用 JDBC 连接器连接数据
<a name="canvas-connecting-jdbc"></a>

使用 JDBC，您可以从 Databricks、 SQLServer MySQL、PostgreSQL、MariaDB、Amazon RDS 和 Amazon Aurora 等来源连接到数据库。

您必须确保拥有从 Canvas 创建连接所需的凭证和权限。
+ 对于 Databricks，必须提供 JDBC URL。不同 Databricks 实例的 URL 格式可能有所不同。有关查找 URL 以及在其中指定参数的信息，请参阅 Databricks 文档中的 [JDBC 配置和连接参数](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#jdbc-configuration-and-connection-parameters)。下面举例说明 URL 的格式：`jdbc:spark://aws-sagemaker-datawrangler.cloud.databricks.com:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/3122619508517275/0909-200301-cut318;AuthMech=3;UID=token;PWD=personal-access-token`
+ 对于其他数据库源，必须设置用户名和密码身份验证，然后在从 Canvas 连接到数据库时指定这些凭证。

此外，您的数据来源必须可以通过公共互联网访问，如果 Canvas 应用程序以**仅 VPC** 模式运行，那么数据来源必须运行在同一个 VPC 中。有关在 VPC 中配置 Amazon RDS 数据库的更多信息，请参阅 [Amazon RDS 用户指南中的亚马逊 VPC VPCs 和](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) *Amazon RDS*。

配置数据来源凭证后，您可以登录 Canvas 应用程序并创建与数据来源的连接。在创建连接时指定您的凭证（对于 Databricks，则指定 URL）。

## 使用 Connect 连接到数据源 OAuth
<a name="canvas-connecting-oauth"></a>

Canvas 支持使用 OAuth 身份验证方法来连接你在 Snowflake 和 Salesforce Data Cloud 中的数据。 [OAuth](https://oauth.net/2/)是一个常用的身份验证平台，用于在不共享密码的情况下授予对资源的访问权限。

**注意**  
只能为每个数据源建立一个 OAuth 连接。

要授权连接，必须按照[使用设置与数据源的连接 OAuth](canvas-setting-up-oauth.md)中所述的初始设置进行操作。

设置 OAuth 凭据后，您可以执行以下操作来添加 Snowflake 或 Salesforce Data Cloud 连接： OAuth

1. 登录到 Canvas 应用程序。

1. 创建表格数据集。当系统提示上传数据时，请选择 Snowflake 或 Salesforce Data Cloud 作为数据来源。

1. 创建与 Snowflake 或 Salesforce Data Cloud 数据来源的新连接。指定 OAuth 为身份验证方法并输入您的连接详细信息。

现在，您应该能够从 Snowflake 或 Salesforce Data Cloud 中的数据库导入数据。

## 连接到 SaaS 平台
<a name="canvas-connecting-saas"></a>

您可以从 Snowflake 和其他 40 多个外部 SaaS 平台导入数据。有关连接器的完整列表，请参阅[导入数据](canvas-importing-data.md)中的表。

**注意**  
您只能从 SaaS 平台导入表格数据，例如数据表。

### 在 Canvas 中使用 Snowflake
<a name="canvas-using-snowflake"></a>

Snowflake 是一项数据存储和分析服务，你可以将数据从 Snowflake 导入 Canvas。 SageMaker 有关 Snowflake 的更多信息，请参阅 [Snowflake 文档](https://www.snowflake.com/en/)。

您可以通过执行以下操作从 Snowflake 账户导入数据：

1. 创建与 Snowflake 数据库的连接。

1. 通过将表格从左侧导航菜单拖放到编辑器中来选择要导入的数据。

1. 导入数据。

您可以使用 Snowflake 编辑器将数据集拖到导入窗格上，然后将其导入到 Canvas 中 SageMaker 。要更好地控制数据集中返回的值，可以使用以下方法：
+ SQL 查询
+ 联接

通过 SQL 查询，您可以自定义导入数据集中值的方式。例如，您可以指定数据集中返回的列或列的值范围。

在使用 SQL 或 Canvas 界面导入 Canvas 之前，您可以将多个 Snowflake 数据集联接到单个数据集中。您可以将数据集从 Snowflake 拖动到面板中，以便可以联接数据集，也可以在 SQL 中编辑联接，并将 SQL 转换为单个节点。您可以将其他节点联接到已转换的节点。然后，您可以将已联接的数据集合并到一个节点，并将节点联接到不同的 Snowflake 数据集。最后，您可以将所选数据导入 Canvas。

使用以下步骤将数据从 Snowflake 导入到 Ama SageMaker zon Canvas。

1. 在 SageMaker Canvas 应用程序中，转到**数据集**页面。

1. 选择**导入数据**，然后从下拉菜单中选择**表格**。

1. 输入数据集的名称，然后选择**创建**。

1. 对于**数据来源**，打开下拉菜单并选择 **Snowflake**。

1. 选择**添加连接**。

1. 在**添加新的 Snowflake 连接**对话框中，指定您的 Snowflake 凭证。对于**身份验证方法**，请选择以下选项之一：
   + **基本 - 用户名密码** - 提供您的 Snowflake 帐户 ID、用户名和密码。
   + **ARN** — 为了更好地保护您的 Snowflake 凭证，请提供包含您的凭据的密钥的 ARN。 AWS Secrets Manager 有关更多信息，请参阅*AWS Secrets Manager 用户指南*中的[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)。

     您的密钥应包含以以下 JSON 格式存储的 Snowflake 凭证：

     ```
     {"accountid": "ID",
     "username": "username",
     "password": "password"}
     ```
   + **OAuth**— OAuth 允许您在不提供密码的情况下进行身份验证，但需要额外的设置。有关为 Snowflake 设置 OAuth 凭据的更多信息，请参阅。[使用设置与数据源的连接 OAuth](canvas-setting-up-oauth.md)

1. 选择**添加连接**。

1. 从显示连接名称的选项卡中，将要导入的 .csv 文件拖动到**拖放表以导入**窗格。

1. 可选：将其他表拖到导入窗格中。您可以使用用户界面来联接表。要使联接更具体，请选择**在 SQL 中编辑**。

1. 可选：如果您使用 SQL 查询数据，则可以选择**上下文**通过指定以下内容的值来向连接添加上下文：
   + **数据仓库**
   + **数据库**
   + **架构**

   向连接添加上下文可以更容易地指定未来的查询。

1. 选择**导入数据**。

下图显示了为 Snowflake 连接指定的字段的示例。

![\[Canvas 中的添加新的 Snowflake 连接对话框的界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-connection.png)


下图显示了用于向连接添加上下文的页面。

![\[Canvas 中导入页面的界面截图，显示上下文对话框。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-connection-context.png)


下图显示了用于在 Snowflake 中联接数据集的页面。

![\[Canvas 中导入页面的界面截图，显示正在连接的数据集。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-join.png)


下图显示了用于在 Snowflake 中编辑联接的 SQL 查询。

![\[Canvas 中导入页面上编辑 SQL 编辑器中的 SQL 查询界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-edit-sql.png)


### 在 Canvas 中使用 SaaS 连接器
<a name="canvas-connecting-external-appflow"></a>

**注意**  
对于除 Snowflake 之外的 SaaS 平台，每个数据来源只能有一个连接。

管理员必须先进行身份验证并创建与数据来源的连接，然后您才能从 SaaS 平台导入数据。有关管理员如何创建与 SaaS 平台的连接的更多信息，请参阅《[亚马逊* AppFlow 用户指南》中的 “管理亚马逊 AppFlow *连接](https://docs.aws.amazon.com/appflow/latest/userguide/connections.html)”。

如果您是首次使用亚马逊 AppFlow 的管理员，请参阅《*亚马逊 AppFlow 用户指南*》中的[入门](https://docs.aws.amazon.com/appflow/latest/userguide/getting-started.html)。

要从 SaaS 平台导入数据，您可以按照标准的[导入表格数据](canvas-import-dataset.md#canvas-import-dataset-tabular)过程进行操作，该过程向您展示了如何将表格数据集导入到 Canvas 中。

# Canvas 中的示例数据集
<a name="canvas-sample-datasets"></a>

SageMaker Canvas 提供了解决独特用例的示例数据集，因此您无需编写任何代码即可快速开始构建、训练和验证模型。与这些数据集相关的用例突出显示了 SageMaker Canvas 的功能，您可以利用这些数据集开始构建模型。您可以在 C SageMaker anvas 应用程序**的数据集**页面中找到示例数据集。

以下数据集是 SageMaker Canvas 默认提供的示例。这些数据集涵盖的使用案例包括：预测房价、贷款违约和糖尿病患者再入院；预测销售额；预测机器故障以简化制造单位的预测性维护；以及为运输和物流生成供应链预测。这些数据集存储在默认的 Amazon S3 存储桶中的`sample_dataset`文件夹中，该存储桶是 SageMaker 人工智能为您在某个地区中的账户创建的。
+ **canvas-sample-diabetic-readmission.csv：**此数据集包含历史数据，包括超过十五个包含患者和医院结果的特征。您可以使用此数据集来预测高危糖尿病患者是否有可能在出院后 30 天内、30 天后再次入院，或者根本不可能再次入院。使用 **redadmitted** 列作为目标列，并对此数据集使用 3\$1 类别预测模型类型。要详细了解如何使用此数据集构建模型，请参阅 [SageMaker Canvas 研讨会页面](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/5-hcls)。此数据集来自 [UCI 机器学习存储库](https://archive.ics.uci.edu/ml/datasets/diabetes+130-us+hospitals+for+years+1999-2008)。
+ **canvas-sample-housing.csv：**此数据集包含与给定房价相关的特征数据。您可以使用此数据集来预测房价。使用 **median\$1house\$1value** 列作为目标列，并对此数据集使用数值预测模型类型。要了解有关使用此数据集构建模型的更多信息，请参阅 [SageMaker Canvas 研讨会页面](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/2-real-estate)。这是从[StatLib 存储库](https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html)中获得的加州住房数据集。
+ **canvas-sample-loans.csv：**此数据集包含 2007-2011 年期间发放的所有贷款的完整贷款数据，包括当前的贷款状态和最新的付款信息。您可以使用此数据集来预测客户是否会偿还贷款。使用 **loan\$1status** 列作为目标列，并对此数据集使用 3\$1 类别预测模型类型。要详细了解如何使用此数据集构建模型，请参阅 [SageMaker Canvas 研讨会页面](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/4-finserv)。这些数据使用从 [Kaggle](https://www.kaggle.com/datasets/wordsforthewise/lending-club) 获得 LendingClub 的数据。
+ **canvas-sample-maintenance.csv：**此数据集包含与给定维护失败类型相关的特征的数据。您可以使用此数据集来预测将来会发生哪些故障。使用 **Failure Type** 列作为目标列，并对此数据集使用 3\$1 类别预测模型类型。要详细了解如何使用此数据集构建模型，请参阅 [SageMaker Canvas 研讨会页面](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/6-manufacturing)。此数据集来自 [UCI 机器学习存储库](https://archive.ics.uci.edu/ml/datasets/AI4I+2020+Predictive+Maintenance+Dataset)。
+ **canvas-sample-shipping-logs.csv：**此数据集包含所有已交付产品的完整配送数据，包括预计配送优先顺序、承运人和起运地。您可以使用此数据集来预测货物的预计到达时间（以天数为单位）。使用该**ActualShippingDays**列作为目标列，并使用该数据集的数值预测模型类型。要详细了解如何使用这些数据构建模型，请参阅 [SageMaker Canvas 研讨会页面](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/7-supply-chain)。这是 Amazon 创建的合成数据集。
+ **canvas-sample-sales-forecasting.csv：**此数据集包含零售商店的历史时间序列销售数据。您可以使用此数据集来预测特定零售商店的销售额。使用 **sales** 列作为目标列，并对此数据集使用时间序列预测模型类型。要详细了解如何使用此数据集构建模型，请参阅 [SageMaker Canvas 研讨会页面](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/3-retail)。这是 Amazon 创建的合成数据集。

# 重新导入已删除的示例数据集
<a name="canvas-sample-datasets-reimport"></a>

Amazon SageMaker Canvas 为您提供各种用例的示例数据集，这些数据集突出了 Canvas 的功能。要了解有关可用示例数据集的更多信息，请参阅 [Canvas 中的示例数据集](canvas-sample-datasets.md)。如果您不想再使用示例数据集，可以将其从 C SageMaker anvas 应用程序的 “**数据集**” 页面中删除。不过，这些数据集仍存储在您指定为 [Canvas 存储位置](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-storage-configuration.html)的 Amazon S3 存储桶中，因此您可以随时访问它们。

如果您使用的是默认的 Amazon S3 存储桶，则存储桶名称遵循模式 `sagemaker-{region}-{account ID}`。您可以在目录路径 `Canvas/sample_dataset` 中找到示例数据集。

如果您从 SageMaker Canvas 应用程序中删除示例数据集并想再次访问该示例数据集，请使用以下步骤。

1. 在 C SageMaker anvas 应用程序中导航到 “**数据集**” 页面。

1. 选择**导入数据**。

1. 从 Amazon S3 存储桶列表中，选择作为 Canvas 存储位置的存储桶。如果使用 SageMaker 由人工智能创建的默认 Amazon S3 存储桶，则它遵循命名模式`sagemaker-{region}-{account ID}`。

1. 选择 **Canvas** 文件夹。

1. 选择 **sample\$1dataset** 文件夹，其中包含了 Canvas 的所有示例数据集。 SageMaker 

1. 选择要导入的数据集，然后选择**导入数据**。

# 数据准备
<a name="canvas-data-prep"></a>

**注意**  
以前，Amazon SageMaker Data Wrangler 是 SageMaker Studio Classic 体验的一部分。现在，如果您更新为使用全新 Studio 体验，则必须使用 SageMaker Canvas 来访问 Data Wrangler 并接收最新的功能更新。如果您之前一直在 Studio Classic 中使用 Data Wrangler，现在想迁移到 Canvas 中的 Data Wrangler，可能需要为创建和使用 Canvas 应用程序授予额外的权限。有关更多信息，请参阅 [（可选）从 Studio Classic 中的数据牧马人迁移到 Canvas SageMaker](studio-updated-migrate-ui.md#studio-updated-migrate-dw)。  
要了解如何在 Studio Classic 中从 Data Wrangler 迁移数据流，请参阅 [（可选）将数据从 Studio Classic 迁移到 Studio](studio-updated-migrate-data.md)。

在 Amazon Canvas 中使用 Amazon SageMaker Data Wr SageMaker angler 来准备、展示和分析您的数据。您可以将 Data Wrangler 数据准备流集成到机器学习 (ML) 工作流中，以简化和精简数据预处理和特征工程，只需少量甚至无需编码。您还可以添加自己的 Python 脚本和转换，以自定义工作流。
+ **数据流** – 创建数据流以定义一系列机器学习数据准备步骤。您可以使用流合并来自不同数据源的数据集，确定要应用于数据集的转换数量和类型，并定义可集成到机器学习管线中的数据准备工作流。
+ **转换** – 使用标准*转换*（如字符串、矢量和数字数据格式化工具）清理和转换数据集。使用文本和 date/time 嵌入等变换以及分类编码来展示您的数据。
+ **生成数据见解**：使用 Data Wrangler 数据质量和见解报告，自动验证数据质量并检测数据中的异常。
+ **分析** – 在流中的任意点分析数据集中的特征。Data Wrangler 包括内置的数据可视化工具，如散点图和直方图，以及目标泄漏分析和快速建模等数据分析工具，以了解特征相关性。
+ **导出** – 将数据准备工作流导出至其他位置。以下是一些示例位置：
  + Amazon Simple Storage Service（Amazon S3）桶
  + Amazon F SageMaker eature Store — 将功能及其数据存储在中央存储中。
+ **自动准备数据**：根据您的数据流创建机器学习工作流程。
  + Ama SageMaker zon Pipelines — 构建用于管理 SageMaker AI 数据准备、模型训练和模型部署任务的工作流程。
  + 串行推理管道：根据您的数据流创建串行推理管道。使用它预测新数据。
  + Python 脚本 – 将数据及其转换存储在 Python 脚本中，用于您的自定义工作流。

# 创建数据流
<a name="canvas-data-flow"></a>

使用 Canva SageMaker s 中的 Data Wrangler 流程或*数据流*来创建和修改数据准备管道。我们建议您使用 Data Wrangler 处理超过 5 GB 的数据集。

要开始使用，请按照以下步骤将数据导入数据流中。

1. 打开 SageMaker 画布。

1. 在左侧导航栏选择 **Data Wrangler**。

1. 选择**导入并准备**。

1. 从下拉菜单中选择**表格**或**映像**。

1. 在**选择数据来源**中，选择数据来源并选择要导入的数据。您最多可以选择 30 个文件或一个文件夹。如果您已将数据集导入 Canvas，请选择 **Canvas 数据集**作为来源。否则，请连接到 Amazon S3 或 Snowflake 等数据来源并浏览数据。有关连接到数据来源或导入数据的信息，请参阅以下页面：
   + [导入数据](canvas-importing-data.md)
   + [连接到数据来源](canvas-connecting-external.md)

1. 选择要导入的数据后，选择**下一步**。

1. （可选）在导入表格数据集时，如需设置**导入设置**部分，请展开**高级**下拉菜单。您可以为数据流导入指定以下高级设置：
   + **采样方法**：选择要使用的采样方法和样本量。有关如何更改样本的更多信息，请参阅第 [编辑数据流采样配置](canvas-data-flow-edit-sampling.md) 节。
   + **文件编码 (CSV)**：选择数据集文件的编码。默认为 `UTF-8`。
   + **跳过第一行**：如果您在数据集的开头有多余的行，请输入您想跳过的导入行数。
   + **分隔符**：选择用于分隔数据中每项的分隔符。您还可以指定自定义分隔符。
   + **多行检测**：如果您希望 Canvas 手动解析整个数据集的多行单元格，请选择此选项。Canvas 通过采集数据样本来确定是否使用多行支持，但是 Canvas 可能无法检测到样本中的任何多行单元格。在这种情况下，我们建议您选择**多行检测**选项，以强制 Canvas 检查整个数据集是否有多行单元格。

1. 选择**导入**。

现在您应该拥有新的数据流，可以开始添加转换步骤和分析。

# 数据流 UI 的工作原理
<a name="canvas-data-flow-ui"></a>

为帮助您浏览数据流，Data Wrangler 在顶部导航窗格中设置了以下选项卡：
+ **数据流**：此选项卡为您提供了数据流步骤的可视化视图，您可以在此添加或删除转换并导出数据。
+ **数据**：此选项卡提供数据预览，以便查看转换结果。您还可以查看数据流步骤的有序列表，并对这些步骤进行编辑或重新排序。
**注意**  
在此选项卡中，您只能预览 Amazon S3 数据来源的数据可视化（例如每列值的分布）。不支持其他数据来源（例如 Amazon Athena）的可视化。
+ **分析**：在此选项卡中，您可以查看所创建的每个分析的单独子选项卡。例如，如果您创建了直方图和数据质量与见解 (DQI) 报告，Canvas 会为每种报告创建一个选项卡。

导入数据集时，原始数据集会出现在数据流中并命名为 S **ou** rce。 SageMaker **Canvas 会自动推断数据集中每列的类型，并创建一个名为 “数据类型” 的新数据框。**您可以选择此框架来更新推断的数据类型。

您在数据流中使用的数据集、转换和分析以*步骤*表示。每次添加转换步骤时，都会创建一个新的数据框。将多个转换步骤（**联接**或**串联**除外）添加到同一个数据集时，它们会堆叠在一起。

在**合并数据**选项下，**连接**和**串联**可创建包含新连接或串联数据集的独立步骤。

# 编辑数据流采样配置
<a name="canvas-data-flow-edit-sampling"></a>

当将表格数据导入 Data Wrangler 数据流时，您可以选择对数据集进行采样，以加快数据探索和清理过程。在数据集样本上运行探索性转换通常比在整个数据集上运行转换更快，当您准备好导出数据集和构建模型时，就可以将转换应用于整个数据集。

Canvas 支持以下采样方法：
+ **FirstK**：Canvas 从数据集中选择前 *K* 个项目，其中 *K* 是您指定的数字。这种采样方法很简单，但是如果数据集不是随机排序，就会产生偏差。
+ **随机**：Canvas 从数据集中随机选择项目，每个项目被选中的概率相等。这种采样方法有助于确保样本对整个数据集具有代表性。
+ **分层**：根据一个或多个属性（例如年龄和收入水平）将数据集划分为多个组（或*分层*）。然后，从每组中随机选择一定数量的项目。此方法可确保所有相关子组在样本中得到充分代表。

您可以随时编辑采样配置，更改用于数据分析的样本大小。

要更改采样配置，请执行以下操作：

1. 在数据流图中，选择数据来源节点。

1. 在底部导航栏选择**采样**。

1. 此时将打开**采样**对话框。在**采样方法**下拉列表中，选择所需的采样方法。

1. 在**最大样本大小**中，输入要采样的行数。

1. 单击**更新**以保存您的更改。

现在应该可以应用对采样配置的更改了。

# 将步骤添加到数据流
<a name="canvas-data-flow-add-step"></a>

在 Data Wrangler 数据流中，您可以添加表示数据转换和分析的步骤。

要在数据流中添加步骤，请在任何数据集节点或之前添加的步骤旁边选择 **\$1**。然后，选择下列选项之一：
+ **编辑数据类型**（仅适用于**数据类型**步骤）：如果您尚未向**数据类型**步骤添加任何转换，则可以双击流中的**数据类型**步骤以打开**数据**选项卡，然后编辑 Data Wrangler 在导入数据集时推理出的数据类型。
+ **添加转换**：添加新的转换步骤。要了解有关您可添加的数据转换的更多信息，请参阅 [转换数据](canvas-transform.md)。
+ **获取数据见解**：添加分析，例如直方图或自定义可视化。可以使用此选项在数据流中的任何点分析您的数据。要了解有关可添加的分析的更多信息，请参阅 [进行探索性数据分析 (EDA)](canvas-analyses.md)。
+ **连接**：在**合并数据**下找到此选项，以连接两个数据集，并将生成的数据集添加到数据流中。要了解更多信息，请参阅[联接数据集](canvas-transform.md#canvas-transform-join)。
+ **串联**：在**合并数据**下找到此选项，以串联两个数据集，并将生成的数据集添加到数据流中。要了解更多信息，请参阅[串联数据集](canvas-transform.md#canvas-transform-concatenate)。

# 编辑数据流步骤
<a name="canvas-data-flow-edit-steps"></a>

在 Amazon SageMaker Canvas 中，您可以编辑数据流中的各个步骤来转换数据集，而无需创建新的数据流。下一页将介绍如何编辑连接和串联步骤以及数据来源步骤。

## 编辑连接和串联步骤
<a name="canvas-data-flow-edit-join-concat"></a>

在数据流中，您可以灵活地编辑连接和串联步骤。您可以对数据处理工作流程进行必要的调整，确保您的数据得到正确的组合和转换，而无需重新设计整个数据流。

要编辑数据流中的连接或串联步骤，请执行以下操作：

1. 打开数据流。

1. 选择要编辑的连接或串联节点旁边的加号图标 (**\$1**)。

1. 从上下文菜单中，选择**编辑**。

1. 在打开的侧边面板中，您可以编辑连接或串联的详细信息。修改步骤字段，例如连接类型。要更换数据节点并选择另一个节点进行连接或串联，请选择此节点旁边的删除图标，然后在数据流视图中选择要包含在转换中的新节点。
**注意**  
在编辑过程中更换节点时，只能选择连接或串联操作之前发生的步骤。您可以更换左边或右边的节点，但一次只能更换一个节点。此外，您不能选择源节点作为替换节点。

1. 选择**预览**以查看合并操作的结果。

1. 单击**更新**以保存您的更改。

现在，您的数据流应该已经更新。

## 编辑或替换数据来源步骤
<a name="canvas-data-flow-edit-source"></a>

您可能需要更改数据来源或数据集，而不删除应用于原始数据的转换和数据流步骤。在 Data Wrangler 中，您可以编辑或替换数据来源配置，同时保留数据流的步骤。编辑数据来源时，您可以更改导入设置，例如采样大小或方法以及任何高级设置。您还可以添加更多具有相同架构的文件，或者对于基于查询的数据来源（例如 Amazon Athena），您可以编辑查询。在替换数据来源时，只要新数据的架构与原始数据相匹配，就可以选择不同的数据集，甚至从不同的数据来源导入数据。

要编辑数据来源配置，请执行以下操作：

1. 在 Canvas 应用程序中，转到 **Data Wrangler** 页面。

1. 选择要查看的数据流。

1. 在显示数据流步骤的**数据流**选项卡中，找到要编辑的**源**节点。

1. 选择**源**节点旁边的省略号图标。

1. 从上下文菜单中，选择**编辑**。

1. 对于 Amazon S3 数据来源和本地上传，您可以选择或上传更多具有与原始数据相同架构的文件。对于 Amazon Athena 等基于查询的数据来源，您可以在可视化查询生成器中删除和选择不同的表格，也可以直接编辑 SQL 查询。完成此操作后，选择**下一步**。

1. 对于**导入设置**，进行任何所需的更改。

1. 完成后，选择 **Save changes (保存更改)**。

现在，您的数据来源应该已经更新。

要替换数据来源，请执行以下操作：

1. 在 Canvas 应用程序中，转到 **Data Wrangler** 页面。

1. 选择要查看的数据流。

1. 在显示数据流步骤的**数据流**选项卡中，找到要编辑的**源**节点。

1. 选择**源**节点旁边的省略号图标。

1. 从上下文菜单中选择**替换**。

1. 通过[创建数据流体验](canvas-data-flow.md)来选择其他数据来源和数据。

1. 选择数据并准备好更新源节点后，选择**保存**。

现在，您应该可以看到数据流中的**源**节点已更新。

# 重新安排数据流中的步骤
<a name="canvas-data-flow-reorder-steps"></a>

向数据流添加步骤后，您可以选择对步骤重新排序，而不是按正确的顺序删除和重新添加步骤。例如，在开始格式化字符串之前，您可能决定移动转换以估算缺失值。

**注意**  
您不能更改某些步骤类型的顺序，例如定义数据来源、更改数据类型、连接、串联或拆分。无法重新排序的步骤会在 Canvas 应用程序 UI 中显示为灰色。

要重新排序数据流步骤，请执行以下操作：

1. 在 Data Wrangler 中编辑数据流时，选择**数据**选项卡。一个名为**步骤**的侧边面板按顺序列出了数据流步骤。

1. 将鼠标悬停在转换步骤上，然后选择此步骤旁边的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 从上下文菜单中选择**重新排序**。

1. 将数据流步骤拖放到所需的顺序中。

1. 完成后，选择 **Save（保存）**。

现在，您的数据流步骤和图表应该反映出您所做的更改。

# 从数据流中删除一个步骤
<a name="canvas-data-flow-delete-step"></a>

在数据流中，您可以灵活地删除连接和串联步骤，并选择是否对数据应用任何后续转换。

要从数据流中删除连接或串联步骤，请执行以下操作：

1. 打开数据流。

1. 选择要删除的连接或串联节点旁边的加号图标 (**\$1**)。

1. 在上下文菜单中，选择**删除**。

1. （可选）如果在连接或串联步骤之后有转换步骤，则可以选择是否保留后续转换步骤并将其分别添加到每个数据节点。在**删除连接**侧面板中，选择一个节点，取消选择此节点，然后移除任何后续的转换步骤。您可以保留选中的两个节点，以保留所有转换步骤；也可以取消选中两个节点，以放弃所有转换步骤。

   下面的界面截图显示了此步骤，其中只选择了两个数据节点中的第二个节点。成功删除连接后，第二个数据节点将只保留随后的**重命名列**转换。  
![\[显示删除连接视图的 Data Wrangler 中数据流的界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-data-flow-delete-step.png)

1. 选择**删除**。

现在应从数据流中移除连接或串联步骤。

# 进行探索性数据分析 (EDA)
<a name="canvas-analyses"></a>

Data Wrangler 包含内置的分析，您只需单击几下，即可生成可视化和数据分析。您还可以使用自己的代码创建自定义分析。

通过在数据流中选择一个步骤，然后选择**添加分析**，可以将分析添加到数据框中。要访问您创建的分析，请选择包含该分析的步骤，然后选择分析。

分析使用数据集最多 20 万行的样本生成，您可以配置样本大小。有关更改数据流样本大小的更多信息，请参阅 [编辑数据流采样配置](canvas-data-flow-edit-sampling.md)。

**注意**  
分析针对 1000 列或更少列的数据进行了优化。在为包含额外列的数据生成分析时，您可能会遇到一些延迟。

您可以将以下分析添加到数据框中：
+ 数据可视化，包括直方图和散点图。
+ 数据集的快速摘要，包括条目数、最小值和最大值（对于数字数据）以及最频繁和最少的类别（对于分类数据）。
+ 数据集的快速模型，可用于为每个特征生成重要性得分。
+ 目标泄漏报告，您可以使用该报告来确定一个或多个特征是否与目标特征密切关联。
+ 使用自己的代码进行自定义可视化。

可通过以下部分了解有关这些选项的更多信息。

## 深入了解数据和数据质量
<a name="canvas-data-insights"></a>

使用**数据质量和见解报告**对您导入到 Data Wrangler 中的数据进行分析。建议您在导入数据集之后创建报告。可以使用该报告来协助您清理和处理自己的数据。该报告为您提供诸如缺失值数量和异常值数量之类的信息。如果您的数据存在问题，例如目标泄漏或不平衡，则见解报告可以让您注意到这些问题。

按照以下过程创建数据质量和见解报告。该过程假设您已将数据集导入到 Data Wrangler 流中。

**创建数据质量和见解报告**

1. 选择 Data Wrangler 流中节点旁边的省略号图标。

1. 选择**获取数据见解**。

1. 对于**分析类型**，选择**数据质量和见解报告**。

1. 对于**分析名称**，为见解报告指定名称。

1. 对于**问题类型**，请指定**回归**或**分类**。

1. 对于**目标列**，指定目标列。

1. 对于**数据大小**，指定下列项之一：
   + **采样数据集**：使用数据流中的交互式样本，其中最多可包含 200000 行数据集。有关如何编辑样本大小的信息，请参阅 [编辑数据流采样配置](canvas-data-flow-edit-sampling.md)。
   + **完整数据集**：使用数据来源中的完整数据集创建报告。
**注意**  
针对完整数据集创建数据质量和见解报告需要使用 Amazon SageMaker 处理任务。 SageMaker 处理任务预置了获取所有数据见解所需的额外计算资源。有关 SageMaker 处理任务的更多信息，请参阅[带 SageMaker 处理功能的数据转换工作负载](processing-job.md)。

1. 选择**创建**。

下面的主题说明了报告的各个部分：

**Topics**
+ [Summary](#canvas-data-insights-summary)
+ [目标列](#canvas-data-insights-target-column)
+ [快速模型](#canvas-data-insights-quick-model)
+ [特征摘要](#canvas-data-insights-feature-summary)
+ [样本](#canvas-data-insights-samples)
+ [定义](#canvas-data-insights-definitions)

可以下载报告或在线查看。要下载报告，请选择屏幕右上角的下载按钮。

### Summary
<a name="canvas-data-insights-summary"></a>

见解报告对数据进行了简单汇总，其中包括缺失值、无效值、特征类型、异常值计数等一般信息。还可能包括高严重性警告，这些警告指出数据可能存在问题。我们建议您对警告进行调查研究。

### 目标列
<a name="canvas-data-insights-target-column"></a>

在创建数据质量和见解报告时，Data Wrangler 会为您提供选项来选择目标列。目标列是要预测的列。在选择目标列时，Data Wrangler 会自动创建目标列分析。它还按特征的预测能力顺序对特征进行排名。选择目标列时，必须指定是要解决回归问题还是分类问题。

对于分类，Data Wrangler 会显示最常见分类的表和直方图。分类是指类别。它还会显示目标值缺失或无效的观测值或行。

对于回归，Data Wrangler 会显示目标列中所有值的直方图。它还会显示带有缺失、无效或异常值目标值的观测值或行。

### 快速模型
<a name="canvas-data-insights-quick-model"></a>

**快速模型**提供您用于训练数据的模型的预期预测质量的估计值。

Data Wrangler 将您的数据拆分为训练层和验证层。它使用 80% 的样本进行训练，使用 20% 的值进行验证。对于分类，对样本进行分层分割。对于分层分割，每个数据分区的标签比例相同。对于分类问题，训练层和分类层之间的标签比例必须相同，这一点非常重要。Data Wrangler 使用默认的超参数训练 XGBoost 模型。它对验证数据进行提前停止，并执行最少的特征预处理。

对于分类模型，Data Wrangler 会返回模型摘要和混淆矩阵。

 要了解有关分类模型摘要返回的信息的更多信息，请参阅 [定义](#canvas-data-insights-definitions)。

混淆矩阵提供了以下信息：
+ 预测标签与真实标签匹配的次数。
+ 预测标签与真实标签不匹配的次数。

真实标签表示数据中的实际观察值。例如，如果您使用模型来检测欺诈性交易，那么真实标签表示实际上是欺诈性交易或非欺诈性交易。预测标签表示模型为数据分配的标签。

可以使用混淆矩阵来查看模型对状况存在或不存在的预测程度。如果您预测的是欺诈性交易，可以使用混淆矩阵来了解模型的敏感性和特定性。敏感性是指模型检测欺诈性交易的能力。特定性是指该模型能够避免将非欺诈性交易检测为欺诈性交易。

### 特征摘要
<a name="canvas-data-insights-feature-summary"></a>

当您指定目标列时，Data Wrangler 会根据特征的预测能力对特征进行排序。预测能力是在将数据拆分为 80% 训练层和 20% 验证层之后，根据数据来衡量的。Data Wrangler 在训练层上分别拟合每个特征的模型。它应用最少的特征预处理并衡量验证数据的预测性能。

它将得分标准化为范围 [0,1]。预测得分越高，表示列自身对用于预测目标更有用。得分较低的列表示无法用于预测目标列的列。

某一列无法单独用于预测，但与其他列一起使用时具有预测性，这种情况并不常见。您可以放心地使用预测得分来确定数据集内的某个特征是否具有预测性。

得分低通常表示该特征是多余的。得分为 1 表示完美的预测能力，这通常表示目标泄漏。目标泄漏通常发生在数据集包含预测时不可用的列时。例如，它可能是目标列的重复项。

### 样本
<a name="canvas-data-insights-samples"></a>

Data Wrangler 提供有关样本是否异常或数据集内是否存在重复项的信息。

Data Wrangler 使用*孤立森林算法*来检测异常样本。孤立森林算法将异常得分与数据集的每个样本（行）相关联。异常得分低表示样本异常。高得分与非异常样本关联。异常得分为负的样本通常被视为异常样本，异常得分为正的样本被视为非异常样本。

查看可能存在异常的样本时，我们建议您注意异常值。例如，可能会由于收集和处理数据时出错而存在的异常值。根据 Data Wrangler 对孤立森林算法的实施，以下是异常程度最高的样本示例。我们建议您在检查异常样本时运用专业领域知识和业务逻辑。

Data Wrangler 会检测重复行，并计算您的数据中重复行的比例。某些数据来源可能包含有效的重复项。其他数据来源可能具有表明数据收集存在问题的重复项。由于数据收集错误而产生的重复样本可能会干扰依赖于将数据拆分为独立训练层和验证层的机器学习流程。

以下是见解报告中可能受到重复样本影响的元素：
+ 快速模型
+ 预测能力估计
+ 自动超参数优化

可以使用**管理行**下的**删除重复项**转换，从数据集内删除重复样本。Data Wrangler 会显示重复程度最高的行。

### 定义
<a name="canvas-data-insights-definitions"></a>

以下是数据见解报告中使用的技术术语的定义。

------
#### [ Feature types ]

以下是每种特征类型的定义：
+ **数字** – 数字值可以是浮点数或整数，例如年龄或收入。机器学习模型假设数字值是有序的，并且在数字值上定义了距离。例如，3 比 10 更接近 4，3 < 4 < 10。
+ **分类**：列条目属于一组唯一值，这组值通常比列中的条目数小得多。例如，长度为 100 的列可以包含唯一值 `Dog`、`Cat`、和 `Mouse`。值可以是数字、文本或两者的组合。`Horse`、`House`、`8`、`Love` 和 `3.1` 都可以是有效值，可在同一个分类列中找到。与数字特征相比，即使所有值都是数字，机器学习模型也不会对分类特征值采用顺序或距离。
+ **二进制** – 二进制特征是一种特殊的分类特征类型，其中唯一值集的基数为 2。
+ **文本** – 文本列包含许多非数字唯一值。在极端情况下，该列的所有元素都是唯一的。在极端情况下，没有两个条目是相同的。
+ **日期时间** – 日期时间列包含有关日期或时间的信息。其中可以同时包含有关日期和时间的信息。

------
#### [ Feature statistics ]

以下是每个特征统计数据的定义：
+ **预测能力** – 预测能力衡量该列在预测目标方面的作用如何。
+ **异常值**（在数字列中）– Data Wrangler 使用两个对异常值稳健的统计数据来检测异常值：中位数和稳健标准差 (RSTD)。通过将特征值裁剪到 [5 百分位数，95 百分位数] 范围并计算剪切向量的标准差，可得出 RSTD。所有大于“中位数 \$1 5 \$1 RSTD”或小于“中位数 – 5 \$1 RSTD”的值都被视为异常值。
+ **偏度**（在数字列中）– 偏度测量分布的对称性，并定义为分布的第三矩除以标准差的三次方。正态分布或任何其他对称分布的偏度为零。正值表示分布的右尾比左尾要长。负值表示分布的左尾比右尾要长。根据经验法则，当偏度的绝对值大于 3 时，分布被视为不对称。
+ **峰度**（在数字列中）– Pearson 峰度测量分布尾部的沉重度。它被定义为分布的第四矩除以第二矩的平方。正态分布的峰度为 3。峰度值低于 3 意味着分布集中在均值周围，尾部比正态分布的尾部轻。峰度值大于 3 表示尾部或异常值较重。
+ **缺失值** – 类似 NULL 的对象、空字符串以及仅由空格组成的字符串被视为缺失值。
+ **数值特征或回归目标的有效值** – 可以转换为有限浮点数的所有值均为有效值。缺失值无效。
+ **分类、二进制或文本特征的有效值或分类目标的有效值** – 所有未缺失的值均为有效值。
+ **日期时间特征** – 可以转换为日期时间对象的所有值均为有效值。缺失值无效。
+ **无效值** – 缺失或无法正确转换的值。例如，在数字列中，不能转换字符串 `"six"` 或 null 值。

------
#### [ Quick model metrics for regression ]

以下是快速模型指标的定义：
+ R2 或决定系数 – R2 是模型预测的目标差异的比例。R2 在 [-infty, 1] 范围内。1 是完美预测目标的模型的得分，0 是始终预测目标均值的平凡模型的得分。
+ MSE 或均方误差：MSE 在 [0, infty] 范围内。0 是完美预测目标的模型的得分。
+ MAE 或平均绝对误差：MAE 在 [0, infty] 范围内，其中 0 是完美预测目标的模型的得分。
+ RMSE 或均方根误差：RMSE 在 [0, infty] 范围内，其中 0 是完美预测目标的模型的得分。
+ 最大误差 – 数据集上误差的最大绝对值。最大误差在 [0，infty] 范围内。0 是完美预测目标的模型的得分。
+ 绝对误差中值：绝对误差中位数在 [0, infty] 范围内。0 是完美预测目标的模型的得分。

------
#### [ Quick model metrics for classification ]

以下是快速模型指标的定义：
+ **准确性** – 准确性是准确预测的样本的比率。准确性在 [0, 1] 范围内。0 是不正确预测所有样本的模型的得分，1 是完美模型的得分。
+ **平衡准确性** – 平衡准确性是调整分类权重来平衡数据时准确预测的样本的比率。无论分类的频率如何，所有分类都被赋予相同的重要性。平衡准确性在 [0, 1] 范围内。0 是错误预测所有样本的模型的得分，1 是完美模型的得分。
+ **AUC（二进制分类）**– 这是接收者操作特征曲线下方的区域。AUC 在 [0, 1] 范围内，其中随机模型返回的得分为 0.5，完美模型返回的得分为 1。
+ **AUC (OVR)** – 对于多分类器，这是接收者操作特征曲线下方的区域，对每个标签分别使用一个分类计算，并使用其余分类进行计算。Data Wrangler 会报告区域的平均值。AUC 在 [0, 1] 范围内，其中随机模型返回的得分为 0.5，完美模型返回的得分为 1。
+ **精度** – 精度是为特定分类定义的。精度是模型归类为该分类的所有实例中真阳性的比例。精度在 [0, 1] 范围内。1 是该分类没有误报的模型的得分。对于二进制分类，Data Wrangler 会报告正类的精度。
+ **查全率** – 查全率是针对特定分类定义的。查全率是成功检索的相关分类实例的比例。查全率在 [0, 1] 范围内。1 是正确对分类的所有实例进行分类的模型的得分。对于二进制分类，Data Wrangler 会报告正类的查全率。
+ **F1** – F1 是为特定分类定义的。它是精度和查全率之间的调和平均数。F1 在 [0, 1] 范围内。1 是完美模型的得分。对于二进制分类，Data Wrangler 会报告具有正值的分类的 F1。

------
#### [ Textual patterns ]

**模式**使用一种易于阅读的格式描述字符串的文本格式。以下是文本模式的示例：
+ “\$1digits:4-7\$1”描述了长度介于 4 到 7 之间的数字序列。
+ “\$1alnum:5\$1”描述了一个长度正好为 5 的字母数字字符串。

Data Wrangler 通过查看数据中的非空字符串样本，来推断模式。它可以描述许多常用的模式。**置信度**以百分比形式表示，指示估计有多少数据与该模式匹配。使用文本模式，可以了解需要更正或删除数据中的哪些行。

以下内容描述了 Data Wrangler 可识别的模式：


| 模式 | 文本格式 | 
| --- | --- | 
|  \$1alnum\$1  |  字母数字字符串  | 
|  \$1any\$1  |  任何单词字符串  | 
|  \$1digits\$1  |  数字序列  | 
|  \$1lower\$1  |  小写单词  | 
|  \$1mixed\$1  |  大小写混合的单词  | 
|  \$1name\$1  |  以大写字母开头的单词  | 
|  \$1upper\$1  |  大写单词  | 
|  \$1whitespace\$1  |  空格字符  | 

单词字符可以是下划线，也可以是可能会出现在任何语言的单词中的字符。例如，字符串 `'Hello_word'` 和 `'écoute'` 都由单词字符组成。“H”和“é”都是单词字符的示例。

------

## 偏差报告
<a name="canvas-bias-report"></a>

SageMaker Canvas 在 Data Wrangler 中提供了偏差报告，以帮助发现数据中的潜在偏差。偏差报告分析目标列（标签）与您认为可能包含偏差的列（面变量）之间的关系。例如，如果您要预测客户转化率，分面变量可能是客户的年龄。偏差报告可帮助您确定数据是否偏向某个年龄组。

要在 Canvas 中生成偏差报告，请执行以下操作：

1. 在 Data Wrangler 的数据流中，选择数据流中节点旁边的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 从上下文菜单中选择**获取数据见解**。

1. 此时将打开**创建分析**侧面板。在**分析类型**下拉菜单中，选择**偏差报告**。

1.  在**分析名称**字段中，输入偏差报告的名称。

1. 在**选择您的模型预测的列（目标）**下拉菜单中，选择目标列。

1. 在**您的预测列是值还是阈值？**中，如果目标列具有分类值，请选择**值**；如果目标列有数值，请选择**阈值**。

1. 在**预测值**（或**预测阈值**，取决于您在上一步中的选择）中，输入一个或多个与正面结果对应的目标列值。例如，如果预测客户转换率，则您的值可能是 `yes`，表示客户已转换。

1. 在**选择要分析偏差的列**下拉菜单中，选择您认为可能包含偏差的列，也称为分面变量。

1. 在**您的列是值还是阈值？**中，如果分面变量具有分类值，请选择**值**；如果分面变量具有值，请选择**阈值**。

1. 在**要分析偏差的列值**（或**要分析偏差的列阈值**，取决于您在上一步中的选择），输入您要分析潜在偏差的一个值或多个值。例如，如果您要检查对某一年龄段以上的客户是否存在偏差，则使用此年龄段的起始点作为阈值。

1. 在**选择偏差指标**中，选择要包含在偏差报告中的偏差指标。将鼠标悬停在信息图标上，可获取有关每个指标的更多信息。

1. （可选）当提示**您是否要分析其他指标？**选项时，选择**是**以查看并包含更多偏差指标。

1. 当您准备好创建偏差报告时，选择**添加**。

生成报告后，将为您提供所选偏差指标的概述。您可以随时从数据流的**分析**选项卡查看偏差报告。

## 直方图
<a name="canvas-visualize-histogram"></a>

使用直方图可以查看特定特征的特征值计数。您可以使用**着色方式**选项检查特征之间的关系。

您可以使用**划分方式**功能为一个列中的每个值创建另一个列的直方图。

## 散点图
<a name="canvas-visualize-scatter-plot"></a>

使用**散点图**功能可以检查各特征之间的关系。要创建散点图，请选择要在 **X 轴**和 **Y 轴**上绘制的特征。这两列都必须是数字类型的列。

您可以通过额外的列为散点图着色。

此外，您还可以按特征划分散点图。

## 表摘要
<a name="canvas-table-summary"></a>

使用**表摘要**分析可以快速总结数据。

对于包含数值数据（包括日志和浮点数据）的列，表摘要会报告每列的条目数 (count)、最小值 (min)、最大值 (max)、均值和标准差 (stddev)。

对于包含非数值数据的列，包括带有字符串、布尔值或 date/time 数据的列，表格摘要会报告条目数（计数）、频率最低的值（最小值）和最频繁的值（最大值）。

## 快速模型
<a name="canvas-quick-model"></a>

使用**快速模型**可视化可以快速评估数据并为每个特征生成重要性得分。一个[特征重要性得分](http://spark.apache.org/docs/2.1.0/api/python/pyspark.ml.html#pyspark.ml.classification.DecisionTreeClassificationModel.featureImportances)指明特征在预测目标标签方面的有用性。特征重要性得分介于 [0, 1] 之间，数字越高表示该特征对整个数据集更重要。在快速模型图表的顶部，有一个模型得分。分类问题显示 F1 得分。回归问题有均方差 (MSE) 得分。

创建快速模型图表时，您可以选择要评估的数据集，以及要比较特征重要性的目标标签。Data Wrangler 会执行以下操作：
+ 推断目标标签的数据类型以及所选数据集内的每个特征的数据类型。
+ 确定问题类型。根据标签列中不同值的数量，Data Wrangler 确定这是回归还是分类问题类型。Data Wrangler 将分类阈值设置为 100。如果标签列中存在超过 100 个不同的值，Data Wrangler 会将其归类为回归问题；否则，会将其归类为分类问题。
+ 预处理特征和标签数据以供训练。所使用的算法要求将特征编码为向量类型，将标签编码为双精度类型。
+ 使用 70% 的数据训练随机森林算法。Spark [RandomForestRegressor](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-regression)'s 用于训练回归问题的模型。[RandomForestClassifier](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-classifier)用于训练模型以解决分类问题。
+ 使用剩余 30% 的数据评估随机森林模型。Data Wrangler 使用 F1 得分评估分类模型，并使用 MSE 得分评估回归模型。
+ 使用基尼重要性方法计算每个特征的特征重要性。

## 目标泄漏
<a name="canvas-analysis-target-leakage"></a>

当机器学习训练数据集内存在与目标标签密切相关但在真实世界数据中不可用的数据时，就会发生目标泄漏。例如，您的数据集内可能有一列作为您要在模型中预测的列的代理。

使用**目标泄漏**分析时，可以指定以下内容：
+ **目标**：这是您希望机器学习模型能够预测的特征。
+ **问题类型**：这是您正在处理的 ML 问题类型。问题类型可以是**分类**，也可以是**回归**。
+  （可选）**最大特征数**：这是要在可视化中显示的最大特征数，它显示了按目标泄漏风险排序的特征。

为了进行分类，目标泄漏分析使用接收者操作特征下的区域，或者对每一列使用 AUC - ROC 曲线，直到达到**最大特征数**。对于回归，使用确定系数或 R2 指标。

AUC - ROC 曲线提供了一个预测指标，该指标使用交叉验证为每列单独计算，样本最多约为 1000 行。得分为 1 表示完美的预测能力，这通常表示目标泄漏。得分为 0.5 或更低，表明该栏中的信息本身无法提供预测目标的任何有用信息。尽管一列本身可能无法提供信息，但与其他特征一起使用时可用于预测目标，但如果得分较低，可能表示该特征是多余的。

## 多重共线性
<a name="canvas-multicollinearity"></a>

多重共线性是指两个或多个预测变量相互关联的情况。预测变量是数据集内用来预测目标变量的特征。当您具有多重共线性时，预测变量不仅可以预测目标变量，还可以相互预测。

您可以使用**方差膨胀系数 (VIF)**、**主成分分析 (PCA)** 或 **Lasso 特征选择**作为数据中多重共线性的度量。有关更多信息，请参阅下列内容。

------
#### [ Variance Inflation Factor (VIF) ]

方差膨胀系数 (VIF) 是衡量变量对之间共线性的指标。Data Wrangler 返回一个 VIF 得分，以此来衡量变量彼此之间的紧密关系。VIF 得分是一个大于等于 1 的正数。

得分为 1 表示该变量与其他变量不相关。得分大于 1 表示相关性更高。

理论上，您可以获得一个值为无穷大的 VIF 得分。Data Wrangler 将高得分限制为 50。如果您的 VIF 得分大于 50，则 Data Wrangler 会将得分设置为 50。

您可以使用以下准则来解释 VIF 得分：
+ VIF 得分小于或等于 5 表示变量与其他变量之间具有中度相关性。
+ VIF 得分大于或等于 5 表示变量与其他变量高度相关。

------
#### [ Principle Component Analysis (PCA) ]

主成分分析 (PCA) 测量数据在特征空间中沿不同方向的方差。特征空间由用于预测数据集内目标变量的所有预测变量构成。

例如，如果您想要预测谁在*泰坦尼克号皇家邮轮*撞上冰山后幸存下来，那么您的特征空间可以包括乘客的年龄、性别以及他们支付的票价。

PCA 从特征空间生成有序的方差列表。这些方差也称为奇异值。方差列表中的值大于或等于 0。我们可以使用这些值来确定我们的数据中存在多少多重共线性。

当数字大致相等时，数据中很少出现多重共线性情况。当值之间存在很多可变性时，我们就会有许多多重共线性情况。在执行 PCA 之前，Data Wrangler 会将每个特征标准化，实现平均值为 0，标准差为 1。

**注意**  
在这种情况下，PCA 也可以称为奇异值分解 (SVD)。

------
#### [ Lasso feature selection ]

Lasso 特征选择使用 L1 正则化技术，只包含数据集内预测性最高的特征。

对于分类和回归，正则化技术会为每个特征生成一个系数。系数绝对值为该特征提供了重要性得分。重要性得分越高，表示对目标变量的预测性越强。一种常见的特征选择方法是使用 lasso 系数为非零值的所有特征。

------

## 检测时间序列数据中的异常
<a name="canvas-time-series-anomaly-detection"></a>

您可以使用异常检测可视化来查看时间序列数据中的异常值。要了解决定异常的因素，您需要明白，我们将时间序列分解为预测项和误差项。我们将时间序列的季节性和趋势视为预测项。我们将残差视为误差项。

对于误差项，您可以指定阈值，当残差远离平均值的偏差标准数达到该阈值时，便会将其视为异常。例如，您可以将阈值指定为 3 个标准差。任何距离平均值大于 3 个标准差的残差均为异常。

您可以使用以下步骤执行**异常检测**分析。

1. 打开 Data Wrangler 数据流。

1. 在您的数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加分析**。

1. 对于**分析类型**，选择**时间序列**。

1. 对于**可视化**，选择**异常检测**。

1. 对于**异常阈值**，选择将某个值视为异常的阈值。

1. 选择**预览**以生成分析的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

## 时间序列数据中的季节性趋势分解
<a name="canvas-seasonal-trend-decomposition"></a>

您可以使用季节性趋势分解可视化，来确定时间序列数据中是否存在季节性。我们使用 STL（使用 LOESS 进行季节性趋势分解）方法进行分解。我们将时间序列分解为季节性、趋势和残差成分。这一趋势反映了该系列的长期进展。季节性成分是在一段时间内重复出现的信号。从时间序列中删除趋势和季节性成分后，您就获得了残差。

可以使用以下步骤执行**季节性趋势分解**分析。

1. 打开 Data Wrangler 数据流。

1. 在您的数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加分析**。

1. 对于**分析类型**，选择**时间序列**。

1. 对于**可视化**，请选择**季节性趋势分解**。

1. 对于**异常阈值**，选择将某个值视为异常的阈值。

1. 选择**预览**以生成分析的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

## 创建自定义可视化
<a name="canvas-visualize-custom"></a>

您可以向 Data Wrangler 流添加分析，来创建自定义可视化。您的数据集以及您应用的所有变换，都可以 [Pandas DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) 的形式提供。Data Wrangler 使用 `df` 变量来存储数据框。可以通过调用变量来访问该数据框。

必须提供输出变量 `chart`，以便存储 [Altair](https://altair-viz.github.io/) 输出图表。例如，您可以通过以下代码块，使用泰坦尼克号数据集创建自定义直方图。

```
import altair as alt
df = df.iloc[:30]
df = df.rename(columns={"Age": "value"})
df = df.assign(count=df.groupby('value').value.transform('count'))
df = df[["value", "count"]]
base = alt.Chart(df)
bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count'))
rule = base.mark_rule(color='red').encode(
    x='mean(value):Q',
    size=alt.value(5))
chart = bar + rule
```

**要创建自定义可视化，请执行以下操作：**

1. 在包含要可视化的变换的节点旁边，选择 **\$1**。

1. 选择**添加分析**。

1. 对于**分析类型**，选择**自定义可视化**。

1. 在**分析名称**中指定名称。

1. 在代码框中输入您的代码。

1. 选择**预览**以预览可视化。

1. 选择**保存**以添加可视化。

如果您不知道如何在 Python 中使用 Altair 可视化包，可以使用自定义代码片段来协助您开始入手。

Data Wrangler 有一系列可搜索的可视化代码片段。要使用可视化代码片段，请选择**搜索示例代码片段**，然后在搜索栏中指定查询。

下面的示例使用**分仓散点图**代码片段，其中绘制了一个双维度直方图。

这些代码片段包含注释，有助于您了解需要对代码进行哪些更改。您通常需要在代码中指定自己的数据集的列名。

```
import altair as alt

# Specify the number of top rows for plotting
rows_number = 1000
df = df.head(rows_number)  
# You can also choose bottom rows or randomly sampled rows
# df = df.tail(rows_number)
# df = df.sample(rows_number)


chart = (
    alt.Chart(df)
    .mark_circle()
    .encode(
        # Specify the column names for binning and number of bins for X and Y axis
        x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)),
        y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)),
        size="count()",
    )
)

# :Q specifies that label column has quantitative type.
# For more details on Altair typing refer to
# https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types
```

# 转换数据
<a name="canvas-transform"></a>

Amazon SageMaker Data Wrangler 提供大量机器学习数据转换，以简化数据的清理和特征化。使用 Data Wrangler 中的交互式数据准备工具，您可以使用各种采样技术对任何规模的数据集进行采样，并在几分钟内开始探索数据。在采样数据上完成数据转换后，就可以扩展数据流，将这些转换应用到整个数据集。

当您添加转换时，数据流会增加一个步骤。您添加的每个转换都会修改数据集，并生成新的数据框。所有后续转换都适用于生成的数据框。

Data Wrangler 包括内置转换，可用于转换列而无需任何代码。如果您知道要如何准备数据，但不知道如何开始或使用哪种转换，您可以使用数据准备聊天功能与 Data Wrangler 进行对话互动，并使用自然语言应用转换。有关更多信息，请参阅 [数据准备聊天](canvas-chat-for-data-prep.md)。

您还可以使用 Python（用户定义函数） PySpark、pandas 和 PySpark SQL 添加自定义转换。有些转换可就地运行，而其他一些转换会在数据集中创建新的输出列。

您可以一次将转换应用于多列。例如，您可以在一个步骤中删除多列。

**处理数字**和**处理缺失值**转换只能应用于单列。

使用本页了解有关 Data Wrangler 提供的内置和自定义转换的更多信息。

## 联接数据集
<a name="canvas-transform-join"></a>

您可以在数据集中直接联接数据框。在联接两个数据集时，生成的联接数据集将显示在流中。Data Wrangler 支持以下联接类型。
+ **左外**：包括左表中的所有行。如果左表行中联接的列值与任何右表行值均不匹配，那么在联接的表中该行为所有右表列显示空值。
+ **左反**：包括左表中不包含右表中联接列的值的行。
+ **左半** – 对于满足联接语句中标准的所有相同行，包括左表中的单行。此类型从左表中排除了符合联接标准的重复行。
+ **右外**：包括右表中的所有行。如果右表行中联接的列值与任何左表行值均不匹配，那么在联接的表中该行为所有左表列显示空值。
+ **内部** – 包括左表和右表中联接列中包含匹配值的行。
+ **全外**：包括左表和右表中的所有行。如果任一表中联接列的行值不匹配，则会在联接的表中创建单独的行。如果在联接的表中行不包含列的值，则为该列插入空值。
+ **笛卡尔交叉**：包括将第一个表中的每一行与第二个表中的每一行相结合的行。这是联接中表行的[笛卡尔乘积](https://en.wikipedia.org/wiki/Cartesian_product)。乘积的结果即左表的大小乘以右表的大小。因此，我们建议在大型数据集之间慎用此联接类型。

可使用以下过程，联接两个数据集。您应该已经在数据流中导入了两个数据来源。

1. 选择要联接的左节点旁边的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。您选择的第一个节点始终是联接中的左表。

1. 将鼠标悬停在**合并数据**上，然后选择**联接**。

1. 选择正确的节点。您选择的第二个节点始终是联接中的右表。

1. 默认情况下，**联接类型**字段设置为**内部联接**。选择下拉菜单以更改联接类型。

1. 对于**联接键**，请验证左侧表格和右侧表格中要用于联接数据的列。您可以添加或删除其他联接键。

1. 对于**联接名称**，输入联接数据的名称，或者使用默认名称。

1. （可选）选择**预览**以预览联接数据。

1. 选择**添加**以完成联接。

**注意**  
如果您收到 Canvas 在联接数据时未识别出任何匹配行的通知，我们建议您验证所选列是否正确，或者更新样本以尝试查找匹配的行。您可以选择不同的采样策略或改变样本大小。有关如何编辑样本的信息，请参阅 [编辑数据流采样配置](canvas-data-flow-edit-sampling.md)。

现在，您应该可以看到数据流中添加了一个联接节点。

## 串联数据集
<a name="canvas-transform-concatenate"></a>

将一个数据集的行添加到另一个数据集来串联两个数据集。

按照以下步骤串联两个数据集。您应该已经在数据流中导入了两个数据来源。

**要串联两个数据集：**

1. 选择要串联的左节点旁边的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。您选择的第一个节点始终是串联操作中的左表。

1. 将鼠标悬停在**合并数据**上，然后选择**串联**。

1. 选择正确的节点。您选择的第二个节点始终是串联中的右表。

1. （可选）选中**串联后删除重复项**旁边的复选框，以删除重复的列。

1. （可选）选择**添加列以指示源数据框**旁边的复选框，以在生成的数据框中添加一列，列出每条记录的源数据集。

   1. 在**指标列名称**中，输入所添加列的名称。

   1. 在**表示字符串的第一个数据集**中，输入要用来标记第一个数据集（或左侧节点）中记录的值。

   1. 在**表示字符串的第二个数据集**中，输入要用来标记第二个数据集（或右侧节点）中记录的值。

1. 在**串联名称**中，输入串联的名称。

1. （可选）选择**预览**以预览串联的数据。

1. 选择**添加**，将新数据集添加到数据流中。

现在，您应该可以看到数据流中添加了一个串联节点。

## 平衡数据
<a name="canvas-transform-balance-data"></a>

对于具代表不足的类别的数据集，您可以平衡其数据。平衡数据集有助于创建更好的二进制分类模型。

**注意**  
包含列向量的数据集无法平衡。

您可以通过**平衡数据**操作，使用以下运算符之一来平衡数据：
+ *随机过采样* – 在少数类别中随机重复样本。例如，如果您尝试检测欺诈行为，但可能只有 10% 的数据存在欺诈案例。为使欺诈案例和非欺诈案例达到同等比例，此运算符将数据集中的欺诈案例随机重复 8 次。
+ *随机欠采样* – 大致等同于随机过采样。从过度代表的类别中随机删除样本，以获得您所需的样本比例。
+ *合成少数过采样技术 (SMOTE)* – 使用代表不足的类别中的样本，插入新的合成少数样本。有关 SMOTE 的更多信息，请参阅以下说明。

对于包含数字和非数字特征的数据集，可以使用所有转换。SMOTE 通过使用相邻样本插入值。Data Wrangler 使用 R 平方距离确定领域，以插入额外的样本。Data Wrangler 仅使用数字特征来计算代表不足的组中样本之间的距离。

对于代表不足的组中的两个实际样本，Data Wrangler 使用加权平均值插入数字特征。它会为 [0, 1] 范围内的样本随机分配权重。对于数字特征，Data Wrangler 使用样本的加权平均值来插入样本。对于样本 A 和 B，Data Wrangler 可能随机为 A 分配 0.7 的权重，为 B 分配 0.3。插入的样本值为 0.7A \$1 0.3B。

Data Wrangler 通过复制插入的任一实际样本，插入非数字特征。它按照随机分配给每个样本的概率复制样本。对于样本 A 和 B，它可能为 A 分配概率 0.8，为 B 分配 0.2。按照它所分配的概率，80% 的时间会复制 A。

## 自定义转换
<a name="canvas-transform-custom"></a>

**自定义变换**组允许您使用 Python（用户定义函数） PySpark、pandas 或 PySpark (SQL) 来定义自定义转换。对于所有三个选项，可以使用变量 `df` 访问要应用转换的数据框。要将自定义代码应用于数据框，可将已进行转换的数据框分配给 `df` 变量。如果您未使用 Python（用户定义函数），则无需包含返回语句。可选择**预览**，预览自定义转换的结果。可选择**添加**，将自定义转换添加到**先前的步骤**列表中。

您可以在自定义转换代码块中，使用 `import` 语句导入常用的库，如下所示：
+ NumPy 版本 1.19.0
+ scikit-learn 版本 0.23.2
+ SciPy 版本 1.5.4
+ pandas 版本 1.0.3
+ PySpark 版本 3.0.0

**重要**  
**自定义转换**不支持名称中包含空格或特殊字符的列。我们建议您指定仅包含字母数字字符和下划线的列名。您可以使用**管理列**转换组中的**重命名列**转换，从列名中删除空格。您也可以添加类似如下所示的 **Python (Pandas)** **自定义转换**，在单个步骤中删除多列的空格。以下示例将名为 `A column` 和 `B column` 的列分别更名为 `A_column` 和 `B_column`。  

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

如果在代码块中包含打印语句，那么当您选择**预览**时会显示结果。您可以调整自定义代码转换器面板的大小。调整面板大小可为编写代码提供更多空间。

以下各部分提供了更多上下文和示例，以便您编写自定义转换代码。

**Python（用户定义函数）**

借助 Python 函数，您无需了解 Apache Spark 或 pandas，即可编写自定义转换。Data Wrangler 经过优化，可快速运行您的自定义代码。通过使用自定义 Python 代码和 Apache Spark 插件，您可以获得类似的性能。

要使用 Python（用户定义函数）代码块，您需要指定以下设置：
+ **输入列** – 您要应用转换的输入列。
+ **模式** – 脚本模式，可以是 pandas 或 Python。
+ **返回类型** – 您要返回的值的数据类型。

使用 pandas 模式可以获得更好的性能。Python 模式更便于您使用纯 Python 函数编写转换。

**PySpark**

以下示例从时间戳中提取日期和时间。

```
from pyspark.sql.functions import from_unixtime, to_date, date_format
df = df.withColumn('DATE_TIME', from_unixtime('TIMESTAMP'))
df = df.withColumn( 'EVENT_DATE', to_date('DATE_TIME')).withColumn(
'EVENT_TIME', date_format('DATE_TIME', 'HH:mm:ss'))
```

**pandas**

以下示例提供要向其添加转换的数据框的概述。

```
df.info()
```

**PySpark (SQL)**

以下示例创建一个包含四列的新数据框：*name*、*fare*、*pclass*、*survived*。

```
SELECT name, fare, pclass, survived FROM df
```

如果您不知道如何使用 PySpark，则可以使用自定义代码片段来帮助您入门。

Data Wrangler 有一个可搜索的代码片段集合。您可以使用代码片段执行多种任务，例如删除列、按列分组或建模。

要使用代码片段，可选择**搜索示例代码片段**，然后在搜索栏中指定查询。您在查询中指定的文本不需要与代码片段的名称完全匹配。

以下示例显示了**删除重复行**代码片段，该代码片段可以删除数据集中具有相似数据的行。您可以通过搜索以下文本之一，查找该代码片段：
+ 重复
+ 相同
+ 删除

以下代码片段包含注释，有助于您了解需要进行哪些更改。对于大多数代码片段，您必须在代码中指定数据集的列名。

```
# Specify the subset of columns
# all rows having identical values in these columns will be dropped

subset = ["col1", "col2", "col3"]
df = df.dropDuplicates(subset)  

# to drop the full-duplicate rows run
# df = df.dropDuplicates()
```

要使用代码片段，请将其内容复制并粘贴到**自定义转换**字段中。您可以将多个代码片段复制并粘贴到自定义转换字段中。

## 自定义公式
<a name="canvas-transform-custom-formula"></a>

通过**自定义公式**，可使用 Spark SQL 表达式定义新列，以查询当前数据框中的数据。查询必须使用 Spark SQL 表达式的约定。

**重要**  
**自定义转换**不支持名称中包含空格或特殊字符的列。我们建议您指定仅包含字母数字字符和下划线的列名。您可以使用**管理列**转换组中的**重命名列**转换，从列名中删除空格。您也可以添加类似如下所示的 **Python (Pandas)** **自定义转换**，在单个步骤中删除多列的空格。以下示例将名为 `A column` 和 `B column` 的列分别更名为 `A_column` 和 `B_column`。  

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

您可以使用此转换对列执行操作，按名称引用列。例如，假设当前数据框包含名为 *col\$1a* 和 *col\$1b* 的列，您可以使用以下操作生成**输出列**，该列是上述两列的乘积，代码如下：

```
col_a * col_b
```

其他常见操作包括以下操作（假设数据框包含 `col_a` 和 `col_b` 列）：
+ 串联两列：`concat(col_a, col_b)`
+ 两列相加：`col_a + col_b`
+ 两列相减：`col_a - col_b`
+ 两列相除：`col_a / col_b`
+ 取一列的绝对值：`abs(col_a)`

有关更多信息，请参阅关于选择数据的 [Spark 文档](http://spark.apache.org/docs/latest/api/python)。

## 降低数据集中的维度
<a name="canvas-transform-dimensionality-reduction"></a>

可使用主成分分析 (PCA) 降低数据的维度。数据集的维度与特征的数量相对应。如果您在 Data Wrangler 中使用降维，您会得到一组名为“成分”的新特征。每个成分在数据中占一定的可变性。

第一个成分在数据中占最大的变化量。第二个成分在数据中占第二大的变化量，以此类推。

您可以使用降维，减小用于训练模型的数据集大小。您可以使用主成分，替代数据集中的特征。

为了执行 PCA，Data Wrangler 会为数据创建轴。轴是数据集中列的仿射组合。第一个主成分即轴上变化量最大的值。第二个主成分即轴上变化量第二大的值。第 n 个主成分即轴上变化量第 n 大的值。

您可以配置 Data Wrangler 返回的主成得分量。您可以直接指定主成分的数量，也可以指定变化阈值百分比。每个主成分都解释了数据中的变化量。例如，您可能有一个值为 0.5 的主成分。该成分可解释数据中 50% 的变化。如果您指定变化阈值百分比，Data Wrangler 会返回符合所指定百分比的最小数量的成分。

以下示例为各个主成分及其在数据中解释的变化量。
+ 成分 1 – 0.5
+ 成分 2 – 0.45
+ 成分 3 – 0.05

如果将变化阈值百分比指定为 `94` 或 `95`，则 Data Wrangler 将返回成分 1 和成分 2。如果将变化阈值百分比指定为 `96`，则 Data Wrangler 将返回全部三个主成分。

您可以使用以下过程，对数据集运行 PCA。

要对数据集运行 PCA，请执行以下操作。

1. 打开 Data Wrangler 数据流。

1. 选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**降维**。

1. 对于**输入列**，选择要简化为主成分的特征。

1. （可选）对于**主成得分量**，选择 Data Wrangler 在数据集中返回的主成得分量。如果为该字段指定值，那么无法为**变化阈值百分比**指定值。

1. （可选）对于**变化阈值百分比**，指定希望主成分可解释的数据变化百分比。如果没有为变化阈值指定值，Data Wrangler 将使用默认值 `95`。如果已经为**主成得分量**指定了值，那么无法指定变化阈值百分比。

1. （可选）取消选择**居中**，不使用列的平均值作为数据的中心。默认情况下，Data Wrangler 在缩放之前采用平均值将数据居中。

1. （可选）取消选择**缩放**，不按单位标准差缩放数据。

1. （可选）选择**列**，将成分输出到单独的列。选择**向量**，将成分输出为单个向量。

1. （可选）对于**输出列**，指定输出列的名称。如果要将成分输出到单独的列，则指定的名称为前缀。如果要将成分输出到向量，则指定的名称为向量列的名称。

1. （可选）选择**保留输入列**。如果您计划仅使用主成分来训练模型，我们不建议您选择此选项。

1. 选择**预览**。

1. 选择**添加**。

## 对分类数据进行编码
<a name="canvas-transform-cat-encode"></a>

分类数据通常由有限数量的类别组成，其中每个类别用字符串表示。例如，如果您有客户数据表，则表明某人居住的国家/地区的列即为分类数据。类别有 *Afghanistan*、*Albania*、*Algeria* 等等。分类数据可以是*标称的*或*有序的*。有序类别有固有的次序，标称类别则没有。获得的最高学位（*High school*、*Bachelors*、*Masters* 等）即有序类别的一个示例。

对分类数据进行编码是为类别创建数字表示形式的过程。例如，如果你的分类是 *Dog* 和 *Cat*，则可以将此信息编码为两个向量：`[1,0]` 表示 *Dog*，`[0,1]` 表示 *Cat*。

对有序类别进行编码时，可能需要将类别的自然顺序转换为编码。例如，您可以采用以下映射表示获得的最高学位：`{"High school": 1, "Bachelors": 2, "Masters":3}`。

可使用分类编码，将字符串格式的分类数据编码为整数数组。

Data Wrangler 分类编码器会在定义步骤时，为列中存在的所有类别创建编码。如果在时间 *t*，您启动 Data Wrangler 作业以处理数据集时，列中添加了新的类别，并且此列在时间 *t*-1 是 Data Wrangler 分类编码转换的输入，那么这些新类别在 Data Wrangler 中将被视为*缺失*。您为**无效值处理策略**所选择的选项将应用于这些缺失值。何时会发生此类情况的示例如下：
+ 当您使用 .flow 文件创建 Data Wrangler 作业以处理数据集，而此数据集在数据流创建后更新了的时候。例如，您可能使用数据流每月定期处理销售数据。如果销售数据每周更新一次，对于已定义编码分类步骤的列，可能会有新的类别引入该列中。
+ 当您在导入数据集时选择**采样**，某些类别可能被排除在样本之外的时候。

在上述情况中，这些新的类别在 Data Wrangler 作业中被视为缺失值。

您可以选择*有序的*或*独热编码*，并进行配置。可通过以下部分了解有关这些选项的更多信息。

两种转换均创建一个名为**输出列**的新列。可以使用**输出样式**，指定此列的输出格式:
+ 选择**向量**，生成包含稀疏向量的单列。
+ 选择**列**，为每个类别创建一列，其中包含一个指示器变量，用于指示原始列中的文本是否包含等于该类别的值。

### 有序编码
<a name="canvas-transform-cat-encode-ordinal"></a>

选择**有序编码**，将类别编码为介于 0 到所选**输入列**中类别总数之间的整数。

**无效值处理策略**：选择处理无效值或缺失值的方法。
+ 如果您希望忽略含缺失值的行，可选择**跳过**。
+ 选择**保留**，将缺失值保留为最后一个类别。
+ 如果您希望当**输入列**中遇到缺失值时，Data Wrangler 引发错误，可选择**错误**。
+ 选择**替换为 NaN**，用 NaN 替换缺失值。如果机器学习算法可以处理缺失值，我们建议使用此选项。否则，此列表中的前三个选项可能会产生更好的结果。

### 独热编码
<a name="canvas-transform-cat-encode-onehot"></a>

可以为**转换**选择**独热编码**，以使用独热编码。可通过以下选项配置此转换：
+ **删除最后一个类别**：如果为 `True`，则最后一个类别在独热编码中没有相应的索引。当可能存在缺失值时，缺失的类别始终是最后一个，将此选项设置为 `True` 意味着缺失值会导致全零向量。
+ **无效值处理策略**：选择处理无效值或缺失值的方法。
  + 如果您希望忽略含缺失值的行，可选择**跳过**。
  + 选择**保留**，将缺失值保留为最后一个类别。
  + 如果您希望当**输入列**中遇到缺失值时，Data Wrangler 引发错误，可选择**错误**。
+ **输入是否为有序编码**：如果输入向量包含有序编码的数据，可选择此选项。此选项要求输入数据包含非负整数。如果为**真**，则输入 *i* 被编码为在第 *i* 个位置非零的向量。

### 相似性编码
<a name="canvas-transform-cat-encode-similarity"></a>

如果您有以下数据，则可使用相似性编码：
+ 大量分类变量
+ 噪声数据

相似性编码器为包含分类数据的列创建嵌入。嵌入即从离散对象（如单词）到实数向量的映射。该编码器将类似的字符串编码为包含相似值的向量。例如，为“California”和“Calfornia”创建极为相似的编码。

Data Wrangler 使用 3-gram 分词器将数据集中的每个类别转换为一组令牌。该编码器使用最小哈希编码将令牌转换为嵌入。

Data Wrangler 创建的相似性编码：
+ 具有较低维度
+ 可扩展到大量类别
+ 稳健且耐噪声

出于上述原因，相似性编码比独热编码更为通用。

要将相似性编码转换添加到数据集中，请按以下过程操作。

要使用相似性编码，请执行以下操作。

1. 登录 [Amazon A SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 选择**打开 Studio Classic**。

1. 选择**启动应用程序**。

1. 选择 **Studio**。

1. 指定数据流。

1. 选择有转换的步骤。

1. 选择**添加步骤**。

1. 选择**对分类数据进行编码**。

1. 指定以下内容：
   + **转换** – **相似性编码**
   + **输入列** – 包含要编码的分类数据的列。
   + **目标维度** –（可选）分类嵌入向量的维度。默认值为 30。如果您的大型数据集包含许多类别，我们建议使用较大的目标维度。
   + **输出样式** – 选择**向量**，在单个向量中包含所有编码的值。选择**列**，将编码的值放在单独的列中。
   + **输出列** –（可选）对于向量编码的输出，为输出列的名称。对于列编码的输出，为列名称的前缀，后跟列出的数字。

## 特征化文本
<a name="canvas-transform-featurize-text"></a>

可使用**特征化文本**转换组，检查字符串类型的列，并使用文本嵌入对这些列特征化。

此特征组包含两个特征：*字符统计*和*向量化*。可通过以下部分了解有关这些转换的更多信息。对于这两个选项，**输入列**必须包含文本数据（字符串类型）。

### 字符统计
<a name="canvas-transform-featurize-text-character-stats"></a>

可使用**字符统计**，为包含文本数据的列中的每一行生成统计信息。

此转换将为每一行计算以下比率和计数，并创建新的列以报告结果。该新列采用输入列名称作为前缀，以及特定于比率或计数的后缀来命名。
+ **字数**：该行中单词的总数。此输出列的后缀为 `-stats_word_count`。
+ **字符数**：该行中字符的总数。此输出列的后缀为 `-stats_char_count`。
+ **大写比率**：从 A 到 Z 的大写字符数除以列中的所有字符数。此输出列的后缀为 `-stats_capital_ratio`。
+ **小写比率**：从 a 到 z 的小写字符数除以列中的所有字符数。此输出列的后缀为 `-stats_lower_ratio`。
+ **数字比率**：单行中的数字与输入列中数字总和的比率。此输出列的后缀为 `-stats_digit_ratio`。
+ **特殊字符比率**：非字母数字字符（如 \$1\$1&%:@）与输入列中所有字符总和的比率。此输出列的后缀为 `-stats_special_ratio`。

### 向量化
<a name="canvas-transform-featurize-text-vectorize"></a>

文本嵌入涉及将词汇表中的单词或短语映射到实数向量。可使用 Data Wrangler 文本嵌入转换，将文本数据令牌化和向量化为词频-逆文档频率 (TF-IDF) 向量。

当为一列文本数据计算 TF-IDF 时，每句话中的每个单词都将转换为代表其语义重要性的实数。数字越高，与之关联的单词出现频率越低，这些单词往往更有意义。

在定义**向量化**转化步骤时，Data Wrangler 使用数据集中的数据来定义计数向量化器和 TF-IDF 方法。运行 Data Wrangler 作业时会使用相同的方法。

您可以使用以下选项配置此转换：
+ **输出列名**：此转换将创建包含文本嵌入的新列。此字段可用于指定此输出列的名称。
+ **分词器**：分词器将句子转换为单词或*令牌*列表。

  可选择**标准**，使用按空格拆分单词并将每个单词转换为小写的分词器。例如，`"Good dog"` 被令牌化为 `["good","dog"]`。

  可选择**自定义**，使用自定义的分词器。如果选择**自定义**，则可使用以下字段来配置分词器：
  + **最小令牌长度**：令牌有效的最小长度（以字符为单位）。默认值为 `1`。例如，如果将最小令牌长度指定为 `3`，那么诸如 `a, at, in` 等单词将从令牌化句子中删除。
  + **正则表达式是否按间隔拆分**：如果选中，则**正则表达式**按间隔拆分。否则，将与令牌匹配。默认值为 `True`。
  + **正则表达式模式**：定义令牌化过程的正则表达式模式。默认值为 `' \\ s+'`。
  + **转换为小写**：如果选中，则 Data Wrangler 在令牌化之前将所有字符转换为小写。默认值为 `True`。

  要了解更多信息，请参阅有关[分词器](https://spark.apache.org/docs/latest/ml-features#tokenizer)的 Spark 文档。
+ **向量器**：向量器将令牌列表转换为稀疏数字向量。每个令牌对应于向量中的索引，非零表示输入句子中存在该令牌。您可以从两个向量器选项中进行选择：*计数*和*哈希*。
  + **计数向量化**允许自定义筛选不常见或太常见的令牌。**计数向量化参数**包括以下选项：
    + **最低词频**：在每一行中，筛选掉频率较低的词（令牌）。如果指定一个整数，那么该值为绝对阈值（含该值）。如果指定一个介于 0（含）到 1 之间的得分，那么阈值是总词数的相对值。默认值为 `1`。
    + **最小文档频率**：必须包含词（令牌）的最小行数。如果指定一个整数，那么该值为绝对阈值（含该值）。如果指定一个介于 0（含）到 1 之间的得分，那么阈值是总词数的相对值。默认值为 `1`。
    + **最大文档频率**：可以包含词（令牌）的最大文档（行）数。如果指定一个整数，那么该值为绝对阈值（含该值）。如果指定一个介于 0（含）到 1 之间的得分，那么阈值是总词数的相对值。默认值为 `0.999`。
    + **最大词汇量**：词汇表的最大大小。词汇表由列所有行中的所有词（令牌）组成。默认值为 `262144`。
    + **二进制输出**：如果选中，则向量输出不包括词在文档中的出现次数，而是词是否出现的二进制指示器。默认值为 `False`。

    要了解有关此选项的更多信息，请参阅上的 Spark 文档[CountVectorizer](https://spark.apache.org/docs/latest/ml-features#countvectorizer)。
  + **哈希**计算速度更快。**哈希向量化参数**包括以下选项：
    + **哈希过程中的特征数**：哈希向量器根据令牌的哈希值，将令牌映射到向量索引。此特征决定了可能的哈希值的数量。较大的值会减少哈希值之间的冲突，但会导致较高的维度输出向量。

    要了解有关此选项的更多信息，请参阅上的 Spark 文档 [FeatureHasher](https://spark.apache.org/docs/latest/ml-features#featurehasher)
+ **应用 IDF**：选中后，将应用 IDF 转换，该转换将词频与用于 TF-IDF 嵌入的标准逆文档频率相乘。**IDF 参数**包括以下选项：
  + **最小文档频率**：必须包含词（令牌）的最小文档（行）数。如果 **count \$1vectorize** 是选择的向量器，我们建议您保留默认值，只修改**计数向量化参数**中的 **min\$1doc\$1freq** 字段。默认值为 `5`。
+ **输出格式**：每行的输出格式。
  + 选择**向量**，生成包含稀疏向量的单列。
  + 选择**展平**，为每个类别创建一列，其中包含一个指示器变量，以指示原始列中的文本是否包含与该类别相等的值。如果**向量器**设置为**计数向量器**，那么只能选择展平。

## 转换时间序列
<a name="canvas-transform-time-series"></a>

在 Data Wrangler 中，您可以转换时间序列数据。时间序列数据集中的值按特定时间编制索引。例如，显示一天中每小时商店中的顾客数量的数据集，即时间序列数据集。下表显示了时间序列数据集示例。

商店中每小时的顾客数


| 顾客数 | 时间（小时） | 
| --- | --- | 
| 4 | 09:00 | 
| 10 | 10:00 | 
| 14 | 11:00 | 
| 25 | 12:00 | 
| 20 | 13:00 | 
| 18 | 14:00 | 

对于上表，**顾客数**列中包含时间序列数据。时间序列数据根据**时间（小时）**列中的每小时数据编制索引。

您可能需要对数据执行一系列转换，才能获得可用于分析的格式。可使用**时间序列**转换组，对时间序列数据进行转换。有关可执行的转换的详细信息，请参阅以下各节。

**Topics**
+ [按时间序列分组](#canvas-group-by-time-series)
+ [重新采样时间序列数据](#canvas-resample-time-series)
+ [处理缺失的时间序列数据](#canvas-transform-handle-missing-time-series)
+ [验证时间序列数据的时间戳](#canvas-transform-validate-timestamp)
+ [标准化时间序列的长度](#canvas-transform-standardize-length)
+ [从时间序列数据中提取特征](#canvas-transform-extract-time-series-features)
+ [使用时间序列数据的滞后特征](#canvas-transform-lag-time-series)
+ [在时间序列中创建日期时间范围](#canvas-transform-datetime-range)
+ [在时间序列中使用滚动窗口](#canvas-transform-rolling-window)

### 按时间序列分组
<a name="canvas-group-by-time-series"></a>

您可以使用按操作分组，对列中特定值的时间序列数据进行分组。

例如，您通过下表跟踪住户的平均每日用电量：

平均每日住户用电量


| 住户 ID | 每日时间戳 | 用电量 (kWh) | 住户人数 | 
| --- | --- | --- | --- | 
| household\$10 | 1/1/2020 | 30 | 2 | 
| household\$10 | 2020 年 2 月 1 日 | 40 | 2 | 
| household\$10 | 2020 年 4 月 1 日 | 35 | 3 | 
| household\$11 | 2020 年 2 月 1 日 | 45 | 3 | 
| household\$11 | 2020 年 3 月 1 日 | 55 | 4 | 

如果您选择按 ID 分组，则可获得下表。

按住户 ID 分组的用电量


| 住户 ID | 用电量序列 (kWh) | 住户人数序列 | 
| --- | --- | --- | 
| household\$10 | [30, 40, 35] | [2, 2, 3] | 
| household\$11 | [45, 55] | [3, 4] | 

时间序列中的每一项按照相应的时间戳排序。序列的第一个元素对应于该序列的第一个时间戳。对于 `household_0`，`30` 是**用电量序列**的第一个值。值 `30` 对应于第一个时间戳 `1/1/2020`。

您可以将开始时间戳和结束时间戳包括在内。下表显示了这些信息的显示方式。

按住户 ID 分组的用电量


| 住户 ID | 用电量序列 (kWh) | 住户人数序列 | Start\$1time | End\$1time | 
| --- | --- | --- | --- | --- | 
| household\$10 | [30, 40, 35] | [2, 2, 3] | 1/1/2020 | 2020 年 4 月 1 日 | 
| household\$11 | [45, 55] | [3, 4] | 2020 年 2 月 1 日 | 2020 年 3 月 1 日 | 

您可以使用以下过程，按时间序列列进行分组。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**时间序列**。

1. 在**转换**下，选择**分组依据**。

1. 在**按此列分组**中，指定一列。

1. 对于**应用于列**，指定一个值。

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 重新采样时间序列数据
<a name="canvas-resample-time-series"></a>

时间序列数据中通常包含并非定期取得的观测值。例如，数据集中某些观测值是每小时记录的，而其他一些观测值是每两小时记录的。

许多分析（如预测算法）需要定期取得的观测值。您可以通过重新采样，为数据集中的观测值建立定期间隔。

您可以对时间序列进行上采样或下采样。下采样会延长数据集中观测值之间的间隔。例如，如果对每小时或每两小时记录的观测值进行下采样，那么数据集中的每个观测值将每两小时记录一次。对于每小时观测值，将使用聚合方法（如平均值或中位数）聚合为单个值。

上采样则会缩短数据集中观测值之间的间隔。例如，如果将每两小时记录一次的观测值上采样为每小时观测值，那么可以使用插值方法，从每两小时取得的观测值中推断出每小时观测值。[有关插值方法的信息，请参阅 pandas。 DataFrame.interpolate。](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html)

您可以对数字数据和非数字数据重新采样。

可使用**重新采样**操作，对时间序列数据重新采样。如果数据集中有多个时间序列，Data Wrangler 会标准化每个时间序列的时间间隔。

下表显示了使用平均值聚合方法对时间序列数据进行下采样的示例。数据采样从每两小时一次降到每小时一次。

下采样前一天的每小时温度读数


| Timestamp | 温度（摄氏度） | 
| --- | --- | 
| 12:00 | 30 | 
| 1:00 | 32 | 
| 2:00 | 35 | 
| 3:00 | 32 | 
| 4:00 | 30 | 

延长至每两小时的温度读数


| Timestamp | 温度（摄氏度） | 
| --- | --- | 
| 12:00 | 30 | 
| 2:00 | 33.5 | 
| 4:00 | 35 | 

您可以使用以下过程，对时间序列数据重新采样。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**重新采样**。

1. 对于**时间戳**，选择时间戳列。

1. 对于**频率单位**，指定要重新采样的频率。

1. （可选）指定**频率数量**值。

1. 指定其余的字段配置转换。

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 处理缺失的时间序列数据
<a name="canvas-transform-handle-missing-time-series"></a>

如果数据集中有缺失值，可执行以下操作之一：
+ 对于具有多个时间序列的数据集，可删除其缺失值大于指定阈值的时间序列。
+ 使用时间序列中的其他值，填补时间序列中的缺失值。

填补缺失值涉及通过指定值或使用推理方法来替换数据。以下是可用于填补的方法：
+ 常量值 – 将数据集中所有缺失数据替换为指定值。
+ 最常见的值 – 将所有缺失数据替换为数据集中出现频率最高的值。
+ 向前填充 – 使用向前填充，将缺失值替换为缺失值前面的非缺失值。对于序列 [2, 4, 7, NaN, NaN, NaN, 8]，所有缺失值将替换为 7。采用向前填充产生的序列为 [2, 4, 7, 7, 7, 7, 8]。
+ 向后填充 – 使用向后填充，将缺失值替换为缺失值后面的非缺失值。对于序列 [2, 4, 7, NaN, NaN, NaN, 8]，所有缺失值将替换为 8。采用向后填充产生的序列为 [2, 4, 7, 8, 8, 8, 8]。
+ 插值 – 使用插值函数填补缺失值。[有关可用于插值的函数的更多信息，请参阅 pandas。 DataFrame.interpolate。](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html)

某些填补方法可能无法填补数据集中的所有缺失值。例如，**向前填充**无法填补出现在时间序列开头的缺失值。您可以使用向前填充或向后填充来填补值。

您可以填补单元格内或列中的缺失值。

以下示例显示了如何填补单元格内的值。

含缺失值的用电量


| 住户 ID | 用电量序列 (kWh) | 
| --- | --- | 
| household\$10 | [30, 40, 35, NaN, NaN] | 
| household\$11 | [45, NaN, 55] | 

采用向前填充填补值的用电量


| 住户 ID | 用电量序列 (kWh) | 
| --- | --- | 
| household\$10 | [30, 40, 35, 35, 35] | 
| household\$11 | [45, 45, 55] | 

以下示例显示了如何填补列中的值。

含缺失值的平均每日住户用电量


| 住户 ID | 用电量 (kWh) | 
| --- | --- | 
| household\$10 | 30 | 
| household\$10 | 40 | 
| household\$10 | NaN | 
| household\$11 | NaN | 
| household\$11 | NaN | 

采用向前填充填补值的平均每日住户用电量


| 住户 ID | 用电量 (kWh) | 
| --- | --- | 
| household\$10 | 30 | 
| household\$10 | 40 | 
| household\$10 | 40 | 
| household\$11 | 40 | 
| household\$11 | 40 | 

您可以使用以下过程，处理缺失值。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**处理缺失值**。

1. 对于**时间序列输入类型**，选择是按照单元格还是列，处理缺失值。

1. 对于**填补此列的缺失值**，指定包含缺失值的列。

1. 对于**填补值的方法**，选择一种方法。

1. 指定其余的字段配置转换。

1. 选择**预览**，生成转换的预览。

1. 如果您有缺失值，那么可以在**填补值的方法**下，指定方法来填补缺失值。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 验证时间序列数据的时间戳
<a name="canvas-transform-validate-timestamp"></a>

您可能有无效的时间戳数据。您可以使用**验证时间戳**函数，确定数据集中的时间戳是否有效。时间戳可能因以下一个或多个原因无效：
+ 时间戳列包含缺失值。
+ 时间戳列中的值格式不正确。

如果数据集中有无效的时间戳，则无法成功执行分析。您可以使用 Data Wrangler 来识别无效的时间戳，并了解需要在哪里清理数据。

时间序列验证按下面的两种方式之一运行：

可以配置 Data Wrangler，使之在数据集中遇到缺失值时执行以下操作之一：
+ 删除含缺失值或无效值的行。
+ 识别含缺失值或无效值的行。
+ 如果在数据集中发现任何缺失值或无效值，则引发错误。

可以对包含 `timestamp` 类型或 `string` 类型的列，验证时间戳。如果列包含 `string` 类型，Data Wrangler 会将列的类型转换为 `timestamp`，然后执行验证。

您可以使用以下过程，验证数据集中的时间戳。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**验证时间戳**。

1. 对于**时间戳列**，选择时间戳列。

1. 对于**策略**，选择是否要处理缺失的时间戳。

1. （可选）对于**输出列**，指定输出列的名称。

1. 如果日期时间列的格式为字符串类型，可选择**转为日期时间**。

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 标准化时间序列的长度
<a name="canvas-transform-standardize-length"></a>

如果将时间序列数据存储为数组，那么可以将每个时间序列标准化为相同的长度。通过标准化时间序列数组的长度，您或许能更轻松地执行数据分析。

对于需要固定数据长度的数据转换，您可以对时间序列进行标准化。

许多机器学习算法要求您在使用时间序列数据之前，对数据进行展平。展平时间序列数据是在数据集中，将时间序列的每个值分隔到自己的列中。数据集中的列数不能更改，因此需要在将每个数组展平为一组特征的过程中，对时间序列的长度进行标准化。

每个时间序列的长度可设置为指定的时间序列集的分位数或百分位数。例如，您可能拥有三个长度如下的序列：
+ 3
+ 4
+ 5

您可以将所有序列的长度设置为长度为第 50 个百分位数的序列的长度。

小于指定长度的时间序列数组会添加缺失值。以下示例格式将时间序列标准化为更长的长度：[2, 4, 5, NaN, NaN, NaN]。

您可以使用不同的方法处理缺失值。有关这些方法的信息，请参阅[处理缺失的时间序列数据](#canvas-transform-handle-missing-time-series)。

大于指定长度的时间序列数组将被截断。

您可以使用以下过程，对时间序列的长度进行标准化。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**标准化长度**。

1. 对于**为此列标准化时间序列长度**，选择一列。

1. （可选）对于**输出列**，指定输出列的名称。如果未指定名称，则转换将就地完成。

1. 如果日期时间列的格式为字符串类型，可选择**转为日期时间**。

1. 选择**截止分位数**，指定一个分位数以设置序列的长度。

1. 选择**展平输出**，将时间序列的值输出到单独的列中。

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 从时间序列数据中提取特征
<a name="canvas-transform-extract-time-series-features"></a>

如果对时间序列数据运行分类或回归算法，我们建议在运行算法之前，从时间序列中提取特征。提取特征可能会提高算法的性能。

可使用以下选项，选择要从数据中提取特征的方式：
+ 使用**最小子集**，指定提取您认为在下游分析中有用的 8 个特征。如果需要快速执行计算，则可使用最小子集。如果机器学习算法有过度拟合的高风险，并且您希望为其提供较少的特征，那么也可以使用此方式。
+ 使用**高效子集**，指定在不提取分析中计算密集型特征的情况下，尽可能提取最多的特征。
+ 使用**所有特征**，指定从调整序列中提取所有特征。
+ 使用**手动子集**，选择您认为可充分解释数据变化的特征列表。

可使用以下过程，从时间序列数据中提取特征。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**提取特征**。

1. 对于**为此列提取特征**，选择一列。

1. （可选）选择**展平**，将特征输出到单独的列中。

1. 对于**策略**，选择提取特征的策略。

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 使用时间序列数据的滞后特征
<a name="canvas-transform-lag-time-series"></a>

对于许多使用案例来说，预测时间序列未来行为的最佳方法，是使用其最近的行为。

滞后特征最常见的用途如下：
+ 收集少许过去的值。例如，对于时间 t \$1 1，收集 t、t - 1、t - 2 和 t - 3。
+ 收集与数据中的周期性行为对应的值。例如，要预测下午 1:00 餐厅的上座率，您可能要使用前一天下午 1:00 的特征。如果使用当天中午 12:00 或上午 11:00 的特征，可能不像使用前几天的特征那样具有预测性。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**滞后特征**。

1. 对于**为此列生成滞后特征**，选择一列。

1. 对于**时间戳列**，选择包含时间戳的列。

1. 对于**滞后**，指定滞后的持续时间。

1. （可选）可使用以下选项之一配置输出：
   + **包括整个滞后窗口**
   + **展平输出**
   + **删除无历史记录的行**

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 在时间序列中创建日期时间范围
<a name="canvas-transform-datetime-range"></a>

您可能有不含时间戳的时间序列数据。如果您知道观测值是定期取得的，那么可以在单独的列中为时间序列生成时间戳。要生成时间戳，请指定开始时间戳的值和时间戳的频率。

例如，您可能有以下时间序列数据，一家餐厅的顾客数量。

餐厅顾客数的时间序列数据


| 顾客数 | 
| --- | 
| 10 | 
| 14 | 
| 24 | 
| 40 | 
| 30 | 
| 20 | 

如果您知道餐厅下午 5:00 开始营业，并且每小时记录一次观测值，那么可以添加与时间序列数据对应的时间戳列。您可以在下表中看到时间戳列。

餐厅顾客数的时间序列数据


| 顾客数 | Timestamp | 
| --- | --- | 
| 10 | 1:00 PM | 
| 14 | 2:00 PM | 
| 24 | 3:00 PM | 
| 40 | 4:00 PM | 
| 30 | 5:00 PM | 
| 20 | 6:00 PM | 

可使用以下过程，向数据添加日期时间范围。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**日期时间范围**。

1. 对于**频率类型**，选择用于衡量时间戳频率的单位。

1. 对于**开始时间戳**，指定开始的时间戳。

1. 对于**输出列**，指定输出列的名称。

1. （可选）使用其余的字段配置输出。

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

### 在时间序列中使用滚动窗口
<a name="canvas-transform-rolling-window"></a>

您可以提取一段时间内的特征。例如，给定时间 *t*，时间窗口长度为 3，以及表示第 *t* 个时间戳的行，我们可追加时间 *t* - 3、*t* -2 和 *t* - 1 时从时间序列提取的特征。有关提取特征的信息，请参阅[从时间序列数据中提取特征](#canvas-transform-extract-time-series-features)。

您可以使用以下过程，提取一段时间内的特征。

1. 打开 Data Wrangler 数据流。

1. 在数据流中，在**数据类型**下，选择 **\$1**，然后选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**滚动窗口特征**。

1. 对于**为此列生成滚动窗口特征**，选择一列。

1. 对于**时间戳列**，选择包含时间戳的列。

1. （可选）对于**输出列**，指定输出列的名称。

1. 对于**窗口大小**中，指定窗口大小。

1. 对于**策略**，选择提取策略。

1. 选择**预览**，生成转换的预览。

1. 选择**添加**，将转换添加到 Data Wrangler 数据流中。

## 特征化日期时间
<a name="canvas-transform-datetime-embed"></a>

可使用**特征化日期/时间**，创建表示日期时间字段的向量嵌入。要使用此转换，日期时间数据必须采用以下格式之一：
+ 描述日期时间的字符串：例如，`"January 1st, 2020, 12:44pm"`。
+ Unix 时间戳：描述自 1970 年 1 月 1 日以来的秒数、毫秒数、微秒数或纳秒数的 Unix 时间戳。

您可以选择**推断日期时间格式**，或者提供**日期时间格式**。如果提供日期时间格式，则必须使用 [Python 文档](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes)中所述的代码。为这两种配置选择的选项，会影响到操作速度和最终结果：
+ 手动程度最高且计算速度最快的选项是指定**日期时间格式**，并为**推断日期时间格式**选择**否**。
+ 要减少手动工作量，可以选择**推断日期时间格式**，而不是指定日期时间格式。此操作的计算速度也很快，不过，此配置会假定在输入列中遇到的第一个日期时间格式是整个列的格式。如果列中还有其他格式，这些值在最终输出中会显示为 NaN。推断日期时间格式可为您提供未解析的字符串。
+ 如果未指定格式，并且为**推断日期时间格式**选择了**否**，那么您会得到最稳健的结果。所有有效的日期时间字符串都将进行解析。但是，此操作可能会比列表中的前两个选项慢一个数量级。

使用此转换时，应指定包含上述格式之一的日期时间数据的**输入列**。转换会创建名为**输出列名**的输出列。输出列的格式取决于通过以下选项进行的配置：
+ **向量**：将单列输出为向量。
+ **列**：为每个特征创建新的列。例如，如果输出包含年、月和日，那么将会为年、月和日创建三个单独的列。

此外，必须选择**嵌入模式**。对于线性模型和深度网络，我们建议选择**循环的**。对于基于树的算法，我们建议选择**有序的**。

## 格式化字符串
<a name="canvas-transform-format-string"></a>

**格式化字符串**转换包含标准的字符串格式化操作。例如，您可以使用这些操作删除特殊字符、规范化字符串长度以及更新字符串大小写。

此特征组包含以下转换。所有转换都将在**输入列**中返回字符串副本，然后将结果添加到新的输出列。


| Name | 函数 | 
| --- | --- | 
| 左侧填充 |  使用给定的**填充字符**，填充字符串的左侧，以达到给定**宽度**。如果字符串的长度超过**宽度**，则返回值将缩短至**宽度**字符。  | 
| 右侧填充 |  使用给定的**填充字符**，填充字符串的右侧，以达到给定**宽度**。如果字符串的长度超过**宽度**，则返回值将缩短至**宽度**字符。  | 
| 中心（两侧填充） |  使用给定的**填充字符**，在字符串两侧进行填充，以达到给定**宽度**。如果字符串的长度超过**宽度**，则返回值将缩短至**宽度**字符。  | 
| 前面加零 |  用零填充数字字符串的左侧，以达到给定**宽度**。如果字符串的长度超过**宽度**，则返回值将缩短至**宽度**字符。  | 
| 左右剥离 |  返回删除了前导字符和尾随字符的字符串副本。  | 
| 左侧字符剥离 |  返回删除了前导字符的字符串副本。  | 
| 右侧字符剥离 |  返回删除了尾随字符的字符串副本。  | 
| 小写 |  将文本中的所有字母转换为小写。  | 
| 大写 |  将文本中的所有字母转换为大写。  | 
| 首字母大写 |  将每个句子的第一个字母大写。  | 
| 交换大小写 | 将给定字符串的所有大写字符转换为小写，将所有小写字符转换为大写，然后返回。 | 
| 添加前缀或后缀 |  为字符串列添加前缀和后缀。必须指定至少一个**前缀**和**后缀**。  | 
| 删除符号 |  从字符串中删除给定符号。列出的所有字符都将删除。默认值为空格。  | 

## 处理异常值
<a name="canvas-transform-handle-outlier"></a>

机器学习模型对特征值的分布和范围很敏感。异常值或稀有值可能会对模型准确性产生负面影响，并导致更长的训练时间。可使用此特征组，检测并更新数据集中的异常值。

在定义**处理异常值**转换步骤时，用于检测异常值的统计数据是在定义此步骤时，根据 Data Wrangler 中的可用数据生成的。运行 Data Wrangler 作业时，也会用到这些统计数据。

可通过以下部分，了解有关此组所包含的转换的更多信息。指定**输出名称**以及以下转换中的每一个，都会生成含结果数据的输出列。

### 稳健标准差数字异常值
<a name="canvas-transform-handle-outlier-rstdev"></a>

此转换使用对异常值而言稳健的统计数据，检测并修复数字特征中的异常值。

您必须为用于计算异常值的统计数据，定义**上分位数**和**下分位数**。还必须指定一个**标准差**数，值必须偏离平均值此数额，才能被视为异常值。例如，如果指定**标准差**为 3，那么值必须偏离平均值 3 个标准差以上，才会被视为异常值。

**修复方法**是在检测到异常值后，用于处理异常值的方法。可从以下选项中进行选择：
+ **裁剪**：使用此选项可将异常值剪裁到相应的异常值检测边界。
+ **删除**：使用此选项可从数据框中删除含异常值的行。
+ **失效**：使用此选项可用无效值替换异常值。

### 标准差数字异常值
<a name="canvas-transform-handle-outlier-sstdev"></a>

此转换使用平均值和标准差检测并修复数字特征中的异常值。

您可以指定一个**标准差**数，值必须偏离平均值此数额，才能被视为异常值。例如，如果指定**标准差**为 3，那么值必须偏离平均值 3 个标准差以上，才会被视为异常值。

**修复方法**是在检测到异常值后，用于处理异常值的方法。可从以下选项中进行选择：
+ **裁剪**：使用此选项可将异常值剪裁到相应的异常值检测边界。
+ **删除**：使用此选项可从数据框中删除含异常值的行。
+ **失效**：使用此选项可用无效值替换异常值。

### 分位数数字异常值
<a name="canvas-transform-handle-outlier-quantile-numeric"></a>

可使用此转换，通过分位数检测并修复数字特征中的异常值。您可以定义**上分位数**和**下分位数**。所有高于上分位数或低于下分位数的值，均被视为异常值。

**修复方法**是在检测到异常值后，用于处理异常值的方法。可从以下选项中进行选择：
+ **裁剪**：使用此选项可将异常值剪裁到相应的异常值检测边界。
+ **删除**：使用此选项可从数据框中删除含异常值的行。
+ **失效**：使用此选项可用无效值替换异常值。

### 最小-最大数字异常值
<a name="canvas-transform-handle-outlier-minmax-numeric"></a>

此转换使用上限和下限阈值检测并修复数字特征中的异常值。如果您知道区分异常值的阈值，可使用此方法。

您应指定**上限阈值**和**下限阈值**，如果值分别高于或低于这些阈值，则被视为异常值。

**修复方法**是在检测到异常值后，用于处理异常值的方法。可从以下选项中进行选择：
+ **裁剪**：使用此选项可将异常值剪裁到相应的异常值检测边界。
+ **删除**：使用此选项可从数据框中删除含异常值的行。
+ **失效**：使用此选项可用无效值替换异常值。

### 替换稀有值
<a name="canvas-transform-handle-outlier-replace-rare"></a>

使用**替换稀有值**转换时，您指定一个阈值，Data Wrangler 会查找符合该阈值的所有值，然后将其替换为您指定的字符串。例如，您可能希望使用此转换，将列中的所有异常值归类到“其他”类别中。
+ **替换字符串**：用来替换异常值的字符串。
+ **绝对阈值**：如果实例数小于或等于此绝对阈值，则类别为稀有。
+ **得分阈值**：如果实例数小于或等于此得分阈值乘以行数，则类别为稀有。
+ **最大常见类别**：操作后保留的最大非稀有类别。如果阈值未筛选足够多的类别，那么出现频率最多的类别将被归为非稀有类别。如果设置为 0（默认值），那么类别数量没有硬性限制。

## 处理缺失值
<a name="canvas-transform-handle-missing"></a>

在机器学习数据集中，缺失值属于常见情况。在某些情况下，使用计算值（如平均值或绝对普通值）来填补缺失的数据是合适的。您可以使用**处理缺失值**转换组来处理缺失值。此组包含以下转换。

### 填充缺失值
<a name="canvas-transform-fill-missing"></a>

可使用**填充缺失值**转换，将缺失值替换为您所定义的**填充值**。

### 填补缺失值
<a name="canvas-transform-impute"></a>

可使用**填补缺失值**转换，创建新的列，其中包含在输入分类数据和数字数据中发现的缺失值的填补值。配置取决于您的数据类型。

对于数字数据，可选择一个填补策略，用于确定要填补的新值。您可以选择填补数据集中所存在值的平均值或中位数。Data Wrangler 使用它所计算的值来填补缺失值。

对于分类数据，Data Wrangler 使用列中最常见的值来填补缺失值。如果要填补自定义字符串，可改用**填充缺失值**转换。

### 添加缺失值指示器
<a name="canvas-transform-missing-add-indicator"></a>

可使用**添加缺失值指示器**转换，创建包含布尔值的新的指示器列：如果行中包含值，则为 `"false"`；如果行中包含缺失值，则为 `"true"`。

### 删除缺失值
<a name="canvas-transform-drop-missing"></a>

可使用**删除缺失值**选项，从**输入列**中删除包含缺失值的行。

## 管理列
<a name="canvas-manage-columns"></a>

您可以使用以下转换，快速更新和管理数据集中的列：


****  

| Name | 函数 | 
| --- | --- | 
| 删除列 | 对列进行删除。 | 
| 复制列 | 对列进行复制。 | 
| 重命名列 | 对列进行重命名。 | 
| 移动列 |  移动列在数据集中的位置。可选择将列移动到数据集的起始或结尾、参考列之前或之后，或特定索引。  | 

## 管理行
<a name="canvas-transform-manage-rows"></a>

可使用此转换组，对行快速执行排序和打乱操作。此组包含以下转换：
+ **排序**：按给定列对整个数据框进行排序。可为此选项选中**升序**旁边的复选框。或者，取消选中该复选框并按降序进行排列。
+ **打乱**：随机打乱数据集中的所有行。

## 管理向量
<a name="canvas-transform-manage-vectors"></a>

可使用此转换组，合并或展平向量列。此组包含以下转换。
+ **组合**：可使用此转换，将 Spark 向量和数字数据合并到单列中。例如，您可以合并三列：两列包含数字数据，另一列包含向量。在**输入列**中添加要合并的所有列，然后为合并的数据指定**输出列名称**。
+ **展平**：可使用此转换，对包含向量数据的单列进行展平。输入列必须包含 PySpark 向量或类似数组的对象。您可以通过指定**检测输出数量的方法**，控制创建的列数。例如，如果您选择**第一个向量的长度**，那么在列中找到的第一个有效向量或数组中的元素数量，决定了创建的输出列的数量。包含太多项的所有其他输入向量将被截断。项目太少的输入会被填满 NaNs。

  您还可以指定**输出前缀**，用作每个输出列的前缀。

## 处理数字
<a name="canvas-transform-process-numeric"></a>

可使用**处理数字**特征组，处理数字数据。此组中的每个缩放器均使用 Spark 库定义。支持以下缩放器：
+ **标准缩放器**：通过从每个值中减去平均值并缩放到单位方差，对输入列进行标准化。要了解更多信息，请参阅 Spark 文档[StandardScaler](https://spark.apache.org/docs/latest/ml-features#standardscaler)。
+ **稳健缩放器**：使用对异常值而言稳健的统计数据缩放输入列。要了解更多信息，请参阅 Spark 文档[RobustScaler](https://spark.apache.org/docs/latest/ml-features#robustscaler)。
+ **最小最大缩放器**：通过将每个特征缩放到给定范围来转换输入列。要了解更多信息，请参阅 Spark 文档[MinMaxScaler](https://spark.apache.org/docs/latest/ml-features#minmaxscaler)。
+ **最大绝对缩放器**：通过将每个值除以最大绝对值来缩放输入列。要了解更多信息，请参阅 Spark 文档[MaxAbsScaler](https://spark.apache.org/docs/latest/ml-features#maxabsscaler)。

## 采样
<a name="canvas-transform-sampling"></a>

导入数据后，您可以使用**采样**转换器，抽取数据的一个或多个样本。使用采样转换器时，Data Wrangler 会对原始数据集进行采样。

您可以选择以下采样方法之一：
+ **限制**：从第一行开始对数据集采样，直到指定的限制。
+ **随机化**：随机提取指定大小的样本。
+ **分层**：随机提取分层样本。

您可以对随机样本进行分层，以确保样本代表数据集的原始分布。

您可能正在为多个使用案例执行数据准备。对于每个使用案例，您可以抽取不同的样本并应用一组不同的转换。

以下过程描述了创建随机样本的过程。

从数据中抽取随机样本。

1. 选择导入的数据集右侧的 **\$1**。数据集名称位于 **\$1** 下方。

1. 选择**添加转换**。

1. 选择**采样**。

1. 对于**采样方法**，选择采样方法。

1. 对于**近似样本量**，选择样本中所需的近似观测值数量。

1. （可选）为**随机种子**指定一个整数以创建可重现的样本。

以下过程描述了创建分层样本的过程。

从数据中抽取分层样本。

1. 选择导入的数据集右侧的 **\$1**。数据集名称位于 **\$1** 下方。

1. 选择**添加转换**。

1. 选择**采样**。

1. 对于**采样方法**，选择采样方法。

1. 对于**近似样本量**，选择样本中所需的近似观测值数量。

1. 对于**分层列**，指定要对其分层的列的名称。

1. （可选）为**随机种子**指定一个整数以创建可重现的样本。

## 搜索和编辑
<a name="canvas-transform-search-edit"></a>

可使用此部分，搜索和编辑字符串中的特定模式。例如，您可以查找并更新句子或文档中的字符串、按分隔符拆分字符串，以及查找特定字符串的多次出现。

**搜索和编辑**支持以下转换。所有转换都将在**输入列**中返回字符串副本，然后将结果添加到新的输出列。


****  

| Name | 函数 | 
| --- | --- | 
|  查找子字符串  |  返回您搜索的**子字符串**第一次出现的索引。您可以分别在**开始**和**结束**处开始和结束搜索。  | 
|  查找子字符串（从右起）  |  返回您搜索的**子字符串**最后一次出现的索引。您可以分别在**开始**和**结束**处开始和结束搜索。  | 
|  匹配前缀  |  如果字符串包含给定**模式**，则返回布尔值。模式可以是字符序列或正则表达式。您可以选择让模式区分大小写。  | 
|  查找所有出现  |  返回一个数组，其中包含给定模式的所有出现。模式可以是字符序列或正则表达式。  | 
|  使用正则表达式提取  |  返回一个与给定正则表达式模式相匹配的字符串。  | 
|  在分隔符之间提取  |  返回一个字符串，其中包含在**左分隔符**与**右分隔符**之间找到的所有字符。  | 
|  从位置提取  |  返回一个字符串，以输入字符串的**开始位置**开头，包含开始位置加上**长度**之前的所有字符。  | 
|  查找并替换子字符串  |  返回一个字符串，其中给定**模式**（正则表达式）的所有匹配项均替换为**替换字符串**。  | 
|  在分隔符之间替换  |  返回一个字符串，其中在**左分隔符**的第一次出现与**右分隔符**的最后一次出现之间找到的字符串，替换为**替换字符串**。如果未找到匹配项，则不进行任何替换。  | 
|  从位置替换  |  返回一个字符串，其中**开始位置**与**开始位置**加上**长度**之间的子字符串，替换为**替换字符串**。如果**开始位置**加上**长度**大于替换字符串的长度，则输出包含 **...**。  | 
|  将正则表达式转换为缺失值  |  如果无效则将字符串转换为 `None`，并返回结果。有效性通过**模式**中的正则表达式定义。  | 
|  按分隔符拆分字符串  |  返回输入字符串的一个字符串数组，按**分隔符**拆分，最多可以达到**最大拆分数量**（可选）。分隔符默认为空格。  | 

## 拆分数据
<a name="canvas-transform-split-data"></a>

可使用**拆分数据**转换，将数据集拆分为两个或三个数据集。例如，您可以将数据集拆分为用于训练模型的数据集，以及用于测试模型的数据集。您可以决定每次拆分的数据集比例。例如，如果您要将一个数据集拆分为两个数据集，则训练数据集可以包含 80% 的数据，测试数据集包含 20% 的数据。

您可以将数据拆分为三个数据集，以便创建训练、验证和测试数据集。您可以通过删除目标列，来查看模型在测试数据集上的表现。

您的使用场景决定了每个数据集可获得多少原始数据集，以及用于拆分数据的方法。例如，您可能希望使用分层拆分，确保目标列中观测值在数据集中的分布相同。您可以使用以下拆分转换：
+ 随机拆分 – 每个拆分都是原始数据集的随机、非重叠样本。对于较大的数据集，使用随机拆分的计算成本可能很高，而且比有序拆分花费的时间更长。
+ 有序拆分：根据观测值的顺序拆分数据集。例如，对于 80/20 的训练/测试拆分，数据集前面 80% 的观测值将去到训练数据集。后面 20% 的观测结果去到测试数据集。有序拆分可有效保持拆分之间数据的现有顺序。
+ 分层拆分：拆分数据集以确保输入列中的观测值数量按比例代表。对于包含如下观测值的输入列：1、1、1、1、1、1、2、2、2、2、2、2、2、2、3、3、3、3、3、3、3，该列的 80/20 拆分意味着大约 80% 的 1、80% 的 2 和 80% 的 3 去到训练集。大约 20% 的每种类型的观测值去到测试集。
+ 按键拆分 – 避免具有相同键的数据出现在多个拆分中。例如，如果数据集中包含“customer\$1id”列，并且您将该列用作键，则客户 ID 不会出现在多个拆分中。

拆分数据之后，您可以对每个数据集应用其他转换。对于大多数使用案例而言，并不是必需的。

Data Wrangler 会计算拆分的比例，以提高性能。您可以选择误差阈值来设置拆分的准确性。较低的误差阈值可以更准确地反映您指定的拆分比例。如果设置较高的误差阈值，则性能会更好，但准确性会降低。

要获得完美拆分的数据，可将误差阈值设置为 0。您可以指定介于 0 与 1 之间的阈值，以提高性能。如果指定的值大于 1，则 Data Wrangler 将该值解释为 1。

如果数据集有 10000 行，并且您指定了 80/20 拆分，误差为 0.001，那么观测值将接近以下结果之一：
+ 训练集中有 8010 个观测值，测试集中有 1990 个观测值
+ 训练集中有 7990 个观测值，测试集中有 2010 个观测值

在上述示例中，训练集的观测值数量在 8010 到 7990 之间的区间内。

默认情况下，Data Wrangler 使用随机种子来使拆分可重现。您可以为种子指定不同的值，以创建不同的可重现拆分。

------
#### [ Randomized split ]

可使用以下过程，对数据集执行随机拆分。

要随机拆分数据集，请执行以下操作

1. 选择包含要拆分的数据集的节点旁边的 **\$1**。

1. 选择**添加转换**。

1. 选择**拆分数据**。

1. （可选）对于**拆分**，指定每个拆分的名称和比例。比例之和必须为 1。

1. （可选）选择 **\$1** 以创建其他拆分。

   1. 指定所有拆分的名称和比例。比例之和必须为 1。

1. （可选）为**误差阈值**指定一个默认值以外的值。

1. （可选）为**随机种子**指定值。

1. 选择**预览**。

1. 选择**添加**。

------
#### [ Ordered split ]

可使用以下过程，对数据集执行有序拆分。

要在数据集中进行有序拆分，请执行以下操作。

1. 选择包含要拆分的数据集的节点旁边的 **\$1**。

1. 选择**添加转换**。

1. 对于**转换**，选择**有序拆分**。

1. 选择**拆分数据**。

1. （可选）对于**拆分**，指定每个拆分的名称和比例。比例之和必须为 1。

1. （可选）选择 **\$1** 以创建其他拆分。

   1. 指定所有拆分的名称和比例。比例之和必须为 1。

1. （可选）为**误差阈值**指定一个默认值以外的值。

1. （可选）对于**输入列**，指定包含数字值的列。可使用列的值来推断每个拆分中有哪些记录。较小值在一个拆分中，较大值在多个拆分中。

1. （可选）选择**处理重复项**，向重复值添加噪声，并创建一个完全唯一值的数据集。

1. （可选）为**随机种子**指定值。

1. 选择**预览**。

1. 选择**添加**。

------
#### [ Stratified split ]

可使用以下过程，对数据集执行分层拆分。

要在数据集中进行分层拆分，请执行以下操作。

1. 选择包含要拆分的数据集的节点旁边的 **\$1**。

1. 选择**添加转换**。

1. 选择**拆分数据**。

1. 对于**转换**，选择**分层拆分**。

1. （可选）对于**拆分**，指定每个拆分的名称和比例。比例之和必须为 1。

1. （可选）选择 **\$1** 以创建其他拆分。

   1. 指定所有拆分的名称和比例。比例之和必须为 1。

1. 对于**输入列**，指定最多包含 100 个唯一值的列。Data Wrangler 无法对唯一值超过 100 个的列进行分层。

1. （可选）为**误差阈值**指定一个默认值以外的值。

1. （可选）为**随机种子**指定值，以指定不同的种子。

1. 选择**预览**。

1. 选择**添加**。

------
#### [ Split by column keys ]

可使用以下过程，按数据集中的列键进行拆分。

要按数据集中的列键进行拆分，请执行以下操作。

1. 选择包含要拆分的数据集的节点旁边的 **\$1**。

1. 选择**添加转换**。

1. 选择**拆分数据**。

1. 对于**转换**，选择**按键拆分**。

1. （可选）对于**拆分**，指定每个拆分的名称和比例。比例之和必须为 1。

1. （可选）选择 **\$1** 以创建其他拆分。

   1. 指定所有拆分的名称和比例。比例之和必须为 1。

1. 对于**键列**，指定您不希望出现在两个数据集中的值所在的列。

1. （可选）为**误差阈值**指定一个默认值以外的值。

1. 选择**预览**。

1. 选择**添加**。

------

## 将值解析为类型
<a name="canvas-transform-cast-type"></a>

可使用此转换，将列转为新的类型。支持的 Data Wrangler 数据类型包括：
+ 长整型
+ 浮点型
+ 布尔值
+ 日期，格式 dd-MM-yyyy分别代表日、月和年。
+ 字符串

## 验证字符串
<a name="canvas-transform-validate-string"></a>

可使用**验证字符串**转换，创建新列以指示文本数据行是否符合指定的条件。例如，您可以使用**验证字符串**转换，验证字符串是否只包含小写字符。**验证字符串**支持以下转换。

此转换组中包括以下转换。如果转换输出布尔值，则 `True` 用 `1` 表示，`False` 用 `0` 表示。


****  

| Name | 函数 | 
| --- | --- | 
|  字符串长度  |  如果字符串长度等于指定长度，则返回 `True`。否则返回 `False`。  | 
|  开始字符  |  如果字符串以指定前缀开头，则返回 `True`。否则返回 `False`。  | 
|  结束字符  |  如果字符串长度等于指定长度，则返回 `True`。否则返回 `False`。  | 
|  是字母数字  |  如果字符串仅包含数字和字母，则返回 `True`。否则返回 `False`。  | 
|  是字母  |  如果字符串仅包含字母，则返回 `True`。否则返回 `False`。  | 
|  是数字  |  如果字符串仅包含数字，则返回 `True`。否则返回 `False`。  | 
|  是空格  |  如果字符串仅包含数字和字母，则返回 `True`。否则返回 `False`。  | 
|  是标题  |  如果字符串包含任何空格，则返回 `True`。否则返回 `False`。  | 
|  是小写  |  如果字符串仅包含小写字母，则返回 `True`。否则返回 `False`。  | 
|  是大写  |  如果字符串仅包含大写字母，则返回 `True`。否则返回 `False`。  | 
|  是数值  |  如果字符串仅包含数值，则返回 `True`。否则返回 `False`。  | 
|  是十进制  |  如果字符串仅包含十进制数字，则返回 `True`。否则返回 `False`。  | 

## 取消嵌套 JSON 数据
<a name="canvas-transform-flatten-column"></a>

如果您有 .csv 文件，则数据集中的值可能是 JSON 字符串。同样地，Parquet 文件或 JSON 文档的列中可能存在嵌套数据。

可使用**展平结构**运算符，将第一级键分隔到单独的列中。第一级键即没有嵌套在值中的键。

例如，您可能有一个数据集，其中包含 *person* 列，且每个人的人口统计信息存储为 JSON 字符串。JSON 字符串可能类似如下所示。

```
 "{"seq": 1,"name": {"first": "Nathaniel","last": "Ferguson"},"age": 59,"city": "Posbotno","state": "WV"}"
```

**展平结构**运算符会将以下第一级键转换到数据集中的其他列：
+ seq
+ name
+ age
+ city
+ 状态

Data Wrangler 将键的值作为值放在列下。下面显示了 JSON 的列名和值。

```
seq, name,                                    age, city, state
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV
```

对于数据集中包含 JSON 的每个值，**展平结构**运算符会为第一级键创建列。要为嵌套键创建列，可再次调用运算符。对于上述示例，调用运算符将创建以下列：
+ name\$1first
+ name\$1last

以下示例显示了再次调用操作后产生的数据集。

```
seq, name,                                    age, city, state, name_first, name_last
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV, Nathaniel, Ferguson
```

可选择**要展平的键**，指定要提取为单独列的第一级键。如果未指定任何键，默认情况下 Data Wrangler 会提取所有键。

## 爆炸数组
<a name="canvas-transform-explode-array"></a>

可使用**爆炸数组**，将数组的值扩展为单独的输出行。例如，此操作可提取如下数组中的每个值：[[1, 2, 3,], [4, 5, 6], [7, 8, 9]]，并创建包含以下行的新列：

```
                [1, 2, 3]
                [4, 5, 6]
                [7, 8, 9]
```

Data Wrangler 将新列命名为 input\$1column\$1name\$1flatten。

您可以多次调用**爆炸数组**操作，将数组的嵌套值放入单独的输出列中。以下示例显示了对包含嵌套数组的数据集多次调用此操作的结果。

将嵌套数组的值放入单独的列中


| id | array | id | array\$1items | id | array\$1items\$1items | 
| --- | --- | --- | --- | --- | --- | 
| 1 | [ [cat, dog], [bat, frog] ] | 1 | [cat, dog] | 1 | cat | 
| 2 |  [[rose, petunia], [lily, daisy]]  | 1 | [bat, frog] | 1 | dog | 
|  |  | 2 | [rose, petunia] | 1 | bat | 
|  |  | 2 | [lily, daisy] | 1 | frog | 
|  |  |  | 2 | 2 | rose | 
|  |  |  | 2 | 2 | petunia | 
|  |  |  | 2 | 2 | lily | 
|  |  |  | 2 | 2 | daisy | 

## 转换图像数据
<a name="canvas-transform-image"></a>

可使用 Data Wrangler 导入并转换用于机器学习 (ML) 管线的图像。准备好图像数据后，可以将其从 Data Wrangler 流导出至机器学习管线。

您可以使用此处提供的信息，来熟悉如何在 Data Wrangler 中导入并转换图像数据。Data Wrangler 使用 OpenCV 导入图像。有关支持的图像格式的更多信息，请参阅[图像文件读取和写入](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56)。

熟悉转换图像数据的概念后，请阅读以下教程 “使用 [Amazon Data Wrangler 准备图像 SageMaker 数据](https://aws.amazon.com/blogs/machine-learning/prepare-image-data-with-amazon-sagemaker-data-wrangler/)”。

以下是将机器学习应用于转换后的图像数据的行业和使用案例，这些示例可能会有帮助：
+ 制造业 – 识别装配线中物品的缺陷
+ 食品业 – 识别变质或腐烂的食物
+ 医学 – 识别组织中的病变

在 Data Wrangler 中处理图像数据时，会经历以下过程：

1. 导入 – 通过在 Amazon S3 存储桶中选择包含图像的目录来选择图像。

1. 转换 – 使用内置的转换，为机器学习管线准备图像。

1. 导出 – 将转换后的图像导出至可从管线访问的位置。

可使用以下过程，导入图像数据。

**导入图像数据**

1. 导航至**创建连接**页面。

1. 选择 **Amazon S3**。

1. 指定包含图像数据的 Amazon S3 文件路径。

1. 对于**文件类型**，选择**图像**。

1. （可选）选择**导入嵌套目录**，从多个 Amazon S3 路径导入图像。

1. 选择**导入**。

Data Wrangler 使用开源 [imgaug](https://imgaug.readthedocs.io/en/latest/) 库进行内置图像转换。您可以使用以下内置转换：
+ **ResizeImage**
+ **EnhanceImage**
+ **CorruptImage**
+ **SplitImage**
+ **DropCorruptedImages**
+ **DropImageDuplicates**
+ **Brightness**
+ **ColorChannels**
+ **Grayscale**
+ **Rotate**

使用以下过程，无需编写代码即可转换图像。

**无需编写代码即可转换图像数据**

1. 在 Data Wrangler 流中，选择代表已导入图像的节点旁边的 **\$1**。

1. 选择**添加转换**。

1. 选择**添加步骤**。

1. 选择转换并进行配置。

1. 选择**预览**。

1. 选择**添加**。

除了使用 Data Wrangler 提供的转换之外，您还可以使用自己的自定义代码片段。有关使用自定义代码片段的更多信息，请参阅[自定义转换](#canvas-transform-custom)。您可以在代码片段中导入 OpenCV 和 imgaug 库，并使用与之相关的转换。以下是一个用于检测图像边缘的代码片段示例。

```
# A table with your image data is stored in the `df` variable
import cv2
import numpy as np
from pyspark.sql.functions import column

from sagemaker_dataprep.compute.operators.transforms.image.constants import DEFAULT_IMAGE_COLUMN, IMAGE_COLUMN_TYPE
from sagemaker_dataprep.compute.operators.transforms.image.decorators import BasicImageOperationDecorator, PandasUDFOperationDecorator


@BasicImageOperationDecorator
def my_transform(image: np.ndarray) -> np.ndarray:
  # To use the code snippet on your image data, modify the following lines within the function
    HYST_THRLD_1, HYST_THRLD_2 = 100, 200
    edges = cv2.Canny(image,HYST_THRLD_1,HYST_THRLD_2)
    return edges
    

@PandasUDFOperationDecorator(IMAGE_COLUMN_TYPE)
def custom_image_udf(image_row):
    return my_transform(image_row)
    

df = df.withColumn(DEFAULT_IMAGE_COLUMN, custom_image_udf(column(DEFAULT_IMAGE_COLUMN)))
```

在 Data Wrangler 流中应用转换时，Data Wrangler 仅对数据集中的图像样本应用转换。为了优化应用程序体验，Data Wrangler 不会对所有图像应用转换。

## 筛选数据
<a name="canvas-transform-filter-data"></a>

可使用 Data Wrangler 筛选列中的数据。筛选列中的数据时，需要指定以下字段：
+ **列名** – 用于筛选数据的列的名称。
+ **条件** – 要对列中的值应用的筛选器类型。
+ **值** – 要应用筛选器的列中的值或类别。

您可以按以下条件进行筛选：
+ **=** – 返回与指定值或类别相匹配的值。
+ **\$1=** – 返回与指定值或类别不匹配的值。
+ **>=** – 对于**长整型**或**浮点型**数据，筛选大于或等于指定值的值。
+ **<=** – 对于**长整型**或**浮点型**数据，筛选小于或等于指定值的值。
+ **>** – 对于**长整型**或**浮点型**数据，筛选大于指定值的值。
+ **<** – 对于**长整型**或**浮点型**数据，筛选小于指定值的值。

对于包含类别 `male` 和 `female` 的列，可以筛选出所有 `male` 值。也可以筛选出所有 `female` 值。由于列中只有 `male` 和 `female` 值，因此筛选器返回仅包含 `female` 值的列。

您还可以添加多个筛选器。筛选器可应用于多列或同一列。例如，如果您要创建仅包含特定范围内的值的列，那么可添加两个不同的筛选器。一个筛选器指定列的值必须大于提供的值。另一个筛选器指定列的值必须小于提供的值。

可使用以下过程，将筛选转换添加到数据。

**筛选数据**

1. 在 Data Wrangler 流中，选择包含要筛选的数据的节点旁边的 **\$1**。

1. 选择**添加转换**。

1. 选择**添加步骤**。

1. 选择**筛选数据**。

1. 指定以下字段：
   + **列名** – 要筛选的列。
   + **条件** – 筛选器的条件。
   + **值** – 要应用筛选器的列中的值或类别。

1. （可选）选择创建的筛选器后面的 **\$1**。

1. 配置筛选器。

1. 选择**预览**。

1. 选择**添加**。

# 数据准备聊天
<a name="canvas-chat-for-data-prep"></a>

**重要**  
对于管理员：  
数据准备聊天需要 `AmazonSageMakerCanvasAIServicesAccess` 策略。有关更多信息，请参阅 [AWS 托管策略： AmazonSageMakerCanvasAIServices访问权限](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)。
数据准备聊天需要访问 Amazon Bedrock 和其中的 **Anthropic Claude** 模型。有关更多信息，请参阅[添加模型访问](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#add-model-access)。
您必须在与运行模型的区域 AWS 区域 相同的地方运行 C SageMaker anvas 数据准备。美国东部（弗吉尼亚北部）、美国西部（俄勒冈）和欧洲（法兰克福）提供数据准备聊天服务 AWS 区域。

除了使用内置的转换和分析功能外，您还可以在对话界面中使用自然语言来探索、可视化和转换数据。在对话界面中，您可以使用自然语言查询来理解和准备数据，以构建 ML 模型。

以下是您可以使用的一些提示示例：
+ 汇总我的数据
+ 删除 `example-column-name` 列
+ 将缺失值替换为中位数
+ 绘制价格直方图
+ 出售最贵的商品是什么？
+ 出售了多少不同的商品？
+ 按区域对数据进行排序

使用提示转换数据时，可以查看显示数据转换过程的预览。您可以根据预览中看到的内容，选择将其添加为 Data Wrangler 流中的步骤。

对提示的回复会生成用于转换和分析的代码。您可以修改代码以更新提示的输出。例如，您可以修改分析代码以更改图表坐标轴的值。

按照以下步骤开始与数据聊天：

**要与数据聊天**

1. 打开 SageMaker 画布数据流。

1. 选择语音气泡。  
![\[数据准备聊天位于屏幕顶部\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/chat-for-data-prep-welcome-step.png)

1. 指定提示。

1. （可选）如果您的查询已生成分析，请选择**添加到分析**以供以后参考。  
![\[可编辑和可复制的代码块的视图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/encanto-query-for-visualization.png)

1. （可选）如果您已使用提示转换数据，请执行以下操作。

   1. 选择**预览**查看结果。

   1. （可选）修改转换中的代码并选择**更新**。

   1. （可选）如果您对转换的结果感到满意，请选择**添加到步骤**，将其添加到右侧导航栏的步骤面板中。  
![\[添加到步骤显示已将转换添加到流中的确认信息。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/transform-added-to-steps-panel.png)

使用自然语言准备好数据后，就可以使用转换后的数据创建模型了。有关创建模型的更多信息，请参阅[自定义模型的工作原理](canvas-build-model.md)。

# Data Wrangler 中的数据处理工作原理
<a name="canvas-data-processing"></a>

在 Amazon Data Wrangler SageMaker 数据流中以交互方式处理数据时，Amazon SageMaker Canvas 仅将转换应用于示例数据集供您预览。在 SageMaker Canvas 中完成数据流后，您可以处理所有数据并将其保存在适合您的机器学习工作流程的位置。

在 Data Wrangler 中完成数据转换后，有多种继续操作的选项：
+ [创建模型](canvas-processing-export-model.md)。您可以创建一个 Canvas 模型，在此模型中，您可以直接使用准备好的数据创建模型。您可以在处理整个数据集后创建模型，也可以只导出在 Data Wrangler 中使用的样本数据。Canvas 会将处理过的数据（整个数据集或样本数据）保存为 Canvas 数据集。

  我们建议您在快速迭代时使用样本数据，但在训练最终模型时使用全部数据。在构建表格模型时，大于 5 GB 的数据集会自动降采样到 5 GB，而对于时间序列预测模型，大于 30 GB 的数据集会降采样到 30 GB。

  要了解创建模型的更多信息，请参阅 [自定义模型的工作原理](canvas-build-model.md)。
+ [导出数据](canvas-export-data.md)。您可以导出数据以用于机器学习工作流程。当您选择导出数据时，您有以下几种选择：
  + 您可以在 Canvas 应用程序中将数据保存为数据集。有关 Canvas 数据集支持的文件类型以及将数据导入 Canvas 时的其他要求，请参阅 [创建数据集](canvas-import-dataset.md)。
  + 您可以将数据保存到 Amazon S3。根据 Canvas 内存的可用性，您的数据将在应用程序中处理，然后导出到 Amazon S3。如果数据集的大小超出了 Canvas 的处理能力，则默认情况下，Canvas 会使用 EMR Serverless 作业扩展到多个计算实例，处理完整的数据集，然后将其导出到 Amazon S3。您也可以手动配置 Processing 作业，以便更精细地控制用于 SageMaker 处理数据的计算资源。
+ [导出数据流](canvas-export-data-flow.md)。您可能需要保存数据流的代码，以便在 Canvas 之外修改或运行转换。Canvas 可让您将数据流转换保存为 Jupyter Notebook 中的 Python 代码，然后将其导出到 Amazon S3，供机器学习工作流程中的其他部分使用。

当您从数据流中导出数据并将其保存为 Canvas 数据集或保存到 Amazon S3 时，Canvas 会在数据流中创建一个新的目标节点，此节点是显示已处理数据的存储位置的最后一个节点。如果您要执行多个导出操作，则可以在流程中添加其他目标节点。例如，您可以从数据流中的不同点导出数据，只应用部分转换，也可以将转换后的数据导出到不同的 Amazon S3 位置。有关如何添加或编辑目标节点的更多信息，请参阅 [添加目标节点](canvas-destination-nodes-add.md) 和 [编辑目标节点](canvas-destination-nodes-edit.md)。

有关在 Amazon 上设置计划 EventBridge 以按计划自动处理和导出数据的更多信息，请参阅[创建自动处理新数据的计划](canvas-data-export-schedule-job.md)。

# 导出以创建模型
<a name="canvas-processing-export-model"></a>

只需点击几下数据流，您就可以导出转换后的数据，并开始在 Canvas 中创建 ML 模型。Canvas 会将您的数据保存为 Canvas 数据集，然后您将进入新模型的模型构建配置页面。

要使用转换后的数据创建 Canvas 模型，请执行以下操作：

1. 导航至数据流。

1. 选择要导出的节点旁边的省略号图标。

1. 从上下文菜单中选择**创建模型**。

1. 在**导出以创建模型**侧面板中，输入新数据集的**数据集名称**。

1. 在继续构建模型之前，选中**处理整个数据集**选项，以处理和导出整个数据集。关闭此选项可使用数据流中的交互式样本数据来训练模型。

1. 输入**模型名称**来命名新模型。

1. 选择**问题类型**或要构建的模型类型。有关 C SageMaker anvas 中支持的模型类型的更多信息，请参阅[自定义模型的工作原理](canvas-build-model.md)。

1. 选择**目标列**或您希望模型预测的值。

1. 选择**导出并创建模型**。

新的 Canvas 模型的**构建**选项卡将会打开，然后您就可以完成模型的配置和训练了。有关构建模型的更多信息，请参阅 [构建模型](canvas-build-model-how-to.md)。

# 导出数据
<a name="canvas-export-data"></a>

导出数据，将数据流中的转换应用于完整的导入数据集。您可以将数据流中的任何节点导出到以下位置：
+ SageMaker 画布数据集
+ Amazon S3

如果您想在 Canvas 中训练模型，可以将转换后的完整数据集导出为 Canvas 数据集。如果您想在 C SageMaker anvas 外部的机器学习工作流程中使用转换后的数据，可以将数据集导出到 Amazon S3。

## 导出到 Canvas 数据集
<a name="canvas-export-data-canvas"></a>

使用以下步骤从数据流中的节点导出 SageMaker Canvas 数据集。

**将流程中的节点导出为 SageMaker Canvas 数据集**

1. 导航至数据流。

1. 选择要导出的节点旁边的省略号图标。

1. 在上下文菜单中，将鼠标悬停在**导出**上，然后选择**将数据导出到 Canvas 数据集**。

1. 在**导出到 Canvas 数据集**侧面板中，输入新数据集的**数据集名称**。

1. 如果您希望 C SageMaker anvas **处理并保存您的完整数据集，请选中 “处理整个**数据集” 选项。关闭此选项，只将转换应用于数据流中正在处理的样本数据。

1. 选择**导出**。

现在，您应该可以进入 Canvas 应用程序的**数据集**页面，查看新数据集。

## 导出到 Amazon S3
<a name="canvas-export-data-s3"></a>

将数据导出到 Amazon S3 时，您可以扩展以转换和处理任何规模的数据。如果应用程序的内存能够处理数据集的大小，Canvas 会自动在本地处理数据。如果您的数据集大小超过 5 GB 的本地内存容量，Canvas 会以您的名义启动一个远程作业，为您提供额外的计算资源并更快地处理数据。默认情况下，Canvas 使用 Amazon EMR Serverless 来运行这些远程作业。但是，您可以手动将 Canvas 配置为使用 EMR Serverless 或使用自己的设置的 Proces SageMaker sing 作业。

**注意**  
运行 EMR Serverless 作业时，默认情况下作业会继承 Canvas 应用程序的 IAM 角色、KMS 密钥设置和标签。

下面总结了 Canvas 中的远程作业选项：
+ **EMR Serverless**：这是 Canvas 用于远程作业的默认选项。EMR Serverless 可自动调配和扩展计算资源来处理数据，因此您无需担心为工作负载选择合适的计算资源。有关 EMR Serverless 的更多信息，请参阅[《EMR Serverless 用户指南》](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html)。
+ **SageMaker 处理**： SageMaker 处理作业提供更高级的选项，并可对用于处理数据的计算资源进行精细控制。例如，您可以指定计算实例的类型和数量，在自己的 VPC 中配置作业并控制网络访问，自动处理作业等。有关处理作业的更多信息，请参阅 [创建自动处理新数据的计划](canvas-data-export-schedule-job.md)。有关 SageMaker 处理作业的更多一般信息，请参阅[带 SageMaker 处理功能的数据转换工作负载](processing-job.md)。

导出到 Amazon S3 时支持以下文件类型：
+ CSV
+ Parquet

要开始使用，请查看以下先决条件。

### EMR Serverless 作业的先决条件
<a name="canvas-export-data-emr-prereqs"></a>

要创建使用 EMR Serverless 资源的远程作业，您必须拥有必要的权限。您可以通过 Amazon A SageMaker I 域或用户个人资料设置授予权限，也可以手动配置用户的 AWS IAM 角色。有关如何授予用户执行大型数据处理的权限的说明，请参阅 [向用户授予在整个 ML 生命周期中使用大数据的权限](canvas-large-data-permissions.md)。

如果您不想配置这些策略，但仍需要通过 Data Wrangler 处理大型数据集，也可以使用 SageMaker 处理作业。

按照以下步骤将数据导出到 Amazon S3。要配置远程作业，请按照可选的高级步骤操作。

**将流中的节点导出到 Amazon S3**

1. 导航至数据流。

1. 选择要导出的节点旁边的省略号图标。

1. 在上下文菜单中，将鼠标悬停在**导出**上，然后选择**将数据导出到 Amazon S3**。

1. 在**导出到 Amazon S3** 侧面板中，您可以更改新数据集的**数据集名称**。

1. 对于 **S3 位置**，输入要将数据集导出到的 Amazon S3 位置。您可以输入 S3 位置或 S3 接入点的 S3 URI、别名或 ARN。有关更多信息接入点，请参阅 *Amazon S3 用户指南*中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)。

1. （可选）对于**高级设置**，为以下字段指定值：

   1. **文件类型**：导出数据的文件格式。

   1. **分隔符**：用于分隔文件中值的分隔符。

   1. **压缩**：用于减小文件大小的压缩方法。

   1. **分区数**：Canvas 作为作业输出写入的数据集文件的数量。

   1. **选择列**：您可以从数据中选择要包含在分区中的列子集。

1. 如果您希望 Canvas 对整个数据集应用数据流转换并导出结果，请选中**处理整个数据集**选项。如果您取消选择此选项，Canvas 将只对交互式 Data Wrangler 数据流中使用的数据集样本应用转换。
**注意**  
如果您只导出数据样本，Canvas 会在应用程序中处理您的数据，而不会为您创建远程作业。

1. 如果您希望 Canvas 自动确定是使用 Canvas 应用程序内存还是 EMR Serverless 作业来运行作业，请选中**自动作业配置**选项。如果您取消选择此选项并手动配置作业，则可以选择使用 EMR Serverless 或 SageMaker 处理作业。有关如何配置 EMR Serverless 或 SageMaker 处理作业的说明，请在导出数据之前参阅此过程之后的部分。

1. 选择**导出**。

以下过程说明在将完整数据集导出到 Amazon S3 时，如何手动配置 EMR Serverless 或 P SageMaker rocessing 的远程任务设置。

------
#### [ EMR Serverless ]

要在导出到 Amazon S3 时配置 EMR Serverless 作业，请执行以下操作：

1. 在导出到 Amazon S3 侧面板中，关闭**自动作业配置**选项。

1. 选择 **EMR Serverless**。

1. 在**作业名称**中，输入 EMR Serverless 作业的名称。名称可以包含字母、数字、连字符和下划线。

1. 在 **IAM 角色**中，输入用户的 IAM 执行角色。此角色应拥有运行 EMR Serverless 应用程序所需的权限。有关更多信息，请参阅 [向用户授予在整个 ML 生命周期中使用大数据的权限](canvas-large-data-permissions.md)。

1. （可选）对于 **KMS 密钥**，请指定用于加密任务日志的 AWS KMS key 密钥 ID 或 ARN。如果不输入密钥，Canvas 会使用 EMR Serverless 的默认密钥。

1. （可选）在**监控配置**中，输入要向其发布 CloudWatch 日志的 Amazon Logs 日志组的名称。

1. （可选）对于**标签**，为 EMR Serverless 作业添加由键值对组成的元数据标签。这些标签可用于对作业进行分类和搜索。

1. 选择**导出**以启动任务。

------
#### [ SageMaker Processing ]

要在导出到 Amazon S3 的同时配置 SageMaker 处理任务，请执行以下操作：

1. 在**导出到 Amazon S3** 侧面板中，关闭**自动作业配置**选项。

1. 选择 “**SageMaker 处理**”。

1. 在 “**任务名称**” 中，输入 A SageMaker I 处理任务的名称。

1. 对于**实例类型**，选择要运行处理作业的计算实例的类型。

1. 对于**实例数**，指定要启动的计算实例数量。

1. 在 **IAM 角色**中，输入用户的 IAM 执行角色。此角色应具有 SageMaker AI 代表您创建和运行处理任务所需的权限。如果您将[AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)策略附加到您的 IAM 角色，则会授予这些权限。

1. 对于**卷大小**，输入连接到每个处理实例的 ML 存储卷的存储大小（以 GB 为单位）。根据预期的输入和输出数据大小选择大小。

1. （可选）对于**卷 KMS 密钥**，指定用于加密存储卷的 KMS 密钥。如果未指定密钥，则会使用默认的 Amazon EBS 加密密钥。

1. （可选）对于 **KMS 密钥**，指定 KMS 密钥以加密处理作业使用的输入和输出 Amazon S3 数据来源。

1. （可选）要**配置 Spark 内存**，请执行以下操作：

   1. 输入处理作业协调和调度的 Spark 驱动程序节点的**驱动程序内存（以 MB 为单位）**。

   1. 为在作业中运行单个任务的 Spark 执行器节点输入**执行器内存（以 MB 为单位）**。

1. （可选）对于**网络配置**，请执行以下操作：

   1. 对于**子网配置**，请输入要在 IDs 其中启动处理实例的 VPC 子网。默认情况下，此作业使用默认 VPC 的设置。

   1. 对于**安全组配置**，请输入用于控制入站和出站连接规则的安全组。 IDs 

   1. 打开**启用容器间流量加密**选项，以在作业期间加密处理容器之间的网络通信。

1. （可选）对于**员工计划**，您可以选择创建 Amazon EventBridge 计划，使处理任务按周期性间隔运行。选择**创建新计划**，然后填写对话框。有关填写本节和按计划运行处理作业的更多信息，请参阅 [创建自动处理新数据的计划](canvas-data-export-schedule-job.md)。

1. （可选）将**标签**添加为键值对，以便您可以对处理作业进行分类和搜索。

1. 选择**导出**以启动处理任务。

------

导出数据后，您应该能在指定的 Amazon S3 位置查找经过全面处理的数据集。

# 导出数据流
<a name="canvas-export-data-flow"></a>

导出数据流可将您在 Data Wrangler 中进行的操作转化为 Python 代码，并将其导出到 Jupyter Notebook 中，供您修改和运行。这有助于将数据转换的代码集成到机器学习管道中。

您可以在数据流中选择任何数据节点并导出。导出数据节点时，会导出该节点所代表的转换及其之前的转换。

**要将数据流导出为 Jupyter Notebook**

1. 导航至数据流。

1. 选择要导出的节点旁边的省略号图标。

1. 在上下文菜单中，将鼠标悬停在**导出**上，然后将鼠标悬停在**通过 Jupyter Notebook 导出**上。

1. 选择下列选项之一：
   + **SageMaker Pipelines**
   + **Amazon S3**
   + **SageMaker AI 推理管道**
   + **SageMaker AI 功能商店**
   + **Python Code**

1. 此时将打开**将数据流导出为笔记本**对话框。选择以下选项之一：
   + **下载本地副本**
   + **导出到 S3 位置**

1. 如果您选择了**导出到 S3 位置**，输入要将笔记本导出到的 Amazon S3 位置。

1. 选择**导出**。

您的 Jupyter Notebook 会下载到本地计算机，或者保存在您指定的 Amazon S3 位置。

# 添加目标节点
<a name="canvas-destination-nodes-add"></a>

 SageMaker Canvas 中的目标节点指定了存储经过处理和转换的数据的位置。当您选择将转换后的数据导出到 Amazon S3 时，Canvas 会使用指定的目标节点位置，并应用您在数据流中配置的所有转换。有关将作业导出到 Amazon S3 的更多信息，请参阅前一节 [导出到 Amazon S3](canvas-export-data.md#canvas-export-data-s3)。

默认情况下，选择将数据导出到 Amazon S3 会为数据流添加目标节点。但是，您可以在流中添加多个目标节点，这样就可以同时将不同的转换集或数据变化导出到不同的 Amazon S3 位置。例如，您可以创建一个目标节点，在应用所有转换后导出数据，而另一个目标节点只在进行某些初始转换（例如联接操作）后导出数据。这种灵活性使您能够导出转换后数据的不同版本或子集，并将其存储在不同的 S3 位置，以适用于各种使用场景。

按照以下步骤将目标节点添加到数据流中。

**要添加目标节点**

1. 导航至数据流。

1. 选择要放置目标节点的节点旁边的省略号图标。

1. 在上下文菜单中，将鼠标悬停在**导出**上，然后选择**添加目标**。

1. 在**导出目标**侧面板中，输入**数据集名称**以命名输出。

1. 对于 **Amazon S3 位置**，输入要将输出导出到的 Amazon S3 位置。您可以输入 S3 位置或 S3 接入点的 S3 URI、别名或 ARN。有关更多信息接入点，请参阅 *Amazon S3 用户指南*中的[使用 Amazon S3 接入点管理数据访问](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)。

1. 在**导出设置**中，指定以下字段：

   1. **文件类型**：导出数据的文件格式。

   1. **分隔符**：用于分隔文件中值的分隔符。

   1. **压缩**：用于减小文件大小的压缩方法。

1. 对于**分区**，请指定以下字段：

   1. **分区数**- SageMaker Canvas 作为作业输出写入的数据集文件数。

   1. **选择列**：您可以从数据中选择要包含在分区中的列子集。

1. 如果您只想在数据流中添加目标节点，请选择**添加**；如果您想添加节点并启动导出作业，请选择**添加**，然后选择**导出**。

现在，您应该可以在流中看到一个新的目标节点。

# 编辑目标节点
<a name="canvas-destination-nodes-edit"></a>

Amazon SageMaker Canvas 数据流中的*目标节点*指定存储处理和转换后的数据的 Amazon S3 位置，并在数据流中应用所有配置的转换。您可以编辑现有目标节点的配置，然后选择重新运行作业以覆盖指定 Amazon S3 位置中的数据。有关添加新目标节点的更多信息，请参阅 [添加目标节点](canvas-destination-nodes-add.md)。

按照以下步骤编辑数据流中的目标节点并启动导出作业。

**要编辑目标节点**

1. 导航至数据流。

1. 选择要编辑的目标节点旁边的省略号图标。

1. 在上下文菜单中，选择**编辑**。

1. 此时将打开**编辑目标**侧面板。在此面板中，您可以编辑数据集名称、Amazon S3 位置以及导出和分区设置等详细信息。

1. （可选）在**要导出的其他节点**中，您可以在运行导出作业时选择更多目标节点进行处理。

1. 如果您希望 Canvas 对整个数据集应用数据流转换并导出结果，请选中**处理整个数据集**选项。如果您取消选择此选项，Canvas 将只对交互式 Data Wrangler 数据流中使用的数据集样本应用转换。

1. 如果您希望 Canvas 自动确定是使用 Canvas 应用程序内存还是 EMR Serverless 作业来运行作业，请选中**自动作业配置**选项。如果您取消选择此选项并手动配置作业，则可以选择使用 EMR Serverless 或 SageMaker 处理作业。有关如何配置 EMR Serverless 或 SageMaker 处理作业的说明，请参阅上一节。[导出到 Amazon S3](canvas-export-data.md#canvas-export-data-s3)

1. 完成更改后，选择**更新**。

保存对目标节点配置的更改不会自动重新运行作业或覆盖已处理和导出的数据。再次导出数据，使用新配置运行作业。如果您决定通过作业再次导出数据，Canvas 会使用更新的目标节点配置来转换数据并将其输出到指定位置，同时覆盖任何现有数据。

# 创建自动处理新数据的计划
<a name="canvas-data-export-schedule-job"></a>

**注意**  
以下部分仅适用于 SageMaker 处理作业。如果您使用默认的 Canvas 设置或 EMR Serverless 创建了远程作业来对完整数据集进行转换，则本节内容不适用。

如果您要定期处理数据，则可以创建一个计划来自动运行处理作业。例如，您可以创建一个计划，该计划在获得新数据时自动运行处理作业。有关处理作业的更多信息，请参阅 [导出到 Amazon S3](canvas-export-data.md#canvas-export-data-s3)。

创建作业时，必须指定有权创建该作业的 IAM 角色。您可以使用该[AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)策略来添加权限。

将以下信任策略添加到角色中 EventBridge 以允许代入该角色。

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
}
```

**重要**  
当您创建计划时，Data Wrangler 会创建一个输入。`eventRule` EventBridge您需要为创建的事件规则以及用于运行处理作业的实例都支付费用。  
有关 EventBridge 定价的信息，请参阅 [Amazon EventBridge 定价](https://aws.amazon.com/eventbridge/pricing/)。有关处理任务定价的信息，请参阅 [Amazon SageMaker 定价](https://aws.amazon.com/sagemaker/pricing/)。

使用以下方法之一设置计划：
+ [Cron 表达式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)
**注意**  
Data Wrangler 不支持以下表达式：  
LW\$1
天的缩写
月份的缩写
+ [Rate 表达式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-rate-expressions)
+ 重复 – 设置每小时或每天运行作业的时间间隔。
+ 特定时间 – 设置运行作业的特定日期和时间。

以下各节提供了在将[数据导出到 Amazon S3](canvas-export-data.md#canvas-export-data-s3) 的同时填写 SageMaker AI 处理任务设置时安排任务的程序。以下所有说明均从 SageMaker 处理作业设置的 “**关联计划**” 部分开始。

------
#### [ CRON ]

使用以下步骤创建带有 CRON 表达式的计划。

1. 在 “**导出到 Amazon S3**” 侧面板中，确保已关闭**自动任务配置**开关，并选择了 “**SageMaker 处理**” 选项。

1. 在 “**SageMaker 处理**作业设置” 中，打开 “**关联计划**” 部分，然后选择 “**创建新计划**”。

1. 此时将打开**创建新角色**对话框。对于**计划名称**，指定计划的名称。

1. 对于**运行频率**，选择 **CRON**。

1. 在**分钟**、**小时**、**日**、**月**和**星期**字段中，输入有效的 CRON 表达式值。

1. 选择**创建**。

1. （可选）选择**添加其他计划**以按其他计划运行作业。
**注意**  
您最多可以关联两个计划。这些计划是独立的，除非时间重叠，否则不会相互影响。

1. 选择下列选项之一：
   + **计划并立即运行**：作业会立即运行，随后按计划运行。
   + **仅限计划**：作业仅按您指定的计划运行。

1. 填写完其他导出作业设置后，选择**导出**。

------
#### [ RATE ]

使用以下步骤创建带有 RATE 表达式的计划。

1. 在 “**导出到 Amazon S3**” 侧面板中，确保已关闭**自动任务配置**开关，并选择了 “**SageMaker 处理**” 选项。

1. 在 “**SageMaker 处理**作业设置” 中，打开 “**关联计划**” 部分，然后选择 “**创建新计划**”。

1. 此时将打开**创建新角色**对话框。对于**计划名称**，指定计划的名称。

1. 对于**运行频率**，选择 **Rate**。

1. 对于**值**，指定一个整数。

1. 对于**匹配程序**，选择以下项之一：
   + **分钟**
   + **小时**
   + **天**

1. 选择**创建**。

1. （可选）选择**添加其他计划**以按其他计划运行作业。
**注意**  
您最多可以关联两个计划。这些计划是独立的，除非时间重叠，否则不会相互影响。

1. 选择下列选项之一：
   + **计划并立即运行**：作业会立即运行，随后按计划运行。
   + **仅限计划**：作业仅按您指定的计划运行。

1. 填写完其他导出作业设置后，选择**导出**。

------
#### [ Recurring ]

通过以下步骤创建定期运行作业的计划。

1. 在 “**导出到 Amazon S3**” 侧面板中，确保已关闭**自动任务配置**开关，并选择了 “**SageMaker 处理**” 选项。

1. 在 “**SageMaker 处理**作业设置” 中，打开 “**关联计划**” 部分，然后选择 “**创建新计划**”。

1. 此时将打开**创建新角色**对话框。对于**计划名称**，指定计划的名称。

1. 对于**运行频率**，选择**重复**。

1. 对于**每 x 小时**，指定作业在一天中运行的每小时频率。有效值为 **1** 和 **23** 范围的整数（含）。

1. 对于**日期**，选择以下选项之一：
   + **每天**
   + **周末**
   + **工作日**
   + **选择日期**

   1. （可选）如果您选择了**选择日期**，请选择在一周中的哪几天运行作业。
**注意**  
计划会每天重置。如果您计划每五小时运行一次作业，则作业将在一天中的以下时间运行：  
00:00
05:00
10:00
15:00
20:00

1. 选择**创建**。

1. （可选）选择**添加其他计划**以按其他计划运行作业。
**注意**  
您最多可以关联两个计划。这些计划是独立的，除非时间重叠，否则不会相互影响。

1. 选择下列选项之一：
   + **计划并立即运行**：作业会立即运行，随后按计划运行。
   + **仅限计划**：作业仅按您指定的计划运行。

1. 填写完其他导出作业设置后，选择**导出**。

------
#### [ Specific time ]

通过以下过程创建在特定时间运行作业的计划。

1. 在 “**导出到 Amazon S3**” 侧面板中，确保已关闭**自动任务配置**开关，并选择了 “**SageMaker 处理**” 选项。

1. 在 “**SageMaker 处理**作业设置” 中，打开 “**关联计划**” 部分，然后选择 “**创建新计划**”。

1. 此时将打开**创建新角色**对话框。对于**计划名称**，指定计划的名称。

1. 对于**运行频率**，选择**开始时间**。

1. 在**开始时间**中，以 UTC 格式输入时间（例如，**09:00**）。开始时间默认为您所在的时区。

1. 对于**日期**，选择以下选项之一：
   + **每天**
   + **周末**
   + **工作日**
   + **选择日期**

   1. （可选）如果您选择了**选择日期**，请选择在一周中的哪几天运行作业。

1. 选择**创建**。

1. （可选）选择**添加其他计划**以按其他计划运行作业。
**注意**  
您最多可以关联两个计划。这些计划是独立的，除非时间重叠，否则不会相互影响。

1. 选择下列选项之一：
   + **计划并立即运行**：作业会立即运行，随后按计划运行。
   + **仅限计划**：作业仅按您指定的计划运行。

1. 填写完其他导出作业设置后，选择**导出**。

------

您可以使用 A SageMaker I AWS 管理控制台 查看计划运行的作业。处理作业在 Pipelines 中运行。每个处理作业都有各自的管道。作业作为管道中的一个处理步骤运行。您可以查看已在管道中创建的计划。有关查看管道的信息，请参阅 [查看管道详情](pipelines-studio-list.md)。

通过以下过程查看您已计划的作业。

要查看您已计划的作业，请执行以下操作。

1. 打开 Amazon SageMaker Studio 经典版。

1. 打开 Pipelines

1. 查看用于您已创建的作业的管道。

   运行作业的管道使用作业名称作为前缀。例如，如果您创建了一个名为 `housing-data-feature-enginnering` 的作业，则管道的名称为 `canvas-data-prep-housing-data-feature-engineering`。

1. 选择包含您的作业的管道。

1. 查看管道的状态。管道**状态**为**成功**时表示已成功运行处理作业。

要停止运行处理作业，请执行以下操作：

要停止运行处理作业，请删除指定计划的事件规则。删除事件规则时，会使与该计划关联的所有作业停止运行。有关删除规则的信息，请参阅[禁用或删除 Amazon EventBridge 规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html)。

您还可以停止和删除与计划关联的管道。有关停止管道的信息，请参见[StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html)。有关删除管道的信息，请参阅[DeletePipeline](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeletePipeline.html#API_DeletePipeline_RequestSyntax)。

# 在 C SageMaker anvas 中自动准备数据
<a name="canvas-data-export"></a>

在数据流中转换数据后，您可以将转换结果导出到机器学习工作流中。当你导出变换时， SageMaker Canvas 会创建一个 Jupyter 笔记本。您必须在 Amazon SageMaker Studio Classic 中运行笔记本电脑。有关开始使用 Studio Classic 的信息，请联系您的管理员。

## 使用 Pipelines 自动完成数据准备
<a name="canvas-data-export-pipelines"></a>

当你想要构建和部署大规模机器学习 (ML) 工作流程时，你可以使用 Pipelines 来创建管理和部署 SageMaker AI 作业的工作流程。借助 Pipelines，您可以构建工作流程来管理 SageMaker AI 数据准备、模型训练和模型部署作业。你可以使用 Pipelines 来使用 SageMaker AI 提供的第一方算法。有关管道的更多信息，请参阅[SageMaker 管道](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines.html)。

当您将数据流中的一个或多个步骤导出到 Pipelines 时，Data Wrangler 会创建一个可用于定义、实例化、运行和管理管道的 Jupyter Notebook。

### 使用 Jupyter 笔记本创建管道
<a name="canvas-pipelines-notebook"></a>

使用以下步骤创建 Jupyter Notebook，将您的 Data Wrangler 流导出到 Pipelines。

使用以下步骤生成 Jupyter Notebook 并运行，将您的 Data Wrangler 流导出到 Pipelines。

1. 选择要导出的节点旁边的 **\$1**。

1. 选择**导出数据流**。

1. 选择 **Pipelines（通过 Jupyter Notebook）**。

1. 下载 Jupyter Notebook 或将其复制到 Amazon S3 的位置。我们建议将其复制到可以在 Studio Classic 中访问的 Amazon S3 位置。如果您需要有关合适地点的指导，请联系您的管理员。

1. 运行 Jupyter 笔记本。

您可以使用 Data Wrangler 生成的 Jupyter 笔记本来定义管道。管道包括由 Data Wrangler 流定义的数据处理步骤。

通过将步骤添加到笔记本的以下代码中的 `steps` 列表，您可以向管道添加其他步骤：

```
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[instance_type, instance_count],
    steps=[step_process], #Add more steps to this list to run in your Pipeline
)
```

有关定义管道的更多信息，请参阅[定义 SageMaker AI 管道](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html)。

## 使用推理端点自动完成数据准备
<a name="canvas-data-export-inference"></a>

在 Data Wrangler 流程中创建 SageMaker AI 串行推理管道，在推理时使用 Data Wrangler 流程处理数据。推理管道是一系列步骤，可用于生成对新数据进行预测的经过训练的模型。Data Wrangler 中的串行推理管道可转换原始数据，并将数据提供给机器学习模型进行预测。在 Studio Classic 中，您可以通过 Jupyter Notebook 创建、运行和管理推理管道。有关访问笔记本的更多信息，请参阅[使用 Jupyter Notebook 创建推理端点](#canvas-inference-notebook)。

在笔记本中，您可以训练机器学习模型，也可以指定已训练的模型。你可以使用 Amazon A SageMaker utopilot XGBoost ，也可以使用你在 Data Wrangler 流程中转换的数据来训练模型。

利用管道，您可以执行批量或实时推理。您也可以将 Data Wrangler 流程添加到 “ SageMaker 模型注册表”。有关托管模型的更多信息，请参阅[多模型端点](multi-model-endpoints.md)。

**重要**  
如果 Data Wrangler 流具有以下转换，则无法将该流导出到推理端点：  
联接
串联
分组依据
如果必须使用上述转换来准备您的数据，请使用以下过程。  
创建 Data Wrangler 流。
应用前面的不受支持的转换。
将数据导出到 Amazon S3 存储桶。
创建单独的 Data Wrangler 流。
导入您在前面的流中导出的数据。
应用其余的转换。
使用我们提供的 Jupyter 笔记本创建串行推理管道。
有关将数据导出到 Amazon S3 存储桶的信息，请参阅[导出数据](canvas-export-data.md)。有关打开用于创建串行推理管道的 Jupyter 笔记本的信息，请参阅[使用 Jupyter Notebook 创建推理端点](#canvas-inference-notebook)。

Data Wrangler 会忽略那些在推理时删除数据的转换。例如，如果您使用**删除缺失项**配置，Data Wrangler 会忽略[处理缺失值](canvas-transform.md#canvas-transform-handle-missing)转换。

如果您重新拟合整个数据集的转换，则转换会延续到您的推理管道。例如，如果使用了中位数来估算缺失值，则重新拟合转换所得的中位数将应用于您的推理请求。在使用 Jupyter Notebook 或将数据导出到推理管道时，可以重新拟合 Data Wrangler 流中的转换。

串行推理管道支持以下数据类型的输入和输出字符串。每个数据类型都有一组要求。

**支持的数据类型**
+ `text/csv` – CSV 字符串的数据类型
  + 字符串不能具有标头。
  + 用于推理管道的特征必须与训练数据集内的特征顺序相同。
  + 特征之间必须有一个逗号分隔符。
  + 记录必须使用一个换行符分隔。

  下面是可在推理请求中提供的有效格式的 CSV 字符串示例。

  ```
  abc,0.0,"Doe, John",12345\ndef,1.1,"Doe, Jane",67890                    
  ```
+ `application/json` – JSON 字符串的数据类型
  + 数据集内用于推理管道的特征的顺序必须与训练数据集内的特征顺序相同。
  + 数据必须具有特定架构。可以将架构定义为具有一组 `features` 的单个 `instances` 对象。每个 `features` 对象都表示一个观测值。

  下面是可在推理请求中提供的有效格式的 JSON 字符串示例。

  ```
  {
      "instances": [
          {
              "features": ["abc", 0.0, "Doe, John", 12345]
          },
          {
              "features": ["def", 1.1, "Doe, Jane", 67890]
          }
      ]
  }
  ```

### 使用 Jupyter Notebook 创建推理端点
<a name="canvas-inference-notebook"></a>

按照以下过程操作，导出您的 Data Wrangler 流以创建推理管道。

要使用 Jupyter 笔记本创建推理管道，请执行以下操作。

1. 选择要导出的节点旁边的 **\$1**。

1. 选择**导出数据流**。

1. 选择 **SageMaker AI 推理管道（通过 Jupyter** 笔记本）。

1. 下载 Jupyter Notebook 或将其复制到 Amazon S3 的位置。我们建议将其复制到可以在 Studio Classic 中访问的 Amazon S3 位置。如果您需要有关合适地点的指导，请联系您的管理员。

1. 运行 Jupyter 笔记本。

当您运行 Jupyter 笔记本时，会创建一个推理流构件。推理流构件是一个 Data Wrangler 流文件，其中包含用于创建串行推理管道的附加元数据。您正导出的节点包含来自前面节点的所有转换。

**重要**  
Data Wrangler 需要推理流构件来运行推理管道。您不能将自己的流文件用作构件。您必须使用前面的步骤创建构件。

## 使用 Python Code 自动完成数据准备
<a name="canvas-data-export-python-code"></a>

要将数据流中的所有步骤导出到可手动集成到任何数据处理工作流的 Python 文件，请使用以下步骤。

使用以下过程生成 Jupyter Notebook 并运行，将您的 Data Wrangler 流导出到 Python Code。

1. 选择要导出的节点旁边的 **\$1**。

1. 选择**导出数据流**。

1. 选择 **Python 代码**。

1. 下载 Jupyter Notebook 或将其复制到 Amazon S3 的位置。我们建议将其复制到可以在 Studio Classic 中访问的 Amazon S3 位置。如果您需要有关合适地点的指导，请联系您的管理员。

1. 运行 Jupyter 笔记本。

您可能需要配置 Python 脚本才能在管道中运行。例如，如果您运行的是 Spark 环境，请确保在有权访问 AWS 资源的环境中运行脚本。

# C SageMaker anvas 中的生成式 AI 基础模型
<a name="canvas-fm-chat"></a>

Amazon SageMaker Canvas 提供了生成式人工智能基础模型，您可以使用这些模型开始对话聊天。这些内容生成模型基于大量文本数据进行训练，以学习单词之间的统计模式和关系，并且它们可以生成在统计学上与训练文本相似的连贯文本。您可以通过以下方式利用这一功能提高工作效率：
+ 生成文档大纲、报告和博客等内容
+ 从大量文本中总结文本，如财报电话会议记录、年度报告或用户手册章节
+ 从大段文本中提取见解和关键要点，例如会议记录或叙述
+ 改进文本，找出语法错误或拼写错误

基础模型是 Amazon SageMaker JumpStart 和 Amazon B [edrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html) 大型语言模型 (LLMs) 的组合。Canvas 提供以下模型：


| 模型 | Type | 说明 | 
| --- | --- | --- | 
|  Amazon Titan  | Amazon Bedrock 模型 |  Amazon Titan 是一种功能强大的通用语言模型，可用于摘要、文本生成（例如创建博客文章）、分类、开放式问答和信息提取等任务。该模型在大型数据集上进行了预训练，因此适用于复杂的任务和推理。为继续支持负责任地使用 AI 的最佳实践，Amazon Titan 基础模型旨在检测和删除数据中的有害内容，拒绝用户输入中的不当内容，并筛选包含不当内容（如仇恨言论、亵渎和暴力）的模型输出。  | 
|  Anthropic Claude Instant  | Amazon Bedrock 模型 |  Anthropic 的 Claude Instant 是一种速度更快、成本效益更高、但功能仍然非常强大的模型。该模型可处理一系列任务，包括随意对话、文本分析、摘要和文档问题回答。就像 Claude-2 一样，Claude Instant 在每个提示中最多可以支持 10 万个令牌，相当于大约 200 页的信息。  | 
|  Anthropic Claude-2  | Amazon Bedrock 模型 |  Claude-2 是 Anthropic 最强大的模型，擅长完成从复杂的对话和创意内容生成到详细的指令跟踪等各种任务。Claude-2 可以在每个提示中接收多达 10 万个令牌，相当于大约 200 页的信息。与之前的版本相比，该模型可以生成更长的响应。该模型支持的使用案例包括问题回答、信息提取、PII 删除、内容生成、多选分类、角色扮演、文本比较、摘要和带引文的文档问答。  | 
|  Falcon-7B-Instruct  | JumpStart 模型 |  Falcon-7B-Instruct 有 70 亿个参数，并在聊天和指示数据集的混合基础上进行了微调。该模型适合作为虚拟助手，在遵循指令或进行对话时表现最佳。由于该模型是在大量英语 Web 数据的基础上训练出来的，因此带有网上常见的刻板印象和偏见，不适合英语以外的语言。与 Falcon-40B-Instruct 相比，Falcon-7B-Instruct 是一种稍小、更紧凑的模型。  | 
|  Falcon-40B-Instruct  | JumpStart 模型 |  Falcon-40B-Instruct 有 400 亿个参数，并在聊天和指示数据集的混合基础上进行了微调。该模型适合作为虚拟助手，在遵循指令或进行对话时表现最佳。由于该模型是在大量英语 Web 数据的基础上训练出来的，因此带有网上常见的刻板印象和偏见，不适合英语以外的语言。与 Falcon-7B-Instruct 相比，Falcon-40B-Instruct 模型稍微大一些，功能也更强大。  | 
|  Jurassic-2 Mid  | Amazon Bedrock 模型 |  Jurassic-2 Mid 是一种在海量文本语料库（目前截至 2022 年年中）上训练的高性能文本生成模型。该模型用途广泛、通用性强，能够撰写类似人类的文本并解决复杂的任务，例如问题回答、文本分类等。该模型提供了零样本指令功能，允许仅使用自然语言进行指导，而不使用示例。该模型的运行速度比其前身 Jurassic-1 模型快 30%。 Jurassic-2 Mid AI21 是中型机型，经过精心设计，在卓越的质量和可负担性之间取得适当的平衡。  | 
|  Jurassic-2 Ultra  | Amazon Bedrock 模型 |  Jurassic-2 Ultra 是一种在海量文本语料库（目前截至 2022 年年中）上训练的高性能文本生成模型。该模型用途广泛、通用性强，能够撰写类似人类的文本并解决复杂的任务，例如问题回答、文本分类等。该模型提供了零样本指令功能，允许仅使用自然语言进行指导，而不使用示例。该模型的运行速度比其前身 Jurassic-1 模型快 30%。 与 Jurassic-2 Mid 相比，Jurassic-2 Ultra 模型要稍大一些，功能也更强大。  | 
|  Llama-2-7b-Chat  | JumpStart 模型 |  Llama-2-7b-Chat 是 Meta 的基础模型，适用于进行有意义和连贯的对话、生成新内容以及从现有笔记中提取答案。由于此模型是在大量英语网络数据的基础上训练出来的，因此带有网上常见的偏差和局限性，最适合英语任务。  | 
|  Llama-2-13B-Chat  | Amazon Bedrock 模型 |  Llama-2-13B-Chat by Meta 在互联网数据上进行初步训练后，又根据对话数据进行了微调。它针对自然对话和引人入胜的聊天功能进行了优化，非常适合作为对话座席。与较小的 Llama-2-7b-Chat 相比，Llama-2-13B-Chat 的参数数量几乎是后者的两倍，因此它能记住更多的上下文，并做出更细致的对话回应。与 Llama-2-7b-Chat 一样，Llama-2-13B-Chat 也是在英语数据基础上进行训练的，最适合用于英语任务。  | 
|  Llama-2-70B-Chat  | Amazon Bedrock 模型 |  与 Llama-2-7b-Chat 和 Llama-2-13B-Chat 一样，Meta 的 Llama-2-70B-Chat 模型也经过优化，可进行自然而有意义的对话。这种大型对话模型拥有 700 亿个参数，能记住更广泛的上下文，与更紧凑的模型版本相比，能做出高度一致的响应。但是，这样做的代价是响应速度较慢，资源需求较高。Llama-2-70B-Chat 是在大量英语互联网数据的基础上训练出来的，最适合英语任务。  | 
|  Mistral-7B  | JumpStart 模型 |  Mistral.AI 的 Mistral-7B 是一款出色的通用语言模型，适用于文本生成、摘要和问题解答等各种自然语言 (NLP) 任务。它采用分组查询关注 (GQA)，推理速度更快，使其性能可与参数数量两倍或三倍的模型相媲美。它是在包括英语书籍、网站和科学论文在内的混合文本数据上进行训练的，因此最适合用于英语任务。  | 
|  Mistral-7B-Chat  | JumpStart 模型 |  Mistral-7B-Chat 是 Mistral.AI 基于 Mistral-7B 开发的对话模型。Mistral-7B 最适合用于一般的 NLP 任务，而 Mistral-7B-Chat 则根据对话数据进行了进一步微调，以优化其自然、引人入胜的聊天能力。因此，Mistral-7B-Chat 会生成更多类似人类的会生成，并能记住之前响应的上下文。与 Mistral-7B 一样，此模型最适合英语任务。  | 
|  MPT-7B-Instruct  | JumpStart 模型 |  MPT-7B-Instruct 是一种长格式指令跟踪任务的模型，可帮助您完成包括文本摘要和问题解答在内的写作任务，从而节省您的时间和精力。该模型是在大量经过微调的数据上训练的，可以处理较大的输入内容，例如复杂的文档。当您希望处理大量文本或希望模型生成较长的响应时，请使用该模型。  | 

Amazon Bedrock 的根基模型目前仅在美国东部（弗吉尼亚州北部）和美国西部（俄勒冈州）区域提供。此外，在使用 Amazon Bedrock 的根基模型时，根据每个模型提供商指定的输入令牌和输出令牌的数量向您收费。有关更多信息，请参阅 [Amazon Bedrock 定价](https://aws.amazon.com/bedrock/pricing/)页面。 JumpStart 基础模型部署在 SageMaker AI Hosting 实例上，使用时长将根据所使用的实例类型向您收费。有关不同实例类型费用的更多信息，请参阅[SageMaker 定价页面](https://aws.amazon.com/sagemaker/pricing/)上的 Amazon SageMaker AI 托管：实时推理部分。

文档查询是一项附加功能，您可以使用 Amazon Kendra 对存储在索引中的文档进行查询并从中获得见解。借助此功能，您可以根据这些文档的上下文生成内容，并接收特定于您的业务使用案例的响应，而不是对训练根基模型所依据的大量数据的通用响应。有关 Amazon Kendra 中索引的更多信息，请参阅 [Amazon Kendra 开发人员指南](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html)。

如果您希望从任何基础模型中获得根据您的数据和使用场景自定义的响应，您可以对基础模型进行微调。要了解更多信息，请参阅[微调基础模型](canvas-fm-chat-fine-tune.md)。

如果您想通过应用程序或网站从 Amazon SageMaker JumpStart 基础模型中获得预测，可以将该模型部署到 A SageMaker I *终端节点*。 SageMaker AI 终端节点托管您的模型，您可以通过应用程序代码向终端节点发送请求，以接收模型的预测。有关更多信息，请参阅 [将模型部署到端点](canvas-deploy-model.md)。

# 在 C SageMaker anvas 中完成基础模型的先决条件
<a name="canvas-fm-chat-prereqs"></a>

以下几节概述在 Canvas 中与根基模型交互和使用文档查询功能的先决条件。本页其余内容假定您已满足根基模型的先决条件。文档查询功能需要额外的权限。

## 根基模型的先决条件
<a name="canvas-fm-chat-prereqs-fm"></a>

与模型交互所需的权限包含在 Canvas Ready-to-use 模型权限中。要在 Canvas 中使用人工智能驱动的生成模型，您必须在设置 Amazon A SageMaker I 域时打开 **Canvas Ready-to-use 模型配置**权限。有关更多信息，请参阅 [设置 Amazon C SageMaker anvas 的先决条件](canvas-getting-started.md#canvas-prerequisites)。**Canvas Ready-to-use 模型配置**将[AmazonSageMakerCanvasAIServices访问](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)策略附加到您的 Canvas 用户 AWS Identity and Access Management (IAM) 执行角色。如果您在授予权限时遇到任何问题，请参阅主题 [解决通过 SageMaker AI 控制台授予权限的问题](canvas-limits.md#canvas-troubleshoot-trusted-services)。

如果您已经设置了域，则可以编辑域设置并开启权限。有关如何编辑域设置的说明，请参阅 [编辑域设置](domain-edit.md)。编辑网域的设置时，进入**画布设置**并打开**启用画布 Ready-to-use模型**选项。

某些 JumpStart 基础模型还要求您申请增加 A SageMaker I 实例配额。Canvas 托管您当前在这些实例上与之交互的模型，但您账户的默认限额可能不足。如果您在运行以下任何模型时遇到错误，请申请增加相关实例类型的限额：
+ Falcon-40B – `ml.g5.12xlarge`、`ml.g5.24xlarge`
+ Falcon-13B – `ml.g5.2xlarge`、`ml.g5.4xlarge`、`ml.g5.8xlarge`
+ MPT-7B-Instruct – `ml.g5.2xlarge`、`ml.g5.4xlarge`、`ml.g5.8xlarge`

对于上述实例类型，请求将端点使用限额从 0 增加到 1。有关如何增加账户实例限额的更多信息，请参阅《服务限额用户指南》**中的[请求增加限额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

## 查询文档的先决条件
<a name="canvas-fm-chat-prereqs-kendra"></a>

**注意**  
以下地区支持文档查询 AWS 区域：美国东部（弗吉尼亚北部）、美国东部（俄亥俄州）、美国西部（俄勒冈）、欧洲（爱尔兰）、亚太地区（新加坡）、亚太地区（悉尼）、亚太地区（东京）和亚太地区（孟买）。

文档查询功能要求您已经有一个用于存储文档和文档元数据的 Amazon Kendra 索引。有关 Amazon Kendra 的更多信息，请参阅《Amazon Kendra 开发人员指南》[https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html)。要详细了解查询索引的限额，请参阅《Amazon Kendra 开发人员指南》**中的[限额](https://docs.aws.amazon.com/kendra/latest/dg/quotas.html)。

您还必须确保 Canvas 用户配置文件具有查询文档所需的权限。该[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)策略必须附加到托管您的 Canvas 应用程序的 A SageMaker I 域的 AWS IAM 执行角色（默认情况下，此策略将附加到所有新的和现有的 Canvas 用户配置文件中）。您还必须专门授予文档查询权限，并指定对一个或多个 Amazon Kendra 索引的访问权限。

如果您的 Canvas 管理员正在设置新的域或用户配置文件，请让他们按照 [设置 Amazon C SageMaker anvas 的先决条件](canvas-getting-started.md#canvas-prerequisites) 中的说明设置域。在设置域名时，他们可以通过 C **anvas Ready-to-use 模型配置**开启文档查询权限。

Canvas 管理员也可以在用户配置文件级别管理文档查询权限。例如，如果管理员希望向某些用户配置文件授予文档查询权限，但删除其他用户配置文件的权限，他们可以编辑特定用户的权限。

以下过程演示如何为特定用户配置文件启用文档查询权限：

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从域列表中，选择用户配置文件的域。

1. 在**域详细信息**页面上，选择要编辑其权限的**用户配置文件**。

1. 在**用户详细信息**页面上，选择**编辑**。

1. 在左侧导航窗格中，选择 **Canvas 设置**。

1. 在 **Canvas Ready-to-use 模型配置**部分，打开**使用 Amazon Kendra 启用文档查询**开关。

1. 在下拉列表中，选择一个或多个您想要授予访问权限的 Amazon Kendra 索引。

1. 选择**提交**以保存对域设置的更改。

现在，您应该能够使用 Canvas 根基模型来查询指定的 Amazon Kendra 索引中的文档。

# 开始新的对话以生成、提取或汇总内容
<a name="canvas-fm-chat-new"></a>

要开始使用 Canvas 中的生成式人工智能根基模型，您可以使用其中一个模型启动新的聊天会话。对于 JumpStart 模型，你需要在模型处于活动状态时付费，因此当你想使用模型时，你必须启动模型，在完成交互后将其关闭。如果您没有关闭 JumpStart 模型，Canvas 会在闲置 2 小时后将其关闭。对于 Amazon Bedrock 模型（例如 Amazon Titan），您需要按提示付费；这些模型已处于活动状态，无需启动或关闭。Amazon Bedrock 会直接向您收取使用这些模型的费用。

要开始与模型聊天，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择 **R eady-to-use 模型**。

1. 选择**生成、提取和汇总内容**。

1. 在欢迎页面上，您将收到启动默认模型的建议。您可以启动推荐的模型，也可以从下拉菜单中选定**选择其他模型**来选择不同的模型。

1. 如果您选择了 JumpStart 基础模型，则必须先将其启动，然后才能使用。选择**启动模型，**然后将模型部署到 A SageMaker I 实例。这可能需要几分钟才能完成。模型准备就绪后，您可以输入提示信息并向模型提问。

   如果您从 Amazon Bedrock 中选择了一个根基模型，只要输入提示信息和提问，就可以立即开始使用。

根据模型的不同，您可以执行各种任务。例如，您可以输入一段文字，并要求模型对其进行总结。或者，您也可以要求模型对您所在领域的市场趋势进行简短总结。

模型在聊天中的响应基于您之前提示的上下文。如果您想在聊天中提出一个与之前的对话主题无关的新问题，我们建议您启动与模型的新聊天。

# 通过文档查询从文档中提取信息
<a name="canvas-fm-chat-query"></a>

**注意**  
本节假定您已完成上述部分 [查询文档的先决条件](canvas-fm-chat-prereqs.md#canvas-fm-chat-prereqs-kendra)。

文档查询是在 Canvas 中与根基模型交互时可以使用的功能。通过文档查询，您可以访问存储在 Amazon Kendra *索引*中的文档语料库，该索引保存了您的文档内容，其结构使文档具有可搜索性。您可以针对 Amazon Kendra 索引中的数据提出具体问题，根基模型会返回问题的答案。例如，您可以查询内部 IT 信息知识库，并提出诸如“如何连接到公司网络？”之类的问题。有关设置索引的更多信息，请参阅《Amazon Kendra 开发人员指南》[https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html)。

在使用文档查询功能时，根基模型会使用一种名为“检索增强生成 (RAG)”的技术，将其响应限制在索引中的文档内容范围内。这种技术将索引中最相关的信息与用户的提示捆绑在一起，然后将其发送到根基模型以获得响应。响应仅限于索引中可以找到的内容，从而防止模型根据外部数据给出错误的响应。有关此过程的更多信息，请参阅博客文章[基于企业数据快速构建高精度的生成式人工智能应用程序](https://aws.amazon.com/blogs/machine-learning/quickly-build-high-accuracy-generative-ai-applications-on-enterprise-data-using-amazon-kendra-langchain-and-large-language-models/)。

首先，在 Canvas 中与根基模型聊天时，打开页面顶部的**文档查询**开关。从下拉列表中，选择要查询的 Amazon Kendra 索引。然后，您可以开始提出与索引中的文档相关的问题。

**重要**  
文档查询支持 [比较模型输出](canvas-fm-chat-compare.md) 功能。当您开始新的聊天以比较模型输出时，任何现有的聊天历史记录都会被覆盖。

# 启动模型
<a name="canvas-fm-chat-manage"></a>

**注意**  
以下部分描述了启动模型，该模型仅适用于 JumpStart 基础模型，例如 Falcon-40B-Instruct。您可以随时即时访问 Amazon Bedrock 模型，如 Amazon Titan。

你可以随心所欲地启动任意数量的 JumpStart 模型。每个活跃的 JumpStart模型都会对您的账户产生费用，因此我们建议您启动的模型不要超过当前使用的数量。

要启动其他模型，可以执行以下操作：

1. 在**生成、提取和汇总内容**页面上，选择**新建聊天**。

1. 从下拉菜单中选择模型。如果要选择下拉菜单中未显示的模型，请选择**启动其他模型**，然后选择要启动的模型。

1. 选择**启动模型**。

模型应该会开始启动，几分钟后您就可以与模型聊天了。

# 关闭模型
<a name="canvas-fm-chat-shut-down"></a>

我们强烈建议您关闭未使用的模型。模型在闲置 2 小时后自动关闭。但是，要手动关闭模型，您可以执行以下操作：

1. 在**生成、提取和汇总内容**页面上，打开要关闭的模型的聊天。

1. 在聊天页面上，选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 选择**关闭模型**。

1. 在**关闭模型**确认框中，选择**关闭**。

模型开始关闭。如果您的聊天比较了两个或多个模型，您可以从聊天页面关闭单个模型，方法是选择模型的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**关闭模型**。

# 比较模型输出
<a name="canvas-fm-chat-compare"></a>

您可能需要并排比较不同模型的输出，以了解您更喜欢哪种模型的输出。这有助于您决定哪种模型最适合于您的使用案例。您最多可以在聊天中比较三种模型。

**注意**  
每个单独的模型都会在您的账户上产生费用。

您必须开始新的聊天才能添加模型进行比较。要在聊天中并排比较模型的输出，请执行以下操作：

1. 在聊天中，选择**新建聊天**。

1. 选择**比较**，然后使用下拉菜单选择要添加的模型。要添加第三个模型，请再次选择**比较**以添加另一个模型。
**注意**  
如果您想使用当前未处于活动状态的 JumpStart 模型，则系统会提示您启动该模型。

当模型处于活动状态时，您将在聊天中看到两个模型并排出现。您可以提交自己的提示，每个模型将在同一个聊天中做出响应，如以下屏幕截图所示。

![\[Canvas 界面的屏幕截图，其中两个模型的输出并排显示。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-chat-compare-outputs.png)


完成交互后，请务必单独关闭所有 JumpStart 模型，以免产生更多费用。

# 微调基础模型
<a name="canvas-fm-chat-fine-tune"></a>

您可以通过 Amazon SageMaker Canvas 访问的基础模型可以帮助您完成一系列通用任务。但是，如果您有特定的使用场景，并希望根据自己的数据自定义响应，则可以对基础模型进行*微调*。

要对基础模型进行微调，您需要提供一个由示例提示和模型响应组成的数据集。然后，根据数据训练基础模型。最后，经过微调的基础模型能够为您提供更具体的响应。

下面列出了可以在 Canvas 中进行微调的基础模型：
+ Titan Express
+ Falcon-7B
+ Falcon-7B-Instruct
+ Falcon-40B-Instruct
+ Falcon-40B
+ Flan-T5-Large
+ Flan-T5-Xl
+ Flan-T5-Xxl
+ MPT-7B
+ MPT-7B-Instruct

在微调模型时，您可以在 Canvas 应用程序中获取每个基础模型的更多详细信息。有关更多信息，请参阅 [微调模型](#canvas-fm-chat-fine-tune-procedure-model)。

本主题介绍了如何在 Canvas 中微调基础模型。

## 开始前的准备工作
<a name="canvas-fm-chat-fine-tune-prereqs"></a>

在微调基础模型之前，请确保您拥有 Canvas 中 Ready-to-use模型的权限以及与 Amazon Bedrock 有信任关系的 AWS Identity and Access Management 执行角色，这允许 Amazon Bedrock 在微调基础模型的同时担任您的角色。

在设置或编辑您的 Amazon SageMaker AI 域时，您必须 1) 打开 Canvas Ready-to-use 模型配置权限，以及 2) 创建或指定 Amazon Bedrock 角色，这是 A SageMaker I 与亚马逊 Bedrock 建立信任关系的 IAM 执行角色。有关配置这些设置的更多信息，请参阅 [设置 Amazon C SageMaker anvas 的先决条件](canvas-getting-started.md#canvas-prerequisites)。

如果您希望使用自己的 IAM 执行角色（而不是让 A SageMaker I 代表您创建一个），则可以手动配置 Amazon Bedrock 角色。有关配置 IAM 执行角色与 Amazon Bedrock 信任关系的更多信息，请参阅 [授予用户在 Canvas 中使用 Amazon Bedrock 和生成式人工智能功能的权限](canvas-fine-tuning-permissions.md)。

您还必须有一个格式化的数据集，以便对大型语言模型进行微调（LLMs）。以下是数据集的要求列表：
+ 数据集必须是表格形式，至少包含两列文本数据：一列输入数据（包含对模型的示例提示）和一列输出数据（包含来自模型的示例响应）。

  以下是示例：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html)
+ 我们建议数据集至少包含 100 个文本对（输入和输出项目的对应行）。这样可以确保基础模型有足够的数据进行微调，并提高其响应的准确性。
+ 每个输入和输出项最多包含 512 个字符。在微调基础模型时，任何较长的字符都会缩减到 512 个字符。

在微调 Amazon Bedrock 模型时，您必须遵守 Amazon Bedrock 配额。有关更多信息，请参阅*《Amazon Bedrock 用户指南》*中的[模型自定义配额](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html#model-customization-quotas)。

有关 Canvas 中一般数据集要求和限制的更多信息，请参阅 [创建数据集](canvas-import-dataset.md)。

## 微调基础模型
<a name="canvas-fm-chat-fine-tune-procedure"></a>

您可以在 Canvas 应用程序中使用以下方法对基础模型进行微调：
+ 在与基础模型进行**生成、提取和总结内容**聊天时，选择**微调模型**图标 (![\[Magnifying glass icon with a plus sign, indicating a search or zoom-in function.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/wrench-icon-small.png))。
+ 在与基础模型聊天时，如果您重新生成了两次或两次以上的响应，则 Canvas 会为您提供**微调模型**选项。以下界面截图显示了这种情况。  
![\[聊天中显示的微调基础模型选项的界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/fine-tuning-ingress.png)
+ 在**我的模型**页面，您可以通过选择**新建模型**来创建新模型，然后选择**微调基础模型**。
+ 在**Ready-to-use 模型**主页上，您可以选择**创建自己的模型**，然后在**创建新模型**对话框中，选择**微调基础模型**。
+ 在 **Data Wrangler** 选项卡中浏览数据集时，您可以选择一个数据集，然后选择**创建模型**。然后，选择**微调基础模型**。

开始微调模型后，请执行以下操作：

### 选择数据集。
<a name="canvas-fm-chat-fine-tune-procedure-select"></a>

在微调模型的**选择**选项卡中，您可以选择要训练基础模型的数据。

选择现有数据集或创建符合 [开始前的准备工作](#canvas-fm-chat-fine-tune-prereqs) 部分所列要求的新数据集。有关如何创建数据集的更多信息，请参阅 [创建数据集](canvas-import-dataset.md)。

选择或创建数据集后，如果准备继续，请选择**选择数据集**。

### 微调模型
<a name="canvas-fm-chat-fine-tune-procedure-model"></a>

选择数据后，您就可以开始训练和微调模型了。

在**微调**选项卡中，执行以下操作：

1. （可选）选择**了解有关我们的基础模型**的更多信息，以获取有关每个模型的更多信息，帮助您决定部署哪个或哪些基础模型。

1. 对于**最多选择 3 个基础模型**，打开下拉菜单并勾选最多 3 个基础模型（最多 2 个 JumpStart 模型和 1 个 Amazon Bedrock 模型），您想在训练作业中对其进行微调。通过微调多个基础模型，您可以比较它们的性能，并最终选择最适合您的使用场景的模型作为默认模型。有关默认模型的更多信息，请参阅 [在模型排行榜中查看候选模型](canvas-evaluate-model-candidates.md)。

1. 对于**选择输入列**，请在数据集中选择包含示例模型提示的文本数据列。

1. 对于**选择输出列**，请在数据集中选择包含示例模型响应的文本数据列。

1. （可选）要配置训练作业的高级设置，请选择**配置模型**。有关高级模型构建设置的更多信息，请参阅 [高级模型构建配置](canvas-advanced-settings.md)。

   在弹出的**配置模型**窗口中，执行以下操作：

   1. 对于**超参数**，您可以为所选的每个模型调整**历时计数**、**批次大小**、**学习率**和**学习率预热步骤**。有关这些参数的更多信息，请参阅[ JumpStart 文档中的超参数部分](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-fine-tune.html#jumpstart-hyperparameters)。

   1. 对于**数据拆分**，您可以指定数据在**训练集**和**验证集**之间的分割百分比。

   1. 对于**最大作业运行**时间，您可以设置 Canvas 运行构建作业的最大时间。此功能仅适用于 JumpStart 基础模型。

   1. 配置完设置后，选择**保存**。

1. 选择**微调**，开始训练您选择的基础模型。

微调作业开始后，您就可以离开此页面。当模型在**我的模型**页面上显示为**就绪**时，它就可以使用了，您现在可以分析微调后的基础模型的性能。

### 分析微调后的基础模型
<a name="canvas-fm-chat-fine-tune-procedure-analyze"></a>

在微调后的基础模型的**分析**选项卡上，您可以看到模型的性能。

此页面上的**概述**选项卡会显示复杂度和损失分数，以及可视化模型在训练过程中随时间推移而不断改进情况的分析结果。下面的截图显示了**概述**选项卡。

![\[Canvas 中微调后的基模型的“分析”选项卡，显示了复杂度和损失曲线。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-analyze-2.png)


在此页面上，您可以看到以下可视化效果：
+ **复杂度曲线**衡量模型预测序列中下一个单词的效果，或模型输出的语法程度。理想情况下，随着模型在训练过程中不断改进，分数也会随之降低，并形成一条随时间推移而降低并趋于平缓的曲线。
+ **损失曲线**量化了正确输出与模型预测输出之间的差异。如果损失曲线随着时间的推移逐渐减小并趋于平缓，则表明模型准确预测的能力正在提高。

**高级指标**选项卡会显示模型的超参数和其他指标。类似下面的界面截图：

![\[Canvas 中微调后的基础模型的“高级指标”选项卡界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-metrics.png)


**高级指标**选项卡包含以下信息：
+ **可解释性**部分包含**超参数**，这些参数是在作业前设置的值，用于指导模型的微调。如果您没有在 [微调模型](#canvas-fm-chat-fine-tune-procedure-model) 部分的模型高级设置中指定自定义超参数，则 Canvas 会为您选择默认超参数。

  对于 JumpStart 模型，您还可以查看高级指标 [ROUGE（面向召回的 Gisting 评估不足）](https://en.wikipedia.org/wiki/ROUGE_(metric))，它评估模型生成的摘要的质量。它衡量的是模型总结段落要点的能力。
+ **构件**部分为您提供了微调作业期间生成的构件链接。您可以访问保存在 Amazon S3 中的训练和验证数据，以及模型评测报告的链接（要了解更多信息，请参阅以下段落）。

要获得更多模型评估见解，您可以下载使用 Clari [SageMaker f](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-configure-processing-jobs.html) y 生成的报告，该功能可以帮助您检测模型和数据中的偏差。首先，在页面底部选择**生成评估报告**，生成报告。生成报告后，您可以选择**下载报告**或返回**构件**部分下载完整报告。

您还可以访问 Jupyter Notebook，了解如何用 Python 代码复制微调作业。您可以利用它来复制或对微调作业进行编程更改，或者深入了解 Canvas 如何微调模型。要了解有关模型笔记本以及如何访问它们的更多信息，请参阅 [下载模型笔记本](canvas-notebook.md)。

有关如何解释微调后的基础模型**分析**选项卡中信息的更多信息，请参阅主题 [模型评测](canvas-evaluate-model.md)。

在分析了**概述**和**高级指标**选项卡后，您还可以选择打开**模型排行榜**，它将显示构建过程中训练的基础模型列表。损失分数最低的模型被认为是性能最好的模型，并被选为**默认模型**，也就是您在**分析**选项卡中看到的分析模型。您只能测试和部署默认模型。有关模型排行榜以及如何更改默认模型的更多信息，请参阅 [在模型排行榜中查看候选模型](canvas-evaluate-model-candidates.md)。

### 测试聊天中微调后的基础模型
<a name="canvas-fm-chat-fine-tune-procedure-test"></a>

在分析了微调后的基础模型的性能后，您可能想对其进行测试，或将其响应与基础模型进行比较。您可以通过**生成、提取和总结内容**功能测试聊天中微调后的基础模型。

选择以下方法之一，与微调后的模型开始聊天：
+ 在微调模型的**分析**选项卡上，选择**在 Ready-to-use基础模型中测试**。
+ 在画布**Ready-to-use 模型**页面上，选择**生成、提取和汇总内容**。然后，选择**新建聊天**，然后选择要测试的模型版本。

模型会在聊天中启动，您可以像任何与其他基础模型一样与它互动。您可以在聊天中添加更多模型，并比较它们的输出结果。有关聊天功能的更多信息，请参阅 [C SageMaker anvas 中的生成式 AI 基础模型](canvas-fm-chat.md)。

## 运行微调后的基础模型
<a name="canvas-fm-chat-fine-tune-mlops"></a>

在 Canvas 中对模型进行微调后，您可以执行以下操作：
+ 将模型注册到 “ SageMaker 模型注册表”，以便集成到您的组织 MLOps 流程中。有关更多信息，请参阅 [在 SageMaker AI 模型注册表中注册模型版本](canvas-register-model.md)。
+ 将模型部署到 A SageMaker I 终端节点，然后从您的应用程序或网站向模型发送请求以获取预测（或*推断*）。有关更多信息，请参阅 [将模型部署到端点](canvas-deploy-model.md)。

**重要**  
您只能注册和部署 JumpStart 基于微调的基础模型，而不能注册和部署基于 Amazon Bedrock 的模型。

# Ready-to-use 模型
<a name="canvas-ready-to-use-models"></a>

借助 Amazon SageMaker Canvas Ready-to-use 模型，您无需编写任何代码或构建模型即可对数据进行预测，您只需要携带数据即可。这些 Ready-to-use模型使用预先构建的模型来生成预测，而无需您花费构建模型所需的时间、专业知识或成本，并且您可以从各种用例中进行选择，从语言检测到费用分析。

Canvas 与现有 AWS 服务（例如[亚马逊 Textract、Amazon Re [kognition 和 Amazon](https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html) Comprehend）集成，可以分析您的数据[并](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html)做出预测或提取](https://docs.aws.amazon.com/textract/latest/dg/what-is.html)见解。您可以在 Canvas 应用程序中使用这些服务的预测能力来获得对数据的高质量预测。

Canvas 支持以下 Ready-to-use模型类型：


| Ready-to-use 模型 | 说明 | 支持的数据类型 | 
| --- | --- | --- | 
| 情绪分析 | 检测文本行中的情绪，情绪可以是积极的、消极的、中立的或混合的。目前，您只能对英语文本进行情绪分析。 | 纯文本或表格（CSV、Parquet） | 
| 实体提取 | 从文本中提取实体，即现实世界中的人物、地点和商业物品等对象，或日期和数量等单位。 | 纯文本或表格（CSV、Parquet） | 
| 语言检测 | 确定文本中的主要语言，如英语、法语或德语。 | 纯文本或表格（CSV、Parquet） | 
| 个人信息检测 | 从文本中检测可用于识别个人身份的个人信息，如地址、银行账号和电话号码。 | 纯文本或表格（CSV、Parquet） | 
| 图像中的对象检测 | 检测图像中的对象、概念、场景和动作。 | 图像（JPG、PNG） | 
| 图像中的文本检测 | 检测图像中的文本。 | 图像（JPG、PNG） | 
| 费用分析 | 从发票和收据中提取信息，如日期、数量、商品价格、总金额和付款条件。 | 文档（PDF、JPG、PNG、TIFF） | 
| 身份证件分析 | 从美国政府签发的护照、驾照和其他身份证件中提取信息。 | 文档（PDF、JPG、PNG、TIFF） | 
| 文档分析 | 分析文档和表单，找出检测到的文本之间的关系。 | 文档（PDF、JPG、PNG、TIFF） | 
| 文档查询 | 通过使用自然语言提问，从工资单、银行对账单、W-2 和抵押贷款申请表等结构化文档中提取信息。 | 文档 (PDF) | 

## 开始使用
<a name="canvas-ready-to-use-get-started"></a>

要开始使用 Ready-to-use模型，请查看以下信息。

**先决条件**

要在 Canvas 中使用 Ready-to-use模型，您必须在[设置 Amazon A SageMaker I 域](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites)时开启**画布 Ready-to-use模型配置**权限。**Canvas Ready-to-use 模型配置**将[AmazonSageMakerCanvasAIServices访问](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)策略附加到您的 Canvas 用户 AWS Identity and Access Management (IAM) 执行角色。如果您在授予权限时遇到任何问题，请参阅主题 [解决通过 SageMaker AI 控制台授予权限的问题](canvas-limits.md#canvas-troubleshoot-trusted-services)。

如果您已经设置了域，则可以编辑域设置并开启权限。有关如何编辑域设置的说明，请参阅[编辑域设置](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-edit.html)。编辑网域的设置时，进入**画布设置**并打开**启用画布 Ready-to-use模型**选项。

**（可选）选择退出人工智能服务数据存储**

某些 AWS AI 服务存储并使用您的数据来改进服务。您可以选择不存储您的数据，或不将您的内容用于改进服务。要了解有关如何选择退出的更多信息，请参阅《AWS Organizations 用户指南》**中的[人工智能服务选择退出政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html)。

**如何使用 Ready-to-use模型**

要开始使用 Ready-to-use模型，请执行以下操作：

1. **（可选）导入您的数据。**您可以导入表格、图像或文档数据集以生成批量预测，也可以导入带有 Ready-to-use模型的预测数据集。要开始导入数据集，请参阅 [创建数据流](canvas-data-flow.md)。

1. **生成预测。**您可以使用所选 Ready-to-use模型生成单一预测或批量预测。要开始进行预测，请参阅 [对文本数据进行预测](canvas-ready-to-use-predict-text.md)。

# 对文本数据进行预测
<a name="canvas-ready-to-use-predict-text"></a>

以下过程介绍如何对文本数据集进行单一预测和批量预测。每个 Ready-to-use模型都支持您的数据集的**单一预测****和批量预测**。**单一预测**是指您只需进行一次预测。例如，您有一张图像要从中提取文本，或者有一段文本要检测其主要语言。**批量预测**是指您想对整个数据集进行预测。例如，您可能有一个包含客户评论的 CSV 文件，您想分析其中的客户情绪，或者您可能有想要在其中检测对象的图像文件。

您可以将这些过程用于以下 Ready-to-use模型类型：情感分析、实体提取、语言检测和个人信息检测。

**注意**  
对于情绪分析，您只能使用英语文本。

## 单一预测
<a name="canvas-ready-to-use-predict-text-single"></a>

要对接受文本数据的 Ready-to-use模型进行单一预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择 **R eady-to-use 模型**。

1. 在**Ready-to-use 模型**页面上，为您的用例选择 Ready-to-use模型。对于文本数据，应该是以下模型之一：**情绪分析**、**实体提取**、**语言检测**或**个人信息检测**。

1. 在所选 Ready-to-use模型的**运行预测**页面上，选择**单一预测**。

1. 在**文本**字段中，输入您要预测的文本。

1. 选择**生成预测结果**以获取您的预测结果。

在右侧窗格的**预测结果**中，除了每个结果或标签的**置信度**分数外，您还会收到对文本的分析。例如，如果您选择语言检测并输入一段法语文本，则法语的置信度分数可能为 95%，而其他语言（例如英语）的置信度分数为 5%。

以下屏幕截图显示了使用语言检测进行单一预测的结果，其中模型 100% 确信段落是英语。

![\[使用语言检测 Ready-to-use模型进行的单一预测结果的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-text-prediction.png)


## 批量预测
<a name="canvas-ready-to-use-predict-text-batch"></a>

要对接受文本数据的 Ready-to-use模型进行批量预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择 **R eady-to-use 模型**。

1. 在**Ready-to-use 模型**页面上，为您的用例选择 Ready-to-use模型。对于文本数据，应该是以下模型之一：**情绪分析**、**实体提取**、**语言检测**或**个人信息检测**。

1. 在所选 Ready-to-use模型的 “**运行预测**” 页面上，选择 **Batch 预测**。

1. 如果您已经导入了数据集，请选定**选择数据集**。如果未导入，请选择**导入新数据集**，然后将引导您完成导入数据工作流。

1. 从可用数据集列表中，选择您的数据集并选择**生成预测**以获取预测。

预测作业运行完毕后，在**运行预测**页面上，您会看到**预测**下列出了输出数据集。此数据集包含您的结果，如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以**预览**输出数据。然后，您可以选择**下载**来下载结果。

# 对图像数据进行预测
<a name="canvas-ready-to-use-predict-image"></a>

以下过程介绍如何对图像数据集进行单一预测和批量预测。每个 Ready-to-use模型都支持您的数据集的**单一预测****和批量预测**。**单一预测**是指您只需进行一次预测。例如，您有一张图像要从中提取文本，或者有一段文本要检测其主要语言。**批量预测**是指您想对整个数据集进行预测。例如，您可能有一个包含客户评论的 CSV 文件，您想分析其中的客户情绪，或者您可能有想要在其中检测对象的图像文件。

您可以将这些过程用于以下 Ready-to-use模型类型：物体检测图像和图像中的文本检测。

## 单一预测
<a name="canvas-ready-to-use-predict-image-single"></a>

要对接受图像数据的 Ready-to-use模型进行单一预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择 **R eady-to-use 模型**。

1. 在**Ready-to-use 模型**页面上，为您的用例选择 Ready-to-use模型。对于图像数据，应该是以下模型之一：**图像中的对象检测**或**图像中的文本检测**。

1. 在所选 Ready-to-use模型的**运行预测**页面上，选择**单一预测**。

1. 选择**上传图像**。

1. 系统会提示您选择要从本地计算机上传的图像。从本地文件中选择图像，然后生成预测结果。

在右侧窗格的**预测结果**中，除了检测到的每个对象或文本的**置信度**分数外，您还会收到对图像的分析。例如，如果您选择图像中的对象检测，则会收到图像中对象的列表，以及模型对每个对象都被准确检测到的确定程度的置信度分数，例如 93%。

以下屏幕截图显示了使用图像中的对象检测解决方案进行单一预测的结果，其中模型以 100% 的置信度预测出钟楼和公交车等对象。

![\[在图像 Ready-to-use模型中使用目标检测解决方案进行单一预测的结果。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-image-prediction.png)


## 批量预测
<a name="canvas-ready-to-use-predict-image-batch"></a>

要对接受图像数据的 Ready-to-use模型进行批量预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择 **R eady-to-use 模型**。

1. 在**Ready-to-use 模型**页面上，为您的用例选择 Ready-to-use模型。对于图像数据，应该是以下模型之一：**图像中的对象检测**或**图像中的文本检测**。

1. 在所选 Ready-to-use模型的 “**运行预测**” 页面上，选择 **Batch 预测**。

1. 如果您已经导入了数据集，请选定**选择数据集**。如果未导入，请选择**导入新数据集**，然后将引导您完成导入数据工作流。

1. 从可用数据集列表中，选择您的数据集并选择**生成预测**以获取预测。

预测作业运行完毕后，在**运行预测**页面上，您会看到**预测**下列出了输出数据集。此数据集包含您的结果，如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择**查看预测结果**来预览输出数据。然后，您可以选择**下载预测**并将结果下载为 CSV 或 ZIP 文件。

# 对文档数据进行预测
<a name="canvas-ready-to-use-predict-document"></a>

以下过程介绍如何对文档数据集进行单一预测和批量预测。每个 Ready-to-use模型都支持您的数据集的**单一预测****和批量预测**。**单一预测**是指您只需进行一次预测。例如，您有一张图像要从中提取文本，或者有一段文本要检测其主要语言。**批量预测**是指您想对整个数据集进行预测。例如，您可能有一个包含客户评论的 CSV 文件，您想分析其中的客户情绪，或者您可能有想要在其中检测对象的图像文件。

您可以将这些过程用于以下 Ready-to-use模型类型：费用分析、身份证件分析和文档分析。

**注意**  
对于文档查询，目前仅支持单一预测。

## 单一预测
<a name="canvas-ready-to-use-predict-document-single"></a>

要对接受文档数据的 Ready-to-use模型进行单一预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择 **R eady-to-use 模型**。

1. 在**Ready-to-use 模型**页面上，为您的用例选择 Ready-to-use模型。对于文档数据，应该是以下模型之一：**费用分析**、**身份证件分析**或**文档分析**。

1. 在所选 Ready-to-use模型的**运行预测**页面上，选择**单一预测**。

1. 如果您的 Ready-to-use模型是身份证件分析或文档分析，请完成以下操作。如果您正在进行费用分析或文档查询，请跳过此步骤，分别转到步骤 5 或步骤 6。

   1. 选择**上传文档**。

   1. 系统会提示您从本地计算机上传 PDF、JPG 或 PNG 文件。从本地文件中选择文档，然后将生成预测结果。

1. 如果您的 Ready-to-use模型是支出分析，请执行以下操作：

   1. 选择**上传发票或收据**。

   1. 系统会提示您从本地计算机上传 PDF、JPG、PNG 或 TIFF 文件。从本地文件中选择文档，然后将生成预测结果。

1. 如果您的 Ready-to-use模型是文档查询，请执行以下操作：

   1. 选择**上传文档**。

   1. 系统会提示您从本地计算机上传 PDF 文件。从本地文件中选择文档。PDF 文件长度必须为 1-100 页。
**注意**  
如果您位于亚太地区（首尔）、亚太地区（新加坡）、亚太地区（悉尼）或欧洲地区（法兰克福）这样的区域，则用于文档查询的最大 PDF 大小为 20 页。

   1. 在右侧窗格中，输入查询以搜索文档中的信息。单个查询中可以包含的字符数介于 1 到 200 之间。您一次最多可以添加 15 个查询。

   1. 选择**提交查询**，然后生成包含查询答案的结果。您每次提交查询都需要支付一次费用。

在右侧窗格的**预测结果**中，您将收到对文档的分析。

以下信息描述了每种解决方案的结果：
+ 对于费用分析，将结果分为**汇总字段**（包括收据上的总额等字段）和**行项目字段**（包括收据上的单个项目等字段）。已识别的字段会在输出的文档图像上突出显示。
+ 对于身份证件分析，输出会显示 Ready-to-use模型识别的字段，例如名字和姓氏、地址或出生日期。已识别的字段会在输出的文档图像上突出显示。
+ 对于文档分析，将结果分为**原始文本**、**表单**、**表格**和**签名**。**原始文本**包括所有提取的文本，而**表单**、**表格**和**签名**仅包含属于这些类别的表单信息。例如，**表格**仅包含从文档中的表格中提取的信息。已识别的字段会在输出的文档图像上突出显示。
+ 对于文档查询，Canvas 会返回每个查询的答案。您可以打开可折叠的查询下拉列表来查看结果以及预测的置信度分数。如果 Canvas 在文档中找到多个答案，则每个查询可能有多个结果。

以下屏幕截图显示了使用文档分析解决方案进行单一预测的结果。

![\[使用文档分析 Ready-to-use模型进行单一预测的结果屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-document-analysis.png)


## 批量预测
<a name="canvas-ready-to-use-predict-document-batch"></a>

要对接受文档数据的 Ready-to-use模型进行批量预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择 **R eady-to-use 模型**。

1. 在**Ready-to-use 模型**页面上，为您的用例选择 Ready-to-use模型。对于图像数据，应该是以下模型之一：**费用分析**、**身份证件分析**或**文档分析**。

1. 在所选 Ready-to-use模型的 “**运行预测**” 页面上，选择 **Batch 预测**。

1. 如果您已经导入了数据集，请选定**选择数据集**。如果未导入，请选择**导入新数据集**，然后将引导您完成导入数据工作流。

1. 从可用数据集列表中，选择您的数据集并选择**生成预测**。如果您的使用案例是文档分析，请继续执行步骤 6。

1. （可选）如果您的使用案例是文档分析，则会出现另一个名为**选择要包含在批量预测中的特征**的对话框。您可以选择**表单**、**表格**和**签名**，按这些特征对结果进行分组。然后，选择**生成预测**。

预测作业运行完毕后，在**运行预测**页面上，您会看到**预测**下列出了输出数据集。此数据集包含您的结果，如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择**查看预测结果**来预览文档数据的分析。

以下信息描述了每种解决方案的结果：
+ 对于费用分析，将结果分为**汇总字段**（包括收据上的总额等字段）和**行项目字段**（包括收据上的单个项目等字段）。已识别的字段会在输出的文档图像上突出显示。
+ 对于身份证件分析，输出会显示 Ready-to-use模型识别的字段，例如名字和姓氏、地址或出生日期。已识别的字段会在输出的文档图像上突出显示。
+ 对于文档分析，将结果分为**原始文本**、**表单**、**表格**和**签名**。**原始文本**包括所有提取的文本，而**表单**、**表格**和**签名**仅包含属于这些类别的表单信息。例如，**表格**仅包含从文档中的表格中提取的信息。已识别的字段会在输出的文档图像上突出显示。

预览结果后，您可以选择**下载预测**并将结果下载为 ZIP 文件。

# 自定义模型
<a name="canvas-custom-models"></a>

在 Amazon SageMaker Canvas 中，您可以训练根据您的特定数据和用例量身定制的自定义机器学习模型。通过基于数据训练自定义模型，您可以捕获最能代表您数据的特定特征和趋势。例如，您可能需要创建一个自定义的时间序列预测模型，该模型可以根据仓库中的库存数据进行训练，从而管理您的物流运营。

Canvas 支持训练一系列模型类型。训练自定义模型后，您可以评估模型的性能和准确性。对模型感到满意后，您可以对新数据进行预测，还可以选择与数据科学家共享自定义模型以进行进一步分析，或者将其部署到 SageMaker 人工智能托管的端点进行实时推理，所有这些都在 Canvas 应用程序中完成。

您可以基于以下类型的数据集训练 Canvas 自定义模型：
+ 表格（包括数值、分类、时间序列和文本数据）
+ 图像

下表显示了您可以在 Canvas 中构建的自定义模型的类型，以及它们支持的数据类型和数据来源。


| 模型类型 | 使用案例示例 | 支持的数据类型 | 支持的数据来源 | 
| --- | --- | --- | --- | 
| 数值预测 | 根据面积等特征预测房价 | 数值 | 本地上传、Amazon S3、SaaS 连接器 | 
| 2 类别预测 | 预测客户是否可能流失 | 二进制或分类 | 本地上传、Amazon S3、SaaS 连接器 | 
| 3\$1 类别预测 | 预测患者出院后的预后 | 分类 | 本地上传、Amazon S3、SaaS 连接器 | 
| 时间序列预测 | 预测下一季度的库存 | 时间序列 | 本地上传、Amazon S3、SaaS 连接器 | 
| 单标签图像预测 | 预测图像中的制造缺陷类型 | 图像（JPG、PNG） | 本地上传、Amazon S3 | 
| 多元文本预测 | 根据商品描述预测商品类别，例如服装、电子产品或家居用品 |  来源列：文本 目标列：二进制或分类 | 本地上传、Amazon S3 | 

**开始使用**

要开始构建自定义模型并使用自定义模型生成预测，请执行以下操作：
+ 确定您的使用案例和要构建的模型类型。有关自定义模型类型的更多信息，请参阅 [自定义模型的工作原理](canvas-build-model.md)。有关自定义模型支持的数据类型和来源的更多信息，请参阅 [导入数据](canvas-importing-data.md)。
+ [导入数据](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-importing-data.html)至 Canvas。您可以使用满足输入要求的任何表格或图像数据集构建自定义模型。有关输入要求的更多信息，请参阅 [创建数据集](canvas-import-dataset.md)。

  要了解有关 SageMaker AI 提供的可供您进行实验的示例数据集的更多信息，请参阅[Canvas 中的示例数据集](canvas-sample-datasets.md)。
+ [构建](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)您的自定义模型。您可以进行**快速构建**以便更快地获得模型并开始预测，也可以进行**标准构建**以提高准确性。

  对于数值、分类和时间序列预测模型类型，您可以使用 [Data Wrangler 功能](canvas-data-prep.md)清理和准备数据。在 Data Wrangler 中，您可以创建数据流并使用各种数据准备技术，例如应用高级转换或联接数据集。对于图像预测模型，您可以[编辑图像数据集](canvas-edit-image.md)以更新标签或添加和删除图像。请注意，您无法将这些功能用于多元文本预测模型。
+ [评估模型的性能](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html)，确定其在实际数据中的表现。
+ 使用您的模型[进行单一预测或批量预测](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-make-predictions.html)。

# 自定义模型的工作原理
<a name="canvas-build-model"></a>

使用 Amazon SageMaker Canvas 在您导入的数据集上构建自定义模型。使用您构建的模型对新数据进行预测。 SageMaker Canvas 使用数据集中的信息构建多达 250 个模型，然后选择性能最好的模型。

当您开始构建模型时，Canvas 会自动推荐一种或多种*模型类型*。模型类型可分为以下几类：
+ **数值预测** – 这在机器学习中被称为*回归*。要对数值数据进行预测时，请使用数值预测模型类型。例如，您可能想根据房屋面积等特征预测房屋价格。
+ **分类预测** – 这在机器学习中被称为*分类*。当您希望将数据分类成组时，请使用分类预测模型类型：
  + **2 类别预测** – 当您要对数据进行两个类别的预测时，请使用 2 类别预测模型类型（在机器学习中也称为*二元分类*）。例如，您可能希望确定客户是否可能流失。
  + **3\$1 类别预测** – 当您要对数据进行三个或更多类别的预测时，请使用 3\$1 类别预测模型类型（在机器学习中也称为*多元分类*）。例如，您可能希望根据以往的付款情况等特征来预测客户的贷款状态。
+ **时间序列预测** - 当您要对一段时间进行预测时，可使用时间序列预测。例如，您可能想要预测下一季度将销售的商品数量。有关时间序列预测的信息，请参阅 [Amazon SageMaker Canvas 中的时间序列预测](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-time-series.html)。
+ **图像预测** – 要为图像分配标签时，请使用单标签图像预测模型类型（在机器学习中也称为*单标签图像分类*）。例如，您可能希望对产品图片中不同类型的制造缺陷进行分类。
+ **文本预测** – 要为文本段落分配标签时，请使用多元文本预测模型类型（在机器学习中也称为*多元文本分类*）。例如，您可能有一个产品买家评论数据集，您想确定买家是喜欢还是不喜欢该产品。您可以让模型预测给定的文本段落是`Positive`、`Negative`还是`Neutral`。

有关每种模型类型支持的输入数据类型的表，请参阅[自定义模型](canvas-custom-models.md)。

对于您构建的每个表格数据模型（包括数值、分类、时间序列预测和文本预测模型），您可以选择**目标列**。**目标列**是包含要预测的信息的列。例如，如果您要构建一个模型来预测人们是否取消了订阅，则**目标列**包含的数据点为 `yes` 或 `no`，都与某人的取消状态有关。

对于图像预测模型，您可以使用已分配标签的图像数据集来构建模型。对于您提供的未标注图像，模型会预测一个标签。例如，如果您要构建模型来预测图像是猫还是狗，则在构建模型时需要提供标注为猫或狗的图像。然后，模型可以接受未标注的图像并将其预测为猫或狗。

**在构建模型时发生的情况**

要构建模型，您可以选择**快速构建**或**标准构建**。**快速构建**的构建时间较短，但**标准构建**的精度通常更高。

对于表格预测模型和时间序列预测模型，Canvas 使用*缩减采样*来分别减小超过 5 GB 或 30 GB 的数据集的大小。Canvas 采用分层采样方法进行缩减采样。下表列出了按模型类型列出的缩减采样的大小。要控制采样过程，您可以使用 Canvas 中的 Data Wrangler，使用自己喜欢的采样技术进行采样。对于时间序列数据，您可以通过重新采样来汇总数据点。有关采样的更多信息，请参阅 [采样](canvas-transform.md#canvas-transform-sampling)。有关对时间序列数据进行重新采样的更多信息，请参阅 [重新采样时间序列数据](canvas-transform.md#canvas-resample-time-series)。

如果您选择在超过 50000 行的数据集上进行**快速构建**，则 Canvas 会将数据采样到 50000 行，从而缩短模型训练时间。

下表总结了模型构建过程的主要特征，包括每个模型和构建类型的平均构建时间、使用大型数据集构建模型时的缩减采样大小，以及每个构建类型所需的最少和最多数据点数量。


| 限制 | 数值预测和分类预测 | 时间序列预测 | 图像预测 | 文本预测 | 
| --- | --- | --- | --- | --- | 
| **快速构建**时间 | 2‐20 分钟 | 2‐20 分钟 | 15‐30 分钟 | 15‐30 分钟 | 
| **标准构建**时间 | 2‐4 小时 | 2‐4 小时 | 2‐5 小时 | 2‐5 小时 | 
| 缩减采样大小（Canvas 缩减采样后大型数据集的大小减小） | 5 GB | 30 GB | 不适用 | 不适用 | 
| **快速构建**的最小条目（行）数 |  2 类别：500 行 3\$1 类别、数值、时间序列：不适用  | 不适用 | 不适用 | 不适用 | 
| **标准构建**的最小条目数（行、图像或文档） | 250 | 50 | 50 | 不适用 | 
| **快速构建**的最大条目数（行、图像或文档） | 不适用 | 不适用 | 5000 | 7500 | 
| **标准构建**的最大条目数（行、图像或文档） | 不适用 | 15万 | 180,000 | 不适用 | 
| 最大列数 | 1000 | 1000 | 不适用 | 不适用 | 

Canvas 使用数据集其余部分中的信息来预测值，具体取决于模型类型：
+ 对于分类预测，Canvas 将每行归入**目标列**中列出的类别之一。
+ 对于数值预测，Canvas 使用数据集中的信息来预测**目标列**中的数值。
+ 对于时间序列预测，Canvas 使用历史数据来预测未来**目标列**的值。
+ 对于图像预测，Canvas 使用已分配标签的图像来预测未标注图像的标签。
+ 对于文本预测，Canvas 会分析已分配标签的文本数据，以预测未标注文本段落的标签。

**有助于您构建模型的其他功能**

在构建模型之前，您可以使用 Canvas 中的 Data Wrangler，使用 300 多种内置转换和运算符准备数据。Data Wrangler 支持表格数据集和映像数据集的转换。此外，您还可以连接到 Canvas 以外的数据来源，创建作业对整个数据集进行转换，并导出经过充分准备和清理的数据，以用于 Canvas 之外的 ML 工作流程。有关更多信息，请参阅 [数据准备](canvas-data-prep.md)。

要查看可视化和分析结果以了解数据并确定在模型中包含哪些功能，您可以使用 Data Wrangler 的内置分析功能。您还可以访问**数据质量和见解报告**，此报告重点介绍了数据集的潜在问题，并提供了如何解决这些问题的建议。有关更多信息，请参阅 [进行探索性数据分析 (EDA)](canvas-analyses.md)。

除了 Data Wrangler 提供的高级数据准备和探索功能外，Canvas 还提供了一些可供您使用的基本功能：
+ 要过筛选数据并访问一组基本数据转换，请参阅 [为模型构建准备数据](canvas-prepare-data.md)。
+ 要访问用于功能探索的简单可视化和分析，请参阅 [数据探索和分析](canvas-explore-data.md)。
+ 要进一步了解其他功能，例如预览模型、验证数据集以及更改用于构建模型的随机样本的大小，请参阅[预览模型](canvas-preview-model.md)。

对于包含多列的表格数据集（例如用于构建分类、数值或时间序列预测模型类型的数据集），可能存在缺少数据点的行。当 Canvas 构建模型时，它会自动添加缺失值。Canvas 使用数据集中的值对缺失值进行数学近似计算。为了获得最高的模型精度，我们建议您在能找到缺失数据的情况下将其添加进来。请注意，文本预测或图像预测模型不支持缺失数据特征。

**开始使用**

要开始构建自定义模型，请参阅[构建模型](canvas-build-model-how-to.md)，按照要构建的模型类型的相应步骤进行操作。

# 预览模型
<a name="canvas-preview-model"></a>

**注意**  
以下功能仅适用于使用表格数据集构建的自定义模型。多元文本预测模型也排除在外。

SageMaker Canvas 为您提供了一种工具，可以在开始构建之前预览模型。这样，您就可以估算出准确性分数，还可以初步了解每一列可能对模型产生的影响。

要预览模型分数，请在模型的**构建**选项卡中选择**预览模型**。

模型预览会生成**估计准确性**，预测模型分析数据的准确性。**快速构建**或**标准构建**的精度代表模型在实际数据上的表现，通常高于**估计精度**。

模型预览还提供了**列影响**分数，可以表明每一列对模型预测的重要性。

下面的界面截图显示了 Canvas 应用程序中的模型预览效果。

![\[Canvas 中模型的构建选项卡的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-build/canvas-build-preview-model.png)


Amazon SageMaker Canvas 在构建模型时会自动处理数据集中的缺失值。它通过使用数据集中存在的相邻值来推断缺失值。

如果您对模型预览感到满意，并希望继续构建模型，请参阅 [构建模型](canvas-build-model-how-to.md)。

# 数据验证
<a name="canvas-dataset-validation"></a>

在构建模型之前， SageMaker Canvas 会检查您的数据集是否存在可能导致构建失败的问题。如果 SageMaker Canvas 发现任何问题，它会在您尝试**构建**模型之前在 “构建” 页面上向您发出警告。

您可以选择**验证数据**以查看数据集问题列表。然后，您可以使用 Can SageMaker vas [Data Wrangler 数据准备功能](canvas-data-prep.md)或您自己的工具在开始构建之前修复数据集。如果您不修复数据集的问题，那么您的构建就会失败。

如果您为了修复问题而对数据集进行了更改，则可以选择在尝试构建之前重新验证数据集。我们建议您在构建模型之前重新验证数据集。

下表显示了 SageMaker Canvas 在您的数据集中检查的问题以及如何解决这些问题。


| 问题 | 解决方案 | 
| --- | --- | 
|  数据的模型类型错误  |  尝试其他模型类型或使用不同的数据集。  | 
|  目标列中缺少值  |  替换缺失值，删除有缺失值的行，或使用不同的数据集。  | 
|  目标列中的唯一标签太多  |  验证您是否为目标列使用了正确的列，或者使用不同的数据集。  | 
|  目标列中的非数字值太多  |  选择不同的目标列，选择其他模型类型或使用不同的数据集。  | 
|  一个或多个列名包含双下划线  |  重命名这些列以删除所有双下划线，然后重试。  | 
|  数据集中没有一行是完整的  |  替换缺失值，或使用不同的数据集。  | 
|  对于数据中的行数来说，唯一标签太多  |  检查您使用的目标列是否正确，增加数据集中的行数，合并相似的标签或使用不同的数据集。  | 

# 随机抽样
<a name="canvas-random-sample"></a>

SageMaker Canvas 使用随机采样方法对您的数据集进行采样。随机抽样方法意味着每行被选取为样本的几率相等。您可以在预览中选择一列以获取随机样本的汇总统计数据，例如均值和模式。

默认情况下，对于行数超过 20,000 的数据集， SageMaker Canvas 使用数据集中随机抽样大小为 20,000 行。对于小于 2 万行的数据集，默认样本大小为数据集中的行数。您可以通过在 C SageMaker anvas 应用程序的 “**构建**” 选项卡中选择 “**随机样本**” 来增加或减少样本量。您可以使用滑块选择所需的样本量，然后选择**更新**来更改样本量。您可以为数据集选择的最大样本量为 4 万行，最小样本量为 500 行。如果您选择较大的样本量，则数据集预览和汇总统计数据可能需要一些时间才能重新加载。

**构建**页面显示数据集中 100 行数据的预览。如果样本量与数据集大小相同，那么预览将使用数据集的前 100 行数据。否则，预览将使用随机样本的前 100 行数据。

# 构建模型
<a name="canvas-build-model-how-to"></a>

以下几节介绍如何为每种主要类型的自定义模型构建模型。
+ 要构建数值预测、2 类别预测或 3\$1 类别预测模型，请参阅[构建自定义的数值或分类预测模型](#canvas-build-model-numeric-categorical)。
+ 要构建单标签图像预测模型，请参阅[构建自定义图像预测模型](#canvas-build-model-image)。
+ 要构建多元文本预测模型，请参阅[构建自定义文本预测模型](#canvas-build-model-text)。
+ 要构建时间序列预测模型，请参阅 [建立时间序列预测模型](#canvas-build-model-forecasting)。

**注意**  
如果您在构建后分析期间遇到错误，提示您增加 `ml.m5.2xlarge` 实例限额，请参阅[申请增加限额](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-requesting-quota-increases.html)。

## 构建自定义的数值或分类预测模型
<a name="canvas-build-model-numeric-categorical"></a>

数值和分类预测模型同时支持**快速构建**和**标准构建**。

要构建数值或分类预测模型，请按以下步骤操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择**新建模型**。

1. 在**创建新模型**对话框中，执行以下操作：

   1. 在**模型名称**字段中输入名称。

   1. 选择**预测分析**问题类型。

   1. 选择**创建**。

1. 对于**选择数据集**，从数据集列表中选择您的数据集。如果您尚未导入数据，请选择**导入**以指导您完成导入数据工作流。

1. 如果您已准备好开始构建模型，请选定**选择数据集**。

1. 在**构建**选项卡的**目标列**下拉列表中，为模型选择要预测的目标。

1. 对于**模型类型**，Canvas 会自动为您检测问题类型。如果您要更改类型或配置高级模型设置，请选择**配置模型**。

   当**配置模型**对话框打开时，执行以下操作：

   1. 对于**模型类型**，选择要构建的模型类型。

   1. 选择模型类型后，还有其他**高级设置**。有关各项高级设置的更多信息，请参阅 [高级模型构建配置](canvas-advanced-settings.md)。要配置高级设置，执行以下操作：

      1. （可选）在**目标指标**下拉菜单中，选择您希望 Canvas 在构建模型时优化的指标。如果您没有选择指标，Canvas 会默认为您选择一个指标。有关这些指标的说明，请参阅 [指标参考](canvas-metrics.md)。

      1. 对于**训练方法**，选择**自动**、**集合**或**超参数优化 (HPO) 模式**。

      1. 对于**算法**，选择要包含的用于构建候选模型的算法。

      1. 对于**数据拆分**，请按百分比指定如何在**训练集**和**验证集**之间如何拆分数据。训练集用于构建模型，而验证集用于测试候选模型的准确性。

      1. 对于**最大候选数和运行时**，执行以下操作：

         1. 设置**最大候选数值**或 Canvas 可以生成的候选模型的最大数量。请注意，**最大候选值**仅在 HPO 模式下可用。

         1. 为**最大作业运行时**设置小时和分钟值，或者 Canvas 可以用于构建模型的最长时间。超过最长时间后，Canvas 会停止构建，并选择最佳候选模型。

   1. 配置完高级设置后，选择**保存**。

1. 选择或取消选择数据中的列，以便在构建时包含或删除这些列。
**注意**  
如果您在构建模型后使用模型进行批量预测，Canvas 会将删除的列添加到您的预测结果中。但是，Canvas 不会将删除的列添加到时间序列模型的批量预测中。

1. （可选）使用 Canvas 提供的可视化和分析工具将数据可视化，并确定您可能希望在模型中包含哪些特征。有关更多信息，请参阅[探索和分析数据](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html)。

1. （可选）使用数据转换功能来清理、转换和准备用于构建模型的数据。有关更多信息，请参阅[使用高级转换准备数据](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html)。您可以通过选择**模型配方**打开**模型配方**侧面板来查看和移除转换。

1. （可选）有关其他功能，如预览模型的准确性、验证数据集以及更改 Canvas 从数据集中抽取的随机样本的大小，请参阅[预览模型](canvas-preview-model.md)。

1. 查看数据并对数据集进行任何更改后，选择**快速构建**或**标准构建**，开始构建模型。以下屏幕截图显示了**构建**页面以及**快速构建**和**标准构建**选项。  
![\[2 类别模型的构建页面，显示了快速构建和标准构建选项。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/build-page-tabular-quick-standard-options.png)

模型开始构建后，您可以离开此页面。当模型在**我的模型**页面上显示为**就绪**时，即可进行分析和预测。

## 构建自定义图像预测模型
<a name="canvas-build-model-image"></a>

单标签图像预测模型同时支持**快速构建**和**标准构建**。

要构建单标签图像预测模型，请按以下步骤操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择**新建模型**。

1. 在**创建新模型**对话框中，执行以下操作：

   1. 在**模型名称**字段中输入名称。

   1. 选择**图像分析**问题类型。

   1. 选择**创建**。

1. 对于**选择数据集**，从数据集列表中选择您的数据集。如果您尚未导入数据，请选择**导入**以指导您完成导入数据工作流。

1. 如果您已准备好开始构建模型，请选定**选择数据集**。

1. 在**构建**选项卡上，您可以看到数据集中图像的**标签分布**。**模型类型**设置为**单标签图像预测**。

1. 在此页面上，您可以预览图像并编辑数据集。如果您有任何未标注的图像，请选择**编辑数据集**和[向未标注的图像分配标签](canvas-edit-image.md#canvas-edit-image-assign)。您还可以在[编辑图像数据集](canvas-edit-image.md)时执行其他任务，例如重命名标签和向数据集添加图像。

1. 查看数据并对数据集进行任何更改后，选择**快速构建**或**标准构建**，开始构建模型。以下屏幕截图显示了准备构建的图像预测模型的**构建**页面。  
![\[单标签图像预测模型的构建页面。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/build-page-image-model.png)

模型开始构建后，您可以离开此页面。当模型在**我的模型**页面上显示为**就绪**时，即可进行分析和预测。

## 构建自定义文本预测模型
<a name="canvas-build-model-text"></a>

多元文本预测模型同时支持**快速构建**和**标准构建**。

要构建文本预测模型，请按以下步骤操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择**新建模型**。

1. 在**创建新模型**对话框中，执行以下操作：

   1. 在**模型名称**字段中输入名称。

   1. 选择**文本分析**问题类型。

   1. 选择**创建**。

1. 对于**选择数据集**，从数据集列表中选择您的数据集。如果您尚未导入数据，请选择**导入**以指导您完成导入数据工作流。

1. 如果您已准备好开始构建模型，请选定**选择数据集**。

1. 在**构建**选项卡的**目标列**下拉列表中，为模型选择要预测的目标。目标列必须具有二进制或分类数据类型，并且目标列中的每个唯一标签必须至少有 25 个条目（或数据行）。

1. 对于**模型类型**，确认模型类型自动设置为**多元文本预测**。

1. 对于训练列，选择文本数据的源列。这应该是包含要分析的文本的列。

1. 选择**快速构建**或**标准构建**，开始构建模型。以下屏幕截图显示了准备构建的文本预测模型的**构建**页面。  
![\[多元文本预测模型的构建页面。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/build-page-text-model.png)

模型开始构建后，您可以离开此页面。当模型在**我的模型**页面上显示为**就绪**时，即可进行分析和预测。

## 建立时间序列预测模型
<a name="canvas-build-model-forecasting"></a>

时间序列预测模型支持**快速构建**和**标准构建**。

要建立时间序列预测模型，请按照以下步骤操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择**新建模型**。

1. 在**创建新模型**对话框中，执行以下操作：

   1. 在**模型名称**字段中输入名称。

   1. 选择**时间序列预测**问题类型。

   1. 选择**创建**。

1. 对于**选择数据集**，从数据集列表中选择您的数据集。如果您尚未导入数据，请选择**导入**以指导您完成导入数据工作流。

1. 如果您已准备好开始构建模型，请选定**选择数据集**。

1. 在**构建**选项卡的**目标列**下拉列表中，为模型选择要预测的目标。

1. 在**模型类型**部分，选择**配置模型**。

1. 此时将打开**配置模型**框。在**时间序列配置**部分，填写以下字段：

   1. 在**项目 ID 列**中，选择数据集中唯一标识每一行的列。该列的数据类型应为 `Text`。

   1. （可选）对于**分组列**，选择一个或多个要用于对预测值进行分组的分类列（数据类型为 `Text`）。

   1. 对于**时间戳列**，选择带有时间戳（采用日期时间格式）的列。有关可接受的日期时间格式的更多信息，请参阅 [Amazon C SageMaker anvas 中的时间序列预测](canvas-time-series.md)。

   1. 在**预测长度**字段中，输入您想要预测值的时间段。Canvas 会自动检测数据中的时间单位。

   1. （可选）打开**使用假期时间表**开关，选择不同国家/区域的假期时间表，使您的假期数据预测更加准确。

1. 在**配置模型**框中，**高级**部分还有其他设置。有关各项高级设置的更多信息，请参阅 [高级模型构建配置](canvas-advanced-settings.md)。要配置**高级**设置，执行以下操作：

   1. 在**目标指标**下拉菜单中，选择您希望 Canvas 在构建模型时优化的指标。如果您没有选择指标，Canvas 会默认为您选择一个指标。有关这些指标的说明，请参阅 [指标参考](canvas-metrics.md)。

   1. 如果您运行的是标准构建，则您会看到**算法**部分。本部分用于选择您要用于构建模型的时间序列预测算法。您可以从可用算法中选择一个子集，如果您不确定要尝试哪些算法，也可以选择所有算法。

      当您运行标准构建时，Canvas 会构建一个集合模型，将所有算法结合在一起，以优化预测准确性。
**注意**  
如果您正在运行快速构建，Canvas 会使用一种基于树的学习算法来训练您的模型，您无需选择任何算法。

   1. 对于**预测分位数**，最多输入 5 个以逗号分隔的分位数，以指定预测的上下限。

   1. 配置完**高级**设置后，选择**保存**。

1. 选择或取消选择数据中的列，以便在构建时包含或删除这些列。
**注意**  
如果您在构建模型后使用模型进行批量预测，Canvas 会将删除的列添加到您的预测结果中。但是，Canvas 不会将删除的列添加到时间序列模型的批量预测中。

1. （可选）使用 Canvas 提供的可视化和分析工具将数据可视化，并确定您可能希望在模型中包含哪些特征。有关更多信息，请参阅[探索和分析数据](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html)。

1. （可选）使用数据转换功能来清理、转换和准备用于构建模型的数据。有关更多信息，请参阅[使用高级转换准备数据](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html)。您可以通过选择**模型配方**打开**模型配方**侧面板来查看和移除转换。

1. （可选）有关其他功能，如预览模型的准确性、验证数据集以及更改 Canvas 从数据集中抽取的随机样本的大小，请参阅[预览模型](canvas-preview-model.md)。

1. 查看数据并对数据集进行任何更改后，选择**快速构建**或**标准构建**，开始构建模型。

模型开始构建后，您可以离开此页面。当模型在**我的模型**页面上显示为**就绪**时，即可进行分析和预测。

# 高级模型构建配置
<a name="canvas-advanced-settings"></a>

Amazon SageMaker Canvas 支持各种高级设置，您可以在构建模型时配置这些设置。下一页列出了所有高级设置及其选项和配置的其他信息。

**注意**  
以下高级设置目前仅支持数字、分类和时间序列预测模型类型。

## 高级数字和分类预测模型设置
<a name="canvas-advanced-settings-predictive"></a>

Canvas 支持以下数字和分类预测模型类型的高级设置。

### 目标指标
<a name="canvas-advanced-settings-predictive-obj-metric"></a>

目标指标是您希望 Canvas 在构建模型时进行优化的指标。如果您没有选择指标，Canvas 会默认为您选择一个指标。有关这些指标的说明，请参阅 [指标参考](canvas-metrics.md)。

### 训练模型
<a name="canvas-advanced-settings-predictive-method"></a>

Canvas 可以根据数据集大小自动选择训练方法，您也可以手动选择。您可以选择以下训练方法：
+ **组合** — SageMaker AI 利用该 AutoGluon 库来训练多个基础模型。为了找到最适合您的数据集的组合，组合模式使用不同的模型和元参数设置运行 5-10 次试验。然后，使用堆叠组合方法，将这些模型组合在一起，创建最优预测模型。有关表格数据组合模式支持的算法列表，请参阅以下 [算法](#canvas-advanced-settings-predictive-algos) 部分。
+ **超参数优化 (HPO)** — SageMaker AI 在数据集上运行训练作业时使用贝叶斯优化或多保真度优化来调整超参数，从而找到模型的最佳版本。HPO 模式选择与您的数据集最相关的算法，并选择最佳的超参数范围来调整您的模型。为了调整模型，HPO 模式最多可运行 100 次试验（默认），以找到选定范围内的最佳超参数设置。如果您的数据集大小小于 100 MB， SageMaker AI 将使用贝叶斯优化。 SageMaker 如果您的数据集大于 100 MB，AI 会选择多保真度优化。

  有关表格数据 HPO 模式支持的算法列表，请参阅以下 [算法](#canvas-advanced-settings-predictive-algos) 部分。
+ **自动** — SageMaker AI 会根据您的数据集大小自动选择集合模式或 HPO 模式。如果您的数据集大于 100 MB， SageMaker AI 会选择 HPO 模式。否则，它会选择组合模式。

### 算法
<a name="canvas-advanced-settings-predictive-algos"></a>

在**组合**模式下，Canvas 支持以下机器学习算法：
+ [LightGBM](https://docs.aws.amazon.com/sagemaker/latest/dg/lightgbm.html) – 一种经过优化的框架，使用基于树的算法和梯度提升。此算法使用在广度而不是深度上增长的树，并且针对速度进行了高度优化。
+ [CatBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/catboost.html)— 一种使用基于树的算法和梯度提升的框架。针对处理分类变量进行了优化。
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— 一种使用基于树的算法的框架，其梯度提升是深度而不是广度增加的。
+ [随机森林](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html) – 一种基于树的算法，在数据的随机子样本上使用多个决策树并进行替换。树在每个级别上拆分到最佳节点。对每个树的决策一起求平均值，以防止过度拟合并改善预测。
+ [额外的树](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier) – 基于树的算法，在整个数据集上使用多个决策树。树在每个级别上随机拆分。对每个树的决策进行求平均值，以防止过度拟合并改善预测。与随机森林算法相比，额外的树会增加一定程度的随机化。
+ [线性模型](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model) – 一种使用线性方程对所观测数据中两个变量之间的关系进行建模的框架。
+ 神经网络 torch – 使用 [Pytorch](https://pytorch.org/) 实施的神经网络模型。
+ 神经网络 fast.ai – 使用 [fast.ai](https://www.fast.ai/) 实施的神经网络模型。

在 **HPO 模式**下，Canvas 支持以下机器学习算法：
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— 一种监督学习算法，它试图通过组合来自一组更简单和更弱的模型的估计值来准确预测目标变量。
+ 深度学习算法 – 多层感知器 (MLP) 和前馈人工神经网络。此算法可以处理线性不可分的数据。

### 数据拆分
<a name="canvas-advanced-settings-predictive-split"></a>

您可以选择指定如何在训练集（数据集中用于构建模型的部分）和验证集（数据集中用于验证模型准确性的部分）之间拆分数据集。例如，常见的拆分比例是 80% 的训练数据和 20% 的验证数据，其中 80% 的数据用于构建模型，而 20% 的数据用于衡量模型性能。如果您未指定自定义比例，Canvas 会自动拆分数据集。

### 最大候选模型数量
<a name="canvas-advanced-settings-predictive-candidates"></a>

**注意**  
此功能仅在 HPO 训练模式下可用。

您可以指定 Canvas 在构建模型时生成的最大候选模型数量。我们建议您使用默认的候选模型数量（100）来构建最准确的模型。您最多可指定 250 个。减少候选模型的数量可能会影响模型的准确性。

### 最长作业运行时
<a name="canvas-advanced-settings-predictive-runtime"></a>

您可以指定最大作业运行时，或者 Canvas 用于构建模型的最长时间。时间限制过后，Canvas 会停止构建，并选择最佳候选模型。

您可指定的最长时间为 720 小时。我们强烈建议您将最大作业运行时保持在 30 分钟以上，以确保 Canvas 有足够的时间生成候选模型并完成模型构建。

## 高级时间序列预测模型设置
<a name="canvas-advanced-settings-time-series"></a>

对于时间序列预测模型，Canvas 支持上一节列出的目标指标。

时间序列预测模型还支持以下高级设置：

### 算法选择
<a name="canvas-advanced-settings-time-series-algos"></a>

当您构建时间序列预测模型时，Canvas 会使用统计和机器学习算法的*集合*（或组合）来提供高度准确的时间序列预测。默认情况下，Canvas 会根据数据集中的时间序列选择所有可用算法的最佳组合。但是，您可以选择指定一种或多种算法用于预测模型。在这种情况下，Canvas 将仅使用您选择的算法来确定最佳混合效果。如果您不确定选择哪种算法来训练模型，我们建议您选择所有可用的算法。

**注意**  
算法选择仅支持标准构建。如果您未在高级设置中选择任何算法，则默认情况下， SageMaker AI 会运行快速构建，并使用基于树的学习算法训练候选模型。有关快速构建和标准构建之间的差别的更多信息，请参阅 [自定义模型的工作原理](canvas-build-model.md)。

Canvas 支持以下时间序列预测算法：
+ [自回归整合移动平均线 (ARIMA)](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average)：一种简单的随机时间序列模型，利用统计分析来解释数据并预测未来。这种算法适用于小于 100 个时间序列的简单数据集。
+ [卷积神经网络 - 分位数回归 (CNN-QR)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-algo-cnnqr.html)：一种专有的有监督学习算法，可从大量时间序列中训练一个全局模型，并使用分位数解码器进行预测。CNN-QR 最适合处理包含数百个时间序列的大型数据集。
+ [Deepar\$1](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-deeparplus.html) — 一种专有的监督学习算法，用于预测标量时间序列，使用循环神经网络 (RNNs) 在所有时间序列中联合训练单个模型。DeepAR\$1 最适合处理包含数百个特征时间序列的大型数据集。
+ [非参数时间序列 (NPTS)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-npts.html)：一种可扩展的概率基线预测器，可通过从过去的观测数据中采样，预测给定时间序列的未来值分布。NPTS 在处理稀疏或间歇性时间序列时非常有用（例如，在时间序列有许多 0 或低计数的情况下，预测对单个项目的需求）。
+ [指数平滑法 (ETS)](https://en.wikipedia.org/wiki/Exponential_smoothing)：一种预测方法，预测结果是过去观测数据的加权平均值，其中较早观测数据的权重呈指数级下降。此算法适用于时间序列少于 100 个的简单数据集和具有季节性规律的数据集。
+ [Prophet](https://facebook.github.io/prophet/)：一种加法回归模型，最适用于具有强烈季节效应和多季历史数据的时间序列。此算法适用于具有接近极限的非线性增长趋势的数据集。

### 预测分位数
<a name="canvas-advanced-settings-time-series-quantiles"></a>

对于时间序列预测， SageMaker AI 使用您的目标时间序列训练 6 个候选模型。然后， SageMaker AI 使用堆叠集成方法组合这些模型，为给定的目标指标创建最佳预测模型。每个预测模型都通过生成分位数在 P1 和 P99 之间的预测来生成概率预测。这些分位数用于解释预测的不确定性。默认情况下，为 0.1 (`p10`)、0.5 (`p50`) 和 0.9 (`p90`) 生成预测。您可以选择从 0.01 (`p1`) 到 0.99 (`p99`)，以 0.01 或更高的增量指定最多 5 个分位数。

# 编辑图像数据集
<a name="canvas-edit-image"></a>

在 Amazon SageMaker Canvas 中，您可以在构建模型之前编辑图像数据集并查看标签。您可能需要执行一些任务，例如为未标注的图像分配标签或向数据集中添加更多图像。这些任务都可以在 Canvas 应用程序中完成，为您提供了一个修改数据集和构建模型的地方。

**注意**  
在构建模型之前，必须为数据集中的所有图像分配标签。此外，每个标签必须至少有 25 张图像，且至少有两个标签。有关分配标签的更多信息，请参阅本页上名为**向未标注图像分配标签**的部分。如果您无法确定图像的标签，则应将其从数据集中删除。有关删除图像的更多信息，请参阅本页上的[在数据集中添加或删除图像](#canvas-edit-image-add-delete)部分。

要开始编辑图像数据集，您应该在构建单标签图像预测模型时进入**构建**选项卡。

这将打开一个新页面，其中显示数据集中的图像及其标签。此页面将图像数据集分为**总图像**、**已标注图像**和**未标注图像**。您也可以查看**数据集准备指南**，了解有关构建更准确的图像预测模型的最佳实践。

以下屏幕截图显示了用于编辑图像数据集的页面。

![\[Canvas 中图像数据集管理页面的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/dataset-management-page.png)


在此页面中，您可以执行以下操作。

## 查看每张图像的属性（标签、大小、尺寸）
<a name="canvas-edit-image-view"></a>

要查看单张图像，可以在搜索栏中按文件名进行搜索。然后，选择图像以打开完整视图。您可以查看图像属性并重新分配图像的标签。查看完图像后，选择**保存**。

## 添加、重命名或删除数据集中的标签
<a name="canvas-edit-image-labels"></a>

Canvas 在左侧导航窗格中列出了数据集的标签。通过在**添加标签**文本字段中输入标签，可以向数据集添加新标签。

要重命名或删除数据集中的标签，请选择标签旁边的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**重命名**或**删除**。如果重命名标签，则可以输入新的标签名称并选择**确认**。如果删除标签，则该标签将从数据集中所有带有该标签的图像中移除。任何带有该标签的映像都被取消标注。

## 向未标注的图像分配标签
<a name="canvas-edit-image-assign"></a>

要查看数据集中未标注的图像，请在左侧导航窗格中选择**未标注**。对于每张图像，将其选中并打开标题为**未标注**的标签，然后从下拉列表中选择要分配给该图像的标签。您也可以选择多张图像并执行此操作，然后为所有选定的图像分配您选择的标签。

## 为图像重新分配标签
<a name="canvas-edit-image-reassign"></a>

您可以通过选择图像（或一次选择多张图像）并打开标题为当前标签的下拉列表，为图像重新分配标签。选择所需的标签，然后使用新标签更新一张或多张图像。

## 按标签对图像进行排序
<a name="canvas-edit-image-sort"></a>

您可以通过在左侧导航窗格中选择标签来查看给定标签的所有图像。

## 在数据集中添加或删除图像
<a name="canvas-edit-image-add-delete"></a>

您可以通过在顶部导航窗格中选择**添加图像**来向数据集添加更多图像。系统将引导您完成导入更多图像的工作流。您导入的图像将添加到现有数据集中。

您可以从数据集中删除图像，方法是选择图像，然后在顶部导航窗格中选择**删除**。

**注意**  
对数据集进行任何更改后，请选择**保存数据集**以确保所做的更改不会丢失。

# 数据探索和分析
<a name="canvas-explore-data"></a>

**注意**  
您只能对基于表格数据集构建的模型使用 SageMaker Canvas 可视化和分析。多元文本预测模型也排除在外。

在 Amazon SageMaker Canvas 中，您可以使用可视化和分析来探索数据集中的变量，并创建应用程序内的可视化和分析。在构建模型之前，您可以利用这些探索来发现变量之间的关系。

有关 Canvas 中可视化技术的更多信息，请参阅[使用可视化技术探索数据](canvas-explore-data-visualization.md)。

有关 Canvas 中分析功能的更多信息，请参阅[使用分析功能来探索数据](canvas-explore-data-analytics.md)。

# 使用可视化技术探索数据
<a name="canvas-explore-data-visualization"></a>

**注意**  
只能对基于表格数据集构建的模型使用 SageMaker Canvas 可视化。多元文本预测模型也排除在外。

借助 Amazon SageMaker Canvas，您可以探索和可视化数据，以便在构建机器学习模型之前获得对数据的高级见解。您可以使用散点图、条形图和方框图进行可视化，这有助于您了解数据，并发现可能影响模型准确性的特征之间的关系。

在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择**数据可视化工具**开始创建您的可视化效果。

您可以更改可视化样本大小，以调整从数据集中抽取的随机样本的大小。样本量过大可能会影响数据可视化的性能，因此我们建议您选择适当的样本量。要更改样本量，请按照下列过程操作。

1. 选择**可视化样本**。

1. 使用滑块选择所需的样本量。

1. 选择**更新**以确认对样本量的更改。

**注意**  
某些可视化技术需要特定数据类型的列。例如，对于散点图的 x 轴和 y 轴，只能使用数值列。

## 散点图
<a name="canvas-explore-data-scatterplot"></a>

要使用您的数据集创建散点图，请在**可视化**面板中选择**散点图**。从**列**部分中选择要在 x 轴和 y 轴上绘制的特征。您可以将列拖放到坐标轴上，或者拖放坐标轴后，可以从支持的列列表中选择一列。

您可以使用**着色依据**根据第三个特征为绘图上的数据点着色。您也可以使用**分组依据**根据第四个特征将数据分组到单独的绘图中。

下图显示了使用**着色依据**和**分组依据**的散点图。在此示例中，每个数据点都按 `MaritalStatus` 特征着色，按 `Department` 特征分组会生成每个部门的数据点的散点图。

![\[Canvas 应用程序的数据可视化工具视图中散点图的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-eda-scatter-plot.png)


## 条形图
<a name="canvas-explore-data-barchart"></a>

要使用您的数据集创建条形图，请在**可视化**面板中选择**条形图**。从**列**部分中选择要在 x 轴和 y 轴上绘制的特征。您可以将列拖放到坐标轴上，或者拖放坐标轴后，可以从支持的列列表中选择一列。

您可以使用**分组依据**按第三个特征对条形图进行分组。您可以使用**堆叠依据**，根据第四个特征的唯一值对每个条形图进行垂直阴影处理。

下图显示了使用**分组依据**和**堆叠依据**的条形图。在此示例中，条形图按 `MaritalStatus` 特征分组，并按 `JobLevel` 特征堆叠。对于 x 轴上的每个 `JobRole`，`MaritalStatus` 特征中的独特类别都有一个单独的条形图，每个条形图都按 `JobLevel` 特征垂直堆叠。

![\[Canvas 应用程序的数据可视化工具视图中条形图的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-eda-bar-chart.png)


## 方框图
<a name="canvas-explore-data-boxplot"></a>

要使用您的数据集创建方框图，请在**可视化**面板中选择**方框图**。从**列**部分中选择要在 x 轴和 y 轴上绘制的特征。您可以将列拖放到坐标轴上，或者拖放坐标轴后，可以从支持的列列表中选择一列。

您可以使用**分组依据**按第三个特征对方框图进行分组。

下图显示了使用**分组依据**的方框图。在此示例中，x 轴和 y 轴分别显示 `JobLevel` 和 `JobSatisfaction`，彩色方框图按 `Department` 特征分组。

![\[Canvas 应用程序的数据可视化工具视图中方框图的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-eda-box-plot.png)


# 使用分析功能来探索数据
<a name="canvas-explore-data-analytics"></a>

**注意**  
您只能对基于表格数据集构建的模型使用 SageMaker Canvas 分析。多元文本预测模型也排除在外。

借助 Amazon SageMaker Canvas 中的分析，您可以在构建模型之前探索数据集并深入了解所有变量。您可以使用相关矩阵确定数据集中特征之间的关系。您可以使用此技术将数据集汇总到一个矩阵中，该矩阵显示两个或多个值之间的相关性。这有助于您识别和可视化给定数据集中的模式，以进行高级数据分析。

该矩阵显示每个特征之间的正相关、负相关或中性相关。在构建模型时，您可能希望包含彼此高度相关的特征。几乎没有相关性的特征可能与您的模型无关，您可以在构建模型时删除这些特征。

要开始在 C SageMaker anvas 中使用相关矩阵，请参阅以下部分。

## 创建相关矩阵
<a name="canvas-explore-data-analytics-correlation-matrix"></a>

准备在 C SageMaker anvas 应用程序的 “构建” 选项卡中**构建**模型时，可以创建关联矩阵。

有关如何开始创建模型的说明，请参阅[构建模型](canvas-build-model-how-to.md)。

在 C SageMaker anvas 应用程序中开始准备模型后，请执行以下操作：

1. 在**构建**选项卡中，选择**数据可视化工具**。

1. 选择**分析**。

1. 选择**相关矩阵**。

您应该会看到一个类似于以下屏幕截图的可视化效果，该屏幕截图显示了最多 15 列的数据集，这些列被组织成一个相关矩阵。

![\[Canvas 应用程序中相关矩阵的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-correlation-matrix-2.png)


创建相关矩阵后，您可以通过以下操作对其进行自定义：

### 1. 选择列
<a name="canvas-explore-data-analytics-correlation-matrix-columns"></a>

对于**列**，您可以选择要包含在矩阵中的列。您最多可以比较数据集中的 15 列数据。

**注意**  
您可以为相关矩阵使用数值、分类或二进制列类型。相关矩阵不支持日期时间或文本数据列类型。

要在相关矩阵中添加或删除列，请从**列**面板中选择和取消选择列。您还可以将面板上的列直接拖放到矩阵上。如果您的数据集包含很多列，则可以在**搜索列**栏中搜索所需的列。

要按数据类型筛选列，请选择下拉列表并选择**全部**、**数值**或**分类**。选择**全部**将显示数据集中的所有列，而**数值**和**分类**筛选条件仅显示数据集中的数值列或分类列。请注意，二进制列类型包含在数值或分类筛选条件中。

为了获得最佳的数据洞察力，请在相关性矩阵中包含目标列。当您将目标列包含在相关矩阵中时，它将显示为矩阵上带有目标符号的最后一个特征。

### 2. 选择相关类型
<a name="canvas-explore-data-analytics-correlation-matrix-cor-type"></a>

SageMaker Canvas 支持不同的*关联类型*或计算列间相关性的方法。

要更改相关类型，请使用上一节中提到的**列**筛选条件来筛选所需的列类型和列。您应该可以在侧面板中看到**相关类型**。对于数值比较，您可以选择 **Pearson** 或 **Spearman**。对于分类比较，相关类型设置为 **MI**。对于分类比较和混合比较，相关类型设置为 **Spearman & MI**。

对于仅比较数值列的矩阵，相关类型为 Pearson 或 Spearman。Pearson 度量用于评估两个连续变量之间的线性关系。Spearman 度量用于评估两个变量之间的单调关系。对于 Pearson 和 Spearman 来说，相关度的范围从 -1 到 1，两端表示完全相关（1:1 的直接关系），0 表示不相关。如果您的数据具有更多的线性关系（如[散点图可视化](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html#canvas-explore-data-scatterplot)所示），那么您可能需要选择 Pearson。如果您的数据不是线性的，或者混合包含线性关系和单调关系，那么您可能需要选择 Spearman。

对于仅比较分类列的矩阵，相关类型设置为互信息分类 (MI)。MI 值是衡量两个随机变量之间相互依赖性的指标。MI 测量值的范围为 0 到 1，其中 0 表示无相关性，1 表示完全相关。

对于数值列和分类列混合比较的矩阵，相关类型 **Spearman & MI** 是 Spearman 和 MI 相关类型的组合。对于两个数值列之间的相关性，矩阵显示 Spearman 值。对于数值列和分类列或两个分类列之间的相关性，矩阵显示 MI 值。

最后，请记住，相关性并不一定表示因果关系。强相关值只表明两个变量之间存在关系，但变量之间可能没有因果关系。请仔细检查感兴趣的列，以免在构建模型时出现偏差。

### 3. 筛选相关性
<a name="canvas-explore-data-analytics-correlation-matrix-filter"></a>

在侧面板中，您可以使用**筛选相关性**功能筛选要包含在矩阵中的相关值范围。例如，如果要筛选仅具有正相关性或中性相关性的特征，可以将**最小值**设为 0，将**最大值**设为 1（有效值为 -1 至 1）。

对于 Spearman 和 Pearson 比较，可以将**筛选相关性**范围设置在 -1 到 1 之间，0 表示没有相关性。-1 和 1 分别表示变量之间有很强的负相关性或正相关性。

对于 MI 比较，相关性范围仅从 0 到 1，0 表示没有相关性，1 表示变量之间有很强的相关性，无论是正相关性还是负相关性。

每个特征都与自身具有完美的相关性 (1)。因此，您可能会注意到相关矩阵的顶行始终为 1。如果要排除这些值，可以使用筛选器将**最大值**设置为小于 1。

请记住，如果您的矩阵比较的是数值列和分类列的组合，并使用 **Spearman & MI** 相关类型，那么*分类 x 数值*和*分类 x 分类*相关性（使用 MI 测量）的范围是 0 到 1，而*数值 x 数值*相关性（使用 Spearman 测量）的范围是 -1 到 1。仔细查看您感兴趣的相关性，确保您知道用于计算每个值的相关类型。

### 4. 选择可视化方法
<a name="canvas-explore-data-analytics-correlation-matrix-viz-method"></a>

在侧面板中，您可以使用**可视化依据**来更改矩阵的可视化方法。选择**数值**可视化方法可显示相关性（Pearson、Spearman 或 MI）值，或选择**大小**可视化方法则可通过不同大小和颜色的点显示相关性。如果选择**大小**，则可以将鼠标悬停在矩阵上的特定点上以查看实际的相关值。

### 5. 选择调色板
<a name="canvas-explore-data-analytics-correlation-matrix-color"></a>

在侧面板中，您可以使用**颜色选择**来更改矩阵中负相关与正相关比例所使用的调色板。选择一个备用调色板来更改矩阵中使用的颜色。

# 为模型构建准备数据
<a name="canvas-prepare-data"></a>

**注意**  
现在，你可以使用 Data Wrangler 在 SageMaker Canvas 中进行高级数据准备，它为你提供了自然语言界面和 300 多种内置转换。有关更多信息，请参阅 [数据准备](canvas-data-prep.md)。

在构建模型之前，您的机器学习数据集可能需要准备数据。由于各种问题（可能包括缺失值或异常值），您可能需要清理数据，并执行特征工程以提高模型的准确性。Amazon SageMaker Canvas 提供机器学习数据转换，您可以使用它来清理、转换和准备数据以进行模型构建。您无需任何代码即可在数据集中使用这些变换。 SageMaker Canvas 将你使用的变换添加到**模型配方**中，该配方记录了在构建模型之前对数据所做的准备工作。您使用的任何数据转换都只会修改用于构建模型的输入数据，而不会修改原始数据来源。

数据集的预览会显示数据集的前 100 行数据。如果数据集的行数超过 2 万行，Canvas 会随机抽取 2 万行样本，并预览该样本中的前 100 行数据。您只能从预览行中搜索和指定值，而筛选器功能只能筛选预览行，而不能筛选整个数据集。

Can SageMaker vas 中提供了以下变换，供您为构建数据做好准备。

**注意**  
只能对基于表格数据集构建的模型使用高级转换。多元文本预测模型也排除在外。

## 删除列
<a name="canvas-prepare-data-drop"></a>

您可以将某列拖放到 C SageMaker anvas 应用程序的 “构建” 选项卡中，将其从模型**构建**中排除。取消选择要删除的列，在构建模型时该列将不包括在内。

**注意**  
如果您删除列，然后使用模型进行[批量预测](canvas-make-predictions.md)， SageMaker Canvas 会将删除的列重新添加到可供您下载的输出数据集中。但是，对于时间序列模型， SageMaker Canvas 不会重新添加已删除的列。

## 筛选行
<a name="canvas-prepare-data-filter"></a>

筛选功能可根据您指定的条件筛选预览行（数据集的前 100 行）。筛选行会创建数据的临时预览，不会影响模型构建。您可以通过筛选来预览缺失值、包含异常值或符合您所选列中自定义条件的行。

### 按缺失值筛选行
<a name="canvas-prepare-data-filter-missing"></a>

在机器学习数据集中，缺失值是一种常见情况。如果某些列中的行值为 null 值或为空值，则可能需要筛选和预览这些行。

要从预览数据中筛选缺失值，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**按行筛选**” (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/filter-icon.png))。

1. 选择要检查缺失值的**列**。

1. 在**操作**中，选择**是缺失值**。

SageMaker 画布筛选所选**列**中包含缺失值的行，并提供筛选行的预览。

![\[C SageMaker anvas 应用程序中按缺失值进行过滤操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-filter-missing.png)


### 按异常值筛选行
<a name="canvas-prepare-data-filter-outliers"></a>

异常值或数据分布和范围中的稀有值可能会对模型精度产生负面影响，并导致更长的构建时间。 SageMaker Canvas 允许您检测和筛选数字列中包含异常值的行。您可以选择使用标准差或自定义范围来定义异常值。

要筛选数据中的异常值，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**按行筛选**” (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/filter-icon.png))。

1. 选择要检查异常值的**列**。

1. 在**操作**中，选择**是异常值**。

1. 将**异常值范围**设置为**标准差**或**自定义范围**。

1. 如果选择**标准差**，请指定 1–3 之间的 **SD**（标准差）值。如果选择**自定义范围**，请选择**百分位数**或**数字**，然后指定**最小值**和**最大值**。

**标准差**选项使用平均值和标准差来检测和筛选数值列中的异常值。您可以指定一个值必须与平均值相差多少个标准差才能被视为异常值。例如，如果您指定 **SD** 为 `3`，那么一个值必须偏离平均值 3 个标准差以上才会被视为异常值。

**自定义范围**选项使用最小值和最大值来检测和筛选数值列中的异常值。如果您知道划分异常值的阈值，请使用此方法。您可以将范围的**类型**设置为**百分位数**或**数字**。如果选择**百分位数**，则**最小值**和**最大值**应是您想要允许的百分位数范围 (0-100) 的最小值和最大值。如果选择**数字**，则**最小值**和**最大值**应为要在数据中筛选的最小和最大数值。

![\[C SageMaker anvas 应用程序中按异常值过滤操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-filter-outlier.png)


### 按自定义值筛选行
<a name="canvas-prepare-data-filter-custom"></a>

您可以筛选具有满足自定义条件的值的行。例如，您可能希望在删除价格值大于 100 的行之前预览这些行。使用此功能，您可以筛选超过您设置的阈值的行并预览已筛选的数据。

要使用自定义筛选功能，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**按行筛选**” (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/filter-icon.png))。

1. 选择要检查的**列**。

1. 选择要使用的**操作**类型，然后为所选条件指定值。

对于**操作**，您可以选择以下选项之一。请注意，可用的操作取决于您选择的列的数据类型。例如，您无法为包含文本值的列创建 `is greater than` 操作。


| 操作 | 支持的数据类型 | 支持的特征类型 | 功能 | 
| --- | --- | --- | --- | 
|  等于  |  数值、文本  | 二进制、分类 |  筛选**列**中值等于指定值的行。  | 
|  不等于  |  数值、文本  | 二进制、分类 |  筛选**列**中值不等于指定值的行。  | 
|  小于  |  数值  | 不适用 |  筛选**列**中值小于指定值的行。  | 
|  小于或等于  |  数值  | 不适用 |  筛选**列**中值小于或等于指定值的行。  | 
|  大于  |  数值  | 不适用 |  筛选**列**中值大于指定值的行。  | 
|  大于或等于  |  数值  | 不适用 |  筛选**列**中值大于或等于指定值的行。  | 
|  介于  |  数值  | 不适用 |  筛选**列**中值介于或等于指定的两个值的行。  | 
|  包含  |  文本  | 分类 |  筛选**列**中值包含指定值的行。  | 
|  开始于  |  文本  | 分类 |  筛选**列**中值开始于指定值的行。  | 
|  结束于  |  分类  | 分类 |  筛选**列**中值结束于指定值的行。  | 

设置筛选操作后， SageMaker Canvas 会更新数据集的预览以显示筛选后的数据。

![\[C SageMaker anvas 应用程序中按自定义值筛选操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-filter-custom.png)


## 函数和运算符
<a name="canvas-prepare-data-custom-formula"></a>

您可以使用数学函数和运算符来探索和分配数据。您可以使用 SageMaker Canvas 支持的函数，也可以使用现有数据创建自己的公式，然后使用公式的结果创建新列。例如，您可以将两列的相应值相加，并将结果保存到新列中。

您可以嵌套语句来创建更复杂的函数。以下是您可能使用的嵌套函数的一些示例。
+ 要计算 BMI，可以使用函数 `weight / (height ^ 2)`。
+ 要对年龄进行分类，可以使用函数 `Case(age < 18, 'child', age < 65, 'adult', 'senior')`。

在构建模型之前，可以在数据准备阶段指定函数。要使用函数，请执行以下操作。
+ 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**查看全部**”，然后选择 “**自定义公式**” 以打开 “**自定义公式**” 面板。
+ 在**自定义公式**面板中，您可以选择要添加到**模型配方**中的**公式**。每个公式都应用于您指定的列中的所有值。对于接受两列或更多列作为参数的公式，请使用数据类型匹配的列；否则会出错或在新列中出现 `null` 值。
+ 指定**公式**后，在 “**新列名” 字段中添加列名**。 SageMaker Canvas 将此名称用于创建的新列。
+ （可选）选择**预览**以预览您的转换结果。
+ 要将函数添加到**模型配方**中，请选择**添加**。

SageMaker Canvas 使用您在新列名中指定的名称将函数的结果保存到**新列**中。您可以从**模型配方**面板中查看或删除函数。

SageMaker Canvas 支持以下函数运算符。您可以使用文本格式或内联格式来指定函数。


| 运算符 | 说明 | 支持的数据类型 | 文本格式 | 内联格式 | 
| --- | --- | --- | --- | --- | 
|  添加  |  返回各值之和  |  数值  | Add(sales1, sales2) | sales1 \$1 sales2 | 
|  Subtract  |  返回值之间的差值  |  数值  | Subtract(sales1, sales2) | sales1 ‐ sales2 | 
|  Multiply  |  返回值的乘积  |  数值  | Multiply(sales1, sales2) | sales1 \$1 sales2 | 
|  Divide  |  返回值的商  |  数值  | Divide(sales1, sales2) | sales1 / sales2 | 
|  Mod  |  返回取模运算符的结果（两个值相除后的余数）  |  数值  | Mod(sales1, sales2) | sales1 % sales2 | 
|  Abs  | 返回值的绝对值 |  数值  | Abs(sales1) | 不适用 | 
|  Negate  | 返回值的负值 |  数值  | Negate(c1) | ‐c1 | 
|  Exp  |  返回 e（欧拉数）的幂值  |  数值  | Exp(sales1) | 不适用 | 
|  Log  |  返回值的对数（以 10 为底）  |  数值  | Log(sales1) | 不适用 | 
|  Ln  |  返回值的自然对数（以 e 为底）  |  数值  | Ln(sales1) | 不适用 | 
|  Pow  |  返回值的幂级数  |  数值  | Pow(sales1, 2) | sales1 ^ 2 | 
|  If  |  根据指定的条件返回 true 或 false 标签  |  布尔值、数字、文本  | If(sales1>7000, 'truelabel, 'falselabel') | 不适用 | 
|  Or  |  返回一个布尔值，表示指定值或条件之一是否为真  |  布尔值  | Or(fullprice, discount) | fullprice \$1\$1 discount | 
|  And  |  返回一个布尔值，表示两个指定的值或条件是否为真  |  布尔值  | And(sales1,sales2) | sales1 && sales2 | 
|  Not  |  返回与指定值或条件相反的布尔值  |  布尔值  | Not(sales1) | \$1sales1 | 
|  Case  |  根据条件语句返回布尔值（如果 cond1 为真，则返回 c1，如果 cond2 为真，则返回 c2，否则返回 c3）  |  布尔值、数字、文本  | Case(cond1, c1, cond2, c2, c3) | 不适用 | 
|  Equal  |  返回一个布尔值，表示两个值是否相等  |  布尔值、数字、文本  | 不适用 | c1 = c2c1 == c2 | 
|  Not equal  |  返回一个布尔值，表示两个值是否不相等  |  布尔值、数字、文本  | 不适用 | c1 \$1= c2 | 
|  Less than  |  返回一个布尔值，表示 c1 是否小于 c2  |  布尔值、数字、文本  | 不适用 | c1 < c2 | 
|  Greater than  |  返回一个布尔值，表示 c1 是否大于 c2  |  布尔值、数字、文本  | 不适用 | c1 > c2 | 
|  Less than or equal  |  返回一个布尔值，表示 c1 是否小于或等于 c2  |  布尔值、数字、文本  | 不适用 | c1 <= c2 | 
|  Greater than or equal  |  返回一个布尔值，表示 c1 是否大于或等于 c2  |  布尔值、数字、文本  | 不适用 | c1 >= c2 | 

SageMaker Canvas 还支持聚合运算符，它可以执行诸如计算所有值的总和或查找列中的最小值之类的操作。可以在函数中将聚合运算符与标准运算符结合使用。例如，要计算值与均值的差，可以使用函数`Abs(height – avg(height))`。 SageMaker Canvas 支持以下聚合运算符。


| 聚合运算符 | 说明 | 格式 | 示例 | 
| --- | --- | --- | --- | 
|  sum  |  返回列中所有值的总和  | sum | sum(c1) | 
|  minimum  |  返回列的最小值  | min | min(c2) | 
|  maximum  |  返回列的最大值  | max | max(c3) | 
|  average  |  返回列的平均值  | avg | avg(c4) | 
|  std  | 返回列的样本标准差 | std | std(c1) | 
|  stddev  | 返回列中值的标准差 | stddev | stddev(c1) | 
|  variance  | 返回列中值的无偏方差 | variance | variance(c1) | 
|  approx\$1count\$1distinct  | 返回列中不同项的大致数量 | approx\$1count\$1distinct | approx\$1count\$1distinct(c1) | 
|  count  | 返回列中的项数 | count | count(c1) | 
|  first  |  返回列的第一个值  | 第一个 | first(c1) | 
|  last  |  返回列的最后一个值  | last | last(c1) | 
|  stddev\$1pop  | 返回列的总体标准差 | stddev\$1pop | stddev\$1pop(c1) | 
|  variance\$1pop  |  返回列中值的总体方差  | variance\$1pop | variance\$1pop(c1) | 

## 管理行
<a name="canvas-prepare-data-manage"></a>

使用“管理行”转换，可以对数据集中的数据行进行排序、随机排列以及删除数据行。

### 排序行
<a name="canvas-prepare-data-manage-sort"></a>

要按给定列对数据集中的行进行排序，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理行**”，然后选择 “**对行进行排序**”。

1. 在**排序列**中，选择要作为排序依据的列。

1. 在**排序顺序**中，选择**升序**或**降序**。

1. 选择**添加**将该转换添加到**模型配方**中。

### 随机排列行
<a name="canvas-prepare-data-manage-shuffle"></a>

要随机排列数据集中的行，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理行**”，然后选择 “**随机排列**”。

1. 选择**添加**将该转换添加到**模型配方**中。

### 删除重复的行
<a name="canvas-prepare-data-manage-drop-duplicate"></a>

要删除数据集中的重复行，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理行**”，然后选择 “**删除重复行**”。

1. 选择**添加**将该转换添加到**模型配方**中。

### 按缺失值删除行
<a name="canvas-prepare-data-remove-missing"></a>

缺失值在机器学习数据集中很常见，可能会影响模型的准确性。如果要删除某些列中为 null 值或空值的行，请使用此转换。

要删除指定列中包含缺失值的行，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理行**”。

1. 选择**按缺失值删除行**。

1. 选择**添加**将该转换添加到**模型配方**中。

SageMaker Canvas 会删除所选**列**中包含缺失值的行。从数据集中移除行后， SageMaker Canvas 会在**模型配方**部分中添加变换。如果从**模型配方**部分中删除转换，则这些行将返回到您的数据集。

![\[C SageMaker anvas 应用程序中按缺失值删除行操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-remove-missing.png)


### 按异常值删除行
<a name="canvas-prepare-data-remove-outliers"></a>

异常值或数据分布和范围中的罕见值会对模型的准确性产生负面影响，并导致构建时间延长。使用 SageMaker Canvas，您可以检测和删除数字列中包含异常值的行。您可以选择使用标准差或自定义范围来定义异常值。

要从数据中删除异常值，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理行**”。

1. 选择**按异常值删除行**。

1. 选择要检查异常值的**列**。

1. 将**运算符**设置为**标准差**、**自定义数值范围**或**自定义分位数范围**。

1. 如果选择**标准差**，请指定 1–3 之间的**标准差**值。如果选择**自定义数值范围**或**自定义分位数范围**，请指定**最小值**和**最大值**（数值范围为数字，分位数范围为 0-100% 之间的百分位数）。

1. 选择**添加**将该转换添加到**模型配方**中。

**标准差**选项使用平均值和标准差来检测和删除数值列中的异常值。您可以指定一个值必须与平均值相差多少个标准差才能被视为异常值。例如，如果您指定**标准差**为 `3`，那么一个值必须偏离平均值 3 个标准差以上才会被视为异常值。

**自定义数值范围**和**自定义分位数范围**选项使用最小值和最大值检测和删除数值列中的异常值。如果您知道划分异常值的阈值，请使用此方法。如果选择数值范围，则**最小值**和**最大值**应是数据中允许的最小和最大数值。如果选择分位数范围，则**最小值**和**最大值**应该是您希望允许的百分位数范围 (0–100) 的最小值和最大值。

从数据集中移除行后， SageMaker Canvas 会在**模型配方**部分中添加变换。如果从**模型配方**部分中删除转换，则这些行将返回到您的数据集。

![\[C SageMaker anvas 应用程序中按异常值删除行操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-remove-outlier.png)


### 按自定义值删除行
<a name="canvas-prepare-data-remove-custom"></a>

您可以删除值符合自定义条件的行。例如，在构建模型时，您可能希望排除所有价格值大于 100 的行。通过这种转换，您可以创建一条规则，删除所有超过您设置的阈值的行。

要使用自定义删除转换，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理行**”。

1. 选择**按公式删除行**。

1. 选择要检查的**列**。

1. 选择要使用的**操作**类型，然后为所选条件指定值。

1. 选择**添加**将该转换添加到**模型配方**中。

对于**操作**，您可以选择以下选项之一。请注意，可用的操作取决于您选择的列的数据类型。例如，您无法为包含文本值的列创建 `is greater than` 操作。


| 操作 | 支持的数据类型 | 支持的特征类型 | 功能 | 
| --- | --- | --- | --- | 
|  等于  |  数值、文本  |  二进制、分类  |  删除**列**中值等于指定值的行。  | 
|  不等于  |  数值、文本  |  二进制、分类  |  删除**列**中值不等于指定值的行。  | 
|  小于  |  数值  | 不适用 |  删除**列**中值小于指定值的行。  | 
|  小于或等于  |  数值  | 不适用 |  删除**列**中值小于或等于指定值的行。  | 
|  大于  |  数值  | 不适用 |  删除**列**中值大于指定值的行。  | 
|  大于或等于  | 数值 | 不适用 |  删除**列**中值大于或等于指定值的行。  | 
|  介于  | 数值 | 不适用 |  删除**列**中值介于或等于指定的两个值的行。  | 
|  包含  |  文本  | 分类 |  删除**列**中值包含指定值的行。  | 
|  开始于  |  文本  | 分类 |  删除**列**中值开始于指定值的行。  | 
|  结尾为  |  文本  | 分类 |  删除**列**中值结束于指定值的行。  | 

从数据集中移除行后， SageMaker Canvas 会在**模型配方**部分中添加变换。如果从**模型配方**部分中删除转换，则这些行将返回到您的数据集。

![\[C SageMaker anvas 应用程序中按自定义值删除行操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-remove-custom.png)


## 重命名列
<a name="canvas-prepare-data-rename"></a>

通过重命名列转换，您可以重命名数据中的列。当您重命名列时， SageMaker Canvas 会更改模型输入中的列名。

您可以通过双击 C SageMaker anvas 应用程序的 “**构建**” 选项卡中的列名称并输入新名称来重命名数据集中的列。按 **Enter** 键可提交更改，单击输入框外的任意位置可取消更改。您还可以单击列表视图中行末尾或网格视图中标题单元末尾的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**重命名**来重命名列。

列名不能超过 32 个字符，也不能有双下划线 (\$1\$1)，而且不能将一列重命名为与另一列相同的名称。您也不能重命名已删除的列。

以下屏幕截图显示了如何通过双击列名来重命名列。

![\[在 C SageMaker anvas 应用程序中使用双击方法重命名列的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-rename-column.png)


当您重命名列时， SageMaker Canvas 会在**模型配方**部分中添加变换。如果从**模型配方**部分中删除转换，列就会恢复到原来的名称。

## 管理列
<a name="canvas-prepare-data-manage-cols"></a>

通过以下变换，您可以更改列的数据类型并替换特定列的缺失值或异常值。 SageMaker Canvas 在构建模型时使用更新的数据类型或值，但不会更改您的原始数据集。请注意，如果您使用[删除列](#canvas-prepare-data-drop)转换从数据集中删除了一列，则无法替换该列中的值。

### 替换缺失值
<a name="canvas-prepare-data-replace-missing"></a>

缺失值在机器学习数据集中很常见，可能会影响模型的准确性。您可以选择删除具有缺失值的行，但如果您选择替换缺失值，您的模型会更准确。使用此转换，可以用列中数据的平均值或中位数替换数值列中的缺失值，也可以指定一个自定义值来替换缺失值。对于非数值列，可以用列的模式（最常用值）或自定义值替换缺失值。

如果要替换某些列中的 null 值或空值，请使用此转换。要替换指定列中的缺失值，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理列**”。

1. 选择**替换缺失值**。

1. 选择要替换其中缺失值的**列**。

1. 将**模式**设置为**手动**，将缺失值替换为您指定的值。在 “**自动”（默认）**设置中， SageMaker Canvas 会将缺失值替换为最适合您的数据的估算值。除非指定**手动**模式，否则每次构建模型时都会自动执行这种估算方法。

1. 设置**替换为**值：
   + 如果您的列是数值列，请选择**平均值**、**中位数**或**自定义**。**平均值**用该列的平均值替换缺失值，而**中位数**则用该列的中位数替换缺失值。如果选择**自定义**，则必须指定要用于替换缺失值的自定义值。
   + 如果您的列不是数值列，请选择**模式**或**自定义**。**模式**将缺失值替换为列的模式或最常用值。对于**自定义**，指定要用来替换缺失值的自定义值。

1. 选择**添加**将该转换添加到**模型配方**中。

替换数据集中的缺失值后， SageMaker Canvas 会在**模型配方**部分中添加变换。如果从**模型配方**部分中删除转换，则缺失值将返回到数据集中。

![\[C SageMaker anvas 应用程序中替换缺失值操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-replace-missing.png)


### 替换异常值
<a name="canvas-prepare-data-replace-outliers"></a>

异常值或数据分布和范围中的稀有值可能会对模型精度产生负面影响，并导致更长的构建时间。 SageMaker Canvas 使您能够检测数字列中的异常值，并将异常值替换为位于数据中可接受范围内的值。您可以选择使用标准差或自定义范围来定义异常值，也可以将异常值替换为可接受范围内的最小值和最大值。

要替换数据中的异常值，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**管理列**”。

1. 选择**替换异常值**。

1. 选择要替换其中异常值的**列**。

1. 对于**定义异常值**，选择**标准差**、**自定义数值范围**或**自定义分位数范围**。

1. 如果选择**标准差**，请指定 1–3 之间的**标准差**值。如果选择**自定义数值范围**或**自定义分位数范围**，请指定**最小值**和**最大值**（数值范围为数字，分位数范围为 0-100% 之间的百分位数）。

1. 对于**替换为**，选择**最小/最大范围**。

1. 选择**添加**将该转换添加到**模型配方**中。

**标准差**选项使用平均值和标准差来检测数值列中的异常值。您可以指定一个值必须与平均值相差多少个标准差才能被视为异常值。例如，如果您为**标准差**指定 3，则一个值必须与均值相差超过 3 个标准差才能被视为异常值。 SageMaker Canvas 用可接受范围内的最小值或最大值替换异常值。例如，如果您将标准差配置为仅包含 200—300 之间的值，则 SageMaker Canvas 会将值 198 更改为 200（最小值）。

**自定义数值范围**和**自定义分位数范围**选项使用最小值和最大值来检测数值列中的异常值。如果您知道划分异常值的阈值，请使用此方法。**如果选择数值范围，则最小值和**最大**值应是您想要允许的最小和最大数值。** SageMaker Canvas 会将任何超出最小值和最大值的值替换为最小值和最大值。例如，如果您的范围仅允许 1—100 之间的值，则 SageMaker Canvas 会将值 102 更改为 100（最大值）。如果选择分位数范围，则**最小值**和**最大值**应该是您希望允许的百分位数范围 (0–100) 的最小值和最大值。

替换数据集中的值后， SageMaker Canvas 会在**模型配方**部分中添加变换。如果从**模型配方**部分中删除该转换，则原始值将返回到数据集中。

![\[C SageMaker anvas 应用程序中替换异常值操作的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-replace-outlier.png)


### 更改数据类型
<a name="canvas-prepare-data-change-type"></a>

SageMaker Canvas 使您能够在数字、文本和日期时间之间更改列*的数据类型*，同时还可以显示该数据类型的关联*要素类型*。*数据类型*是指数据的格式及其存储方式，而*特征类型*是指机器学习算法中使用的数据的特征，例如二进制或分类。这样，您就可以根据特征灵活地手动更改列中的数据类型。选择正确的数据类型的能力可确保在构建模型之前的数据完整性和准确性。这些数据类型用于构建模型。

**注意**  
当前，不支持更改特征类型（例如，从二进制更改为分类）。

下表列出了 Canvas 支持的所有数据类型。


| 数据类型 | 说明 | 示例 | 
| --- | --- | --- | 
| 数值 | 数值数据表示数值 | 1, 2, 31.1, 1.2。1.3 | 
| 文本 | 文本数据表示字符序列，例如名称或描述 | A, B, C, Dapple, banana, orange1A\$1, 2A\$1, 3A\$1 | 
| 日期时间 | 日期时间数据以时间戳格式表示日期和时间 | 2019-07-01 01:00:00, 2019-07-01 02:00:00, 2019-07-01 03:00:00 | 

下表列出了 Canvas 支持的所有特征类型。


| 特征类型 | 说明 | 示例 | 
| --- | --- | --- | 
| 二元 | 二元特征表示两个可能的值 | 0, 1, 0, 1, 0（2 个不同的值）true, false, true（2 个不同的值） | 
| 分类 | 分类特征表示不同的类别或群组 | apple, banana, orange, apple（3 个不同的值）A, B, C, D, E, A, D, C（5 个不同的值） | 

要修改数据集中某列的数据类型，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，转到 “**列” 视图**或 “**网格” 视**图，然后为特定列选择**数据类型**下拉列表。

1. 在**数据类型**下拉菜单中，选择要转换为的数据类型。以下屏幕截图显示了该下拉菜单。  
![\[列的数据类型转换下拉菜单，显示在构建选项卡中。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-change.png)

1. 对于**列**，选择或验证要更改其数据类型的列。

1. 对于**新数据类型**，选择或验证要转换为的新数据类型。

1. 如果**新数据类型**为`Datetime`或`Numeric`，请在**处理无效值**下选择以下选项之一：

   1. **替换为空值** – 用空值替换无效值

   1. **删除行** - 从数据集中删除具有无效值的行

   1. **替换为自定义值** - 用您指定的**自定义值**替换无效值。

1. 选择**添加**将该转换添加到**模型配方**中。

您的列的数据类型现在应该已更新。

## 准备时间序列数据
<a name="canvas-prepare-data-timeseries"></a>

使用以下功能准备时间序列数据，以构建时间序列预测模型。

### 重新采样时间序列数据
<a name="canvas-prepare-data-resample"></a>

通过对时间序列数据进行重采样，您可以为时间序列数据集中的观测值建立固定的时间间隔。这在处理包含不规则间隔观测值的时间序列数据时特别有用。例如，您可以使用重采样将每隔一小时、两小时和三小时记录一次观测值的数据集转换为每隔一小时记录一次观测值的常规数据集。预测算法需要定期进行观测。

要对时间序列数据进行重新采样，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，选择 “**时间序列**”。

1. 选择**重新采样**。

1. 对于**时间戳列**，选择要对其应用转换的列。您只能选择**日期时间**类型的列。

1. 在**频率设置**部分，选择**频率**和**速率**。**频率**是指频率单位，**速率**是指应用于列的频率单位的间隔。例如，如果为**频率值**选择`Calendar Day`并为**速率**选择 `1`，则会将间隔设置为每 1 个日历日增加一次，例如 `2023-03-26 00:00:00`、`2023-03-27 00:00:00`、`2023-03-28 00:00:00`。有关**频率值**的完整列表，请参阅此过程后的表格。

1. 选择**添加**将该转换添加到**模型配方**中。

下表列出了在对时间序列数据进行重采样时可以选择的所有**频率**类型。


| 频率 | 说明 | 示例值（假设速率为 1） | 
| --- | --- | --- | 
|  工作日  |  将日期时间列中的观测值重采样为一周中的 5 个工作日（星期一、星期二、星期三、星期四、星期五）  |  2023-03-24 00:00:00 2023-03-27 00:00:00 2023-03-28 00:00:00 2023-03-29 00:00:00 2023-03-30 00:00:00 2023-03-31 00:00:00 2023-04-03 00:00:00  | 
|  日历日  |  将日期时间列中的观测值重采样为一周中的所有 7 天（星期一、星期二、星期三、星期四、星期五、星期六、星期日）  |  2023-03-26 00:00:00 2023-03-27 00:00:00 2023-03-28 00:00:00 2023-03-29 00:00:00 2023-03-30 00:00:00 2023-03-31 00:00:00 2023-04-01 00:00:00  | 
|  周  |  将日期时间列中的观测值重采样为每周的第一天  |  2023-03-13 00:00:00 2023-03-20 00:00:00 2023-03-27 00:00:00 2023-04-03 00:00:00  | 
|  月  |  将日期时间列中的观测值重采样为每个月的第一天  |  2023-03-01 00:00:00 2023-04-01 00:00:00 2023-05-01 00:00:00 2023-06-01 00:00:00  | 
|  年度季度  |  将日期时间列中的观测值重采样为每个季度的最后一天  |  2023-03-31 00:00:00 2023-06-30 00:00:00 2023-09-30 00:00:00 2023-12-31 00:00:00  | 
|  Year  |  将日期时间列中的观测值重采样为每年的最后一天  |  2022-12-31 0:00:00 2023-12-31 00:00:00 2024-12-31 00:00:00  | 
|  小时  |  将日期时间列中的观测值重采样为每天的每个小时  |  2023-03-24 00:00:00 2023-03-24 01:00:00 2023-03-24 02:00:00 2023-03-24 03:00:00  | 
|  分钟  |  将日期时间列中的观测值重采样为每小时的每一分钟  |  2023-03-24 00:00:00 2023-03-24 00:01:00 2023-03-24 00:02:00 2023-03-24 00:03:00  | 
|  秒  |  将日期时间列中的观测值重采样为每分钟的每一秒  |  2023-03-24 00:00:00 2023-03-24 00:00:01 2023-03-24 00:00:02 2023-03-24 00:00:03  | 

应用重采样转换时，可以使用**高级**选项来指定如何修改数据集中其余列（时间戳列除外）的结果值。这可以通过指定重采样方法来实现，对于数值列和非数值列，重采样方法可以是下采样或上采样。

*下采样*会延长数据集中观测值之间的间隔。例如，如果对每小时或每两小时记录的观测值进行下采样，那么数据集中的每个观测值将每两小时记录一次。使用组合方法将每小时观测值中其他列的值聚合为单个值。下表显示了使用均值作为组合方法对时间序列数据进行下采样的示例。数据采样从每两小时一次降到每小时一次。

下表显示了下采样之前一天内每小时的温度读数。


| Timestamp | 温度（摄氏度） | 
| --- | --- | 
| 12:00 pm | 30 | 
| 1:00 am | 32 | 
| 2:00 am | 35 | 
| 3:00 am | 32 | 
| 4:00 am | 30 | 

下表显示了下采样至每两小时一次后的温度读数。


| Timestamp | 温度（摄氏度） | 
| --- | --- | 
| 12:00 pm | 30 | 
| 2:00 am | 33.5 | 
| 2:00 am | 35 | 
| 4:00 am | 32.5 | 

要对时间序列数据进行下采样，请执行以下操作：

1. 展开**重采样**转换下的**高级**部分。

1. 选择**非数值组合**以指定非数值列的组合方法。有关组合方法的完整列表，请参阅下表。

1. 选择**数值组合**以指定数值列的组合方法。有关组合方法的完整列表，请参阅下表。

如果未指定组合方法，则**非数值组合**的默认值为`Most Common`，**数值组合**的默认值为`Mean`。下表列出了数值和非数值组合的方法。


| 下采样方法 | 组合方法 | 说明 | 
| --- | --- | --- | 
| 非数值组合 | 最常用 | 按最常用值聚合非数值列中的值 | 
| 非数值组合 | 最后一个 | 按非数值列中的最后一个值聚合该列中的值 | 
| 非数值组合 | 第一个 | 按非数值列中的第一个值聚合该列中的值 | 
| 数值组合 | 平均值 | 通过取数值列中所有值的平均值来聚合该列中的值 | 
| 数值组合 | 中位数 | 通过取数值列中所有值的中位数来聚合该列中的值 | 
| 数值组合 | 最小值 | 通过取数值列中所有值的最小值来聚合该列中的值 | 
| 数值组合 | 最大值 | 通过取数值列中所有值的最大值来聚合该列中的值 | 
| 数值组合 | 总和 | 通过将数值列中的所有值相加来聚合该列中的值 | 
| 数值组合 | 分位数 | 通过取数值列中所有值的分位数来聚合该列中的值 | 

*上采样*则会缩短数据集中观测值之间的间隔。例如，如果您将每两小时采集的观测值上采样为每小时观测值，则每小时观测值中其他列的值将从每两小时采集的观测值中插值而来。

要对时间序列数据进行上采样，请执行以下操作：

1. 展开**重采样**转换下的**高级**部分。

1. 选择**非数值估算**以指定非数值列的估算方法。有关方法的完整列表，请参阅此过程之后的表格。

1. 选择**数值估算**以指定数值列的估算方法。有关方法的完整列表，请参阅下表。

1. （可选）选择 **ID 列**以指定包含时间序列观测值的列。 IDs如果您的数据集有两个时间序列，请指定此选项。如果您有一列仅代表一个时间序列，请不要为此字段指定值。例如，您可以有一个包含列 `id` 和 `purchase` 的数据集。`id` 列具有以下值：`[1, 2, 2, 1]`。`purchase` 列具有以下值：`[$2, $3, $4, $1]`。因此，数据集有两个时间序列，一个时间序列是 `1: [$2, $1]`，另一个时间序列是 `2: [$3, $4]`。

如果未指定估算方法，则**非数值估算**的默认值为 `Forward Fill`，**数值估算**的默认值为 `Linear`。下表列出了各种估算方法。


| 上采样方法 | 估算方法 | 说明 | 
| --- | --- | --- | 
| 非数值估算 | 前向填充 | 通过在非数值列中的所有值之后取连续值来插入该列中的值 | 
| 非数值估算 | 后向填充 | 通过在非数值列中的所有值之前取连续值来插入该列中的值 | 
| 非数值估算 | 保持缺失 | 通过显示空值来插入非数值列中的值 | 
| 数值估算 | Linear、Time、Index、Zero、S-Linear、Nearest、Quadratic、Cubic、Barycentric、Polynomial、Krogh、Piecewise Polynomial、Spline、P-chip、Akima、Cubic Spline、From Derivatives | 使用指定的插值器来插入数值列中的值。[有关插值方法的信息，请参阅 pandas。 DataFrame.interpolate](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html) 在 pandas 文档中。 | 

以下屏幕截图显示了**高级**设置，其中填写了下采样和上采样字段。

![\[Canvas 应用程序，其中时间序列重采样侧面板显示了高级选项。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-resampling.png)


### 使用日期时间提取
<a name="canvas-prepare-data-datetime"></a>

使用日期时间提取转换，您可以将日期时间列中的值提取到单独的列。例如，如果您有一列包含购买日期，则可以将月份值提取到单独的列中，并在构建模型时使用新列。您还可以通过一次转换将多个值提取到不同的列中。

日期时间列必须使用支持的时间戳格式。有关 C SageMaker anvas 支持的格式列表，请参阅[Amazon C SageMaker anvas 中的时间序列预测](canvas-time-series.md)。如果您的数据集未使用任何支持的格式，请更新您的数据集以使用支持的时间戳格式，并在构建模型之前将其重新导入到 Amazon SageMaker Canvas。

要执行日期时间提取，请执行以下操作。

1. 在 SageMaker Canvas 应用程序的 “**构建**” 选项卡中，在变换栏上，选择 “**查看全部**”。

1. 选择**提取特征**。

1. 选择要从中提取值的**时间戳列**。

1. 在**值**中，选择一个或多个要从列中提取的值。您可以从时间戳列中提取的值包括**年**、**月**、**日**、**小时**、**一年中的一周**、**一年中的一天**和**季度**。

1. （可选）选择**预览**以预览转换结果。

1. 选择**添加**将该转换添加到**模型配方**中。

SageMaker Canvas 会在数据集中为您提取的每个值创建一个新列。除**年**份值外， SageMaker Canvas 对提取的值使用基于 0 的编码。例如，如果提取**月**值，则一月份提取为 0，二月份提取为 1。

![\[C SageMaker anvas 应用程序中日期时间提取框的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-datetime-extract.png)


您可以看到在**模型配方**部分中列出了该转换。如果从**模型配方**部分中删除该转换，则会从数据集中删除新列。

# 模型评测
<a name="canvas-evaluate-model"></a>

在构建了模型之后，可以在使用模型进行预测之前评估模型处理数据的能力。您可以使用模型预测标签的准确性和高级指标等信息，来确定模型是否能对您的数据做出足够准确的预测。

[评估模型的性能](canvas-scoring.md) 部分将介绍如何查看和解释模型的**分析**页面上的信息。[在分析中使用高级指标](canvas-advanced-metrics.md) 部分包含有关用于量化模型准确性的**高级指标**的更多详细信息。

您还可以查看特定*候选模型*的更多高级信息，这些候选模型是 Canvas 在构建模型时进行的所有模型迭代。根据给定候选模型的高级指标，您可以选择不同的候选模型作为默认模型，或选择用于进行预测和部署的版本。对于每个候选模型，您都可以查看**高级指标**信息，以帮助您决定要选择哪个候选模型作为默认模型。您可以从**模型排行榜**中选择候选模型来查看这些信息。有关更多信息，请参阅 [在模型排行榜中查看候选模型](canvas-evaluate-model-candidates.md)。

Canvas 还提供了下载 Jupyter Notebook 的选项，以便您查看和运行用于构建模型的代码。如果您想调整代码或了解有关模型是如何构建的更多信息，这将非常有用。有关更多信息，请参阅 [下载模型笔记本](canvas-notebook.md)。

# 评估模型的性能
<a name="canvas-scoring"></a>

Amazon SageMaker Canvas 提供了不同类型模型的概述和评分信息。模型的评分有助于您确定模型进行预测时的准确程度。额外的评分见解有助于您量化实际值和预测值之间的差异。

要查看模型的分析，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择您构建的模型。

1. 在顶部导航窗格中，选择**分析**选项卡。

1. 在**分析**选项卡中，您可以查看模型的概述和评分信息。

下面几节介绍如何解释每种模型类型的评分。

## 评估分类预测模型
<a name="canvas-scoring-categorical"></a>

**概览**选项卡显示每列的列影响。**列影响**是一个百分比分数，表示一列相对于其他列在做出预测时所占的权重。对于影响程度为 25% 的列，Canvas 将该列的预测权重定为 25%，其他列的预测权重定为 75%。

下面的屏幕截图显示了模型的**准确性**分数，以及**优化指标**，这是您在构建模型时选择优化的指标。在本例中，**优化指标**为**准确性**。如果您构建模型的新版本，则可以指定不同的优化指标。

![\[Canvas 的“分析”选项卡上准确性分数和优化指标的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-category.png)


分类预测模型的**评分**选项卡可让您直观地查看所有预测。线段从页面左侧延伸，表示模型做出的所有预测。在页面中间，线段汇聚到一条垂直线段上，表示每个预测在单一类别中所占的比例。从预测的类别开始，细分到实际类别。通过跟踪从预测类别到实际类别的每条线段，您可以直观地了解预测的准确性。

下图给出了 **3\$1 类别预测**模型的**评分**部分示例。

![\[3+ 类别预测模型的评分选项卡的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-multiclass-classification.png)


您还可以查看**高级指标**选项卡，了解有关模型性能的更详细信息，例如高级指标、误差密度图或混淆矩阵。要了解有关**高级指标**选项卡的更多信息，请参阅 [在分析中使用高级指标](canvas-advanced-metrics.md)。

## 评估数值预测模型
<a name="canvas-scoring-numeric"></a>

**概览**选项卡显示每列的列影响。**列影响**是一个百分比分数，表示一列相对于其他列在做出预测时所占的权重。对于影响程度为 25% 的列，Canvas 将该列的预测权重定为 25%，其他列的预测权重定为 75%。

以下屏幕截图显示了**概览**选项卡上模型的 **RMSE** 分数，在本例中为**优化指标**。**优化指标**是您在构建模型时选择优化的指标。如果您构建模型的新版本，则可以指定不同的优化指标。

![\[Canvas 的“分析”选项卡上 RMSE 优化指标的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-numeric.png)


数值预测的**评分**选项卡显示一条线，表示模型相对于用于预测的数据的预测值。数值预测的值通常为 \$1/- RMSE（均方根误差）值。模型预测的值通常在 RMSE 的范围内。线条周围紫色带的宽度表示 RMSE 范围。预测值通常在该范围内。

下图显示了数值预测的**评分**部分。

![\[数值预测模型的评分选项卡的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-analyze-regression-scoring.png)


您还可以查看**高级指标**选项卡，了解有关模型性能的更详细信息，例如高级指标、误差密度图或混淆矩阵。要了解有关**高级指标**选项卡的更多信息，请参阅 [在分析中使用高级指标](canvas-advanced-metrics.md)。

## 评估时间序列预测模型
<a name="canvas-scoring-time-series"></a>

在时间序列预测模型的**分析**页面上，您可以看到模型指标的概述。您可以将鼠标悬停在每个指标上，了解更多信息，也可以查看 [在分析中使用高级指标](canvas-advanced-metrics.md) 了解每个指标的更多信息。

在**列影响**部分中，您可以看到每列的分数。**列影响**是一个百分比分数，表示一列相对于其他列在做出预测时所占的权重。对于影响程度为 25% 的列，Canvas 将该列的预测权重定为 25%，其他列的预测权重定为 75%。

以下屏幕截图显示了模型的时间序列指标分数，以及**优化指标**，这是您在构建模型时选择优化的指标。在本例中，**优化指标**为 **RMSE**。如果您构建模型的新版本，则可以指定不同的优化指标。这些指标分数来自回测结果，可在**构件**选项卡中下载。

![\[Canvas 的“分析”选项卡上 RMSE 优化指标的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-time-series.png)


**构件**选项卡提供了访问几个关键资源的途径，您可以利用这些资源深入研究模型的性能，并继续对其进行迭代：
+ **拆分训练集和验证集**：本部分包含将数据集拆分为训练集和验证集时生成的构件链接，使您能够查看数据分布和潜在偏差。
+ **回测结果**：本部分包含指向验证数据集预测值的链接，此数据集用于生成模型的准确性指标和评估数据。
+ **准确性指标**：本部分列出了评估模型性能的高级指标，例如均方根误差 (RMSE)。有关每个指标的更多信息，请参阅 [时间序列预测的指标](canvas-metrics.md#canvas-time-series-forecast-metrics)。
+ **可解释性报告**：本部分提供了下载可解释性报告的链接，此报告提供了对模型决策过程和输入列相对重要性的见解。此报告可以帮助您确定潜在的改进领域。

在**分析**页面上，您还可以选择**下载**按钮，直接将回测结果、准确性指标和可解释性报告构件下载到本地计算机。

## 评估图像预测模型
<a name="canvas-scoring-image"></a>

**概览**选项卡会显示**每个标签的性能**，为您提供每个标签预测的图像的总体准确性分数。您可以选择一个标签来查看更具体的详细信息，例如该标签的**正确预测**和**错误预测**图像。

您可以打开**热图**开关以查看每张图像的热图。热图显示了在模型进行预测时影响最大的相关领域。有关热图以及如何使用热图改进模型的更多信息，请选择**热图**开关旁边的**更多信息**图标。

单标签图像预测模型的**评分**选项卡显示了模型预测的标签与实际标签的对比。一次最多可选择 10 个标签。您可以通过选择标签下拉菜单并选择或取消选择标签来更改可视化中的标签。

您还可以在**模型准确性洞察**部分选择**查看分数**下拉菜单，查看单个标签或标签组的洞察，例如准确性最高或最低的三个标签。

以下屏幕截图显示了单标签图像预测模型的**评分**信息。

![\[多元文本预测模型的“评分”页面上实际标签与预测标签对比。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/analyze-image-scoring.png)


## 评估文本预测模型
<a name="canvas-scoring-text"></a>

**概览**选项卡会显示**每个标签的性能**，为您提供每个标签预测的文本段落的总体准确性分数。您可以选择一个标签来查看更具体的详细信息，例如该标签的**正确预测**和**错误预测**段落。

多元文本预测模型的**评分**选项卡显示了模型预测的标签与实际标签的对比。

在**模型准确性洞察**部分，您可以看到**最常预测的类别**，它告诉您模型最常预测的类别以及这些预测的准确性。如果您的模型在 99% 的情况下都能正确预测出**积极**标签，那么您就可以相当自信地认为，您的模型在预测文本中的积极情绪方面表现出色。

以下屏幕截图显示了多元文本预测模型的**评分**信息。

![\[单标签映像预测模型的“评分”页面上实际标签与预测标签对比。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/analyze-text-scoring.png)


# 在分析中使用高级指标
<a name="canvas-advanced-metrics"></a>

以下部分介绍如何在 Amazon C SageMaker anvas 中查找和解释您的模型的高级指标。

**注意**  
高级指标目前仅适用于数字和分类预测模型。

要找到**高级指标**选项卡，执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择您构建的模型。

1. 在顶部导航窗格中，选择**分析**选项卡。

1. 在**分析**选项卡中，选择**高级指标**选项卡。

在**高级指标**选项卡中，您可以找到**性能**选项卡。页面类似以下界面截图。

![\[分类预测模型的高级指标选项卡的界面截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-analyze-performance.png)


在顶部，您可以看到指标分数的概述，包括**优化指标**，这是您在构建模型时选择（或默认选择 Canvas）进行优化的指标。

下面的部分将介绍**高级指标**中**性能**选项卡的更多详细信息。

## 性能
<a name="canvas-advanced-metrics-performance"></a>

在**性能**选项卡中，您将看到一个**指标表格**，以及 Canvas 根据模型类型创建的可视化效果。对于分类预测模型，Canvas 提供了*混淆矩阵*，而对于数值预测模型，Canvas 则提供了*残差*和*误差密度*图表。

在**指标表**中，您会看到每个高级指标的模型分数的完整列表，此列表比页面顶部的分数概述更加全面。此处显示的指标取决于您的模型类型。有关帮助您理解和解释每个指标的参考资料，请参阅 [指标参考](canvas-metrics.md)。

要了解根据模型类型可能出现的可视化效果，请参阅以下选项：
+ **混淆矩阵**：Canvas 使用混淆矩阵来帮助您直观地了解模型何时做出正确预测。在混淆矩阵中，您的结果将用于比较预测值和实际值。下面的示例解释了混淆矩阵如何用于预测正标签和负标签的 2 类别预测模型：
  + 真正 - 当真标签为正时，模型正确地预测了正。
  + 真负 - 当真标签为负时，模型正确地预测了负。
  + 假正 - 当真标签为负时，模型错误地预测了正。
  + 假负 - 当真标签为正时，模型错误地预测了负。
+ **精度查全率曲线**：精度查全率曲线是根据模型的查全率分数绘制的模型精度分数的可视化。通常，能够做出完美预测的模型，其精度和查全率分数都是 1。准确性相当高的模型的精度查准率曲线在精度和查全率方面都相当高。
+ **残差**：残差是实际值与模型预测值之间的差值。残差图将残差与相应的值进行对比，以直观显示其分布情况以及任何规律或异常值。残差在零附近的正态分布表明此模型与数据拟合良好。但是，如果残差明显偏斜或存在异常值，则可能表明模型过度拟合数据或有其他问题需要解决。
+ **误差密度**：误差密度图表示模型所产生的误差的分布。它显示了每个点的误差概率密度，帮助您识别模型可能过度拟合或出现系统误差的任何区域。

# 在模型排行榜中查看候选模型
<a name="canvas-evaluate-model-candidates"></a>

当您在 Amazon C SageMaker anvas 中为表格和时间序列预测*模型进行[标准构建](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)时， SageMaker AI 会训练多个候选*模型（模型的不同迭代），并默认选择优化指标值最高的模型。对于表格模型，Canvas 可使用各种算法和超参数设置构建多达 250 个不同的候选模型。对于时间序列预测模型，Canvas 构建了 7 个不同的模型——一个是针对每种[支持的预测算法](canvas-advanced-settings.md#canvas-advanced-settings-time-series)，另一个是用于平均其他模型的预测结果以优化准确性的集合模型。

默认候选模型是您可以在 Canvas 中唯一可用于进行预测、注册到模型注册表或部署到端点等操作的版本。但是，您可能需要查看所有候选模型，并选择不同的候选模型作为默认模型。您可以在 Canvas 中的**模型排行榜**上查看所有候选模型以及每个候选模型的更多详细信息。

要查看**模型排行榜**，执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择您构建的模型。

1. 在顶部导航窗格中，选择**分析**选项卡。

1. 在**分析**选项卡中，选择**模型排行榜**。

此时将打开**模型排行榜**页面，表格模型类似以下界面截图。

![\[模型排行榜，其中列出了 Canvas 训练的所有候选模型。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-model-leaderboard.png)


对于时间序列预测模型，您可以看到 7 个模型，其中包括 Canvas 支持的每种时间序列预测算法的一个模型和一个集合模型。有关算法的更多信息，请参阅[高级时间序列预测模型设置](canvas-advanced-settings.md#canvas-advanced-settings-time-series)。

在前面的界面截图中，您可以看到列出的第一个候选模型被标记为**默认模型**。这是可供您进行预测或部署到端点的候选模型。

要查看有关候选模型的更多详细指标信息以进行比较，您可以选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**查看模型详细信息**。

**重要**  
 加载非默认候选模型的模型详细信息可能需要几分钟（通常不到 10 分钟），并且会收取 SageMaker AI Hosting 费用。有关更多信息，请参阅 [SageMaker AI 定价](https://aws.amazon.com/sagemaker/pricing/)。

此时将在**分析**选项卡中打开候选模型，显示的指标是针对此候选模型的。查看完候选模型的指标后，您可以返回或退出视图，返回到**模型排行榜**。

如果想将**默认模型**设置为其他候选模型，您可以选择**更多选项**图标（![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)），然后选择**更改为默认模型**。更改使用 HPO 模式训练的模型的默认模型可能需要几分钟时间。

**注意**  
如果您的模型已在生产中部署、[已注册到模型注册表](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html)或已设置[自动操作](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-automations.html)，则必须在更改默认模型前删除部署、模型注册或自动操作。

# 指标参考
<a name="canvas-metrics"></a>

以下各节介绍了 Amazon SageMaker Canvas 中针对每种模型类型提供的指标。

## 数值预测的指标
<a name="canvas-numeric-metrics"></a>

以下列表定义了 SageMaker Canvas 中数值预测的指标，并提供了有关如何使用这些指标的信息。
+ InferenceLatency — 从发出模型预测请求到从部署模型的实时端点接收模型预测的大致时间。此指标以秒为单位，仅适用于使用**集合**模式创建的模型。
+ MAE – 平均绝对误差。平均而言，目标列的预测值与实际值相差 \$1/- \$1MAE\$1。

  用于衡量在所有值上将预测值与实际值的差值取平均数时有多大的差异。MAE 通常用于数值预测，以了解模型预测误差。如果预测是线性的，则 MAE 表示预测值与实际值之间的平均距离。MAE 定义为绝对误差之和除以观察数据的数量。值的范围从 0 到无穷大，数字越小表示模型对数据的拟合效果越好。
+ MAPE - 平均绝对误差百分比。平均而言，目标列的预测值与实际值相差 \$1/- \$1MAPE\$1 %。

  MAPE 是实际值与预测值或估计值之间绝对差异的平均值，除以实际值，以百分比表示。MAPE 越低，表示性能越好，因为这意味着预测值或估计值更接近实际值。
+ MSE：均方误差，即预测值与实际值之间平方差的平均值。

  MSE 值始终为正值。模型在预测实际值方面的表现越好，MSE 值就越小。
+ R2 - 输入列可以解释的目标列差异百分比。

  量化模型在多大程度上可以解释因变量方差。值范围从一（1）到负一（-1）。数字越大，说明解释的可变性比例越高。接近零 (0) 的值表示模型几乎无法解释因变量。负值表示拟合不佳，常量函数（或水平线）的性能优于模型。
+ RMSE：均方根误差，或误差的标准差。

  衡量预测值与实际值之间平方差的平方根，并对所有值取平均值。它用于了解模型预测误差，是用于指示是否存在较大模型误差和异常值的重要指标。值的范围从零 (0) 到无穷大，数字越小表示模型对数据的拟合效果越好。RMSE 依赖于规模，不应用于比较不同类型的数据集。

## 分类预测的指标
<a name="canvas-categorical-metrics"></a>

本节定义了 SageMaker Canvas 中分类预测的指标，并为您提供有关如何使用这些指标的信息。

以下是 2 类别预测的可用指标列表：
+ 准确性 – 正确预测的百分比。

  或者说，预测正确数量与预测总数之比。准确性衡量预测类值与实际值的接近程度。准确性指标的值在零（0）和一（1）之间变化。值为 1 表示完全准确，0 表示完全不准确。
+ AUC – 介于 0 和 1 之间的值，表示模型能在多大程度上分离数据集中的类别。值为 1 表示它能够完美地分离类别。
+ BalancedAccuracy — 测量准确预测与所有预测的比率。

  该比率是在根据阳性 (P) 和阴性 (N) 值总数，对真阳性 (TP) 和真阴性 (TN) 进行标准化后计算得出的。其定义如下：`0.5*((TP/P)+(TN/N))`，值范围为 0 至 1。当不平衡数据集中阳性或阴性的数量相差很大时，例如只有 1% 的电子邮件是垃圾邮件时，则平衡准确性指标能更好地衡量准确性。
+ F1 – 将类别平衡考虑在内的一种平衡的准确性度量。

  它是精度和查全率分数的调和平均值，定义如下：`F1 = 2 * (precision * recall) / (precision + recall)`。F1 分数介于 0 和 1 之间。分数为 1 表示具有最佳性能，0 表示性能最差。
+ InferenceLatency — 从发出模型预测请求到从部署模型的实时端点接收模型预测的大致时间。此指标以秒为单位，仅适用于使用**集合**模式创建的模型。
+ LogLoss — 对数损失，也称为交叉熵损失，是一种用于评估概率输出质量的指标，而不是输出本身。对数损失是一个重要指标，指示模型何时有很高的概率做出了错误预测。值范围为 0 到无穷大。值为 0 表示可以完美预测数据的模型。
+ 精度：在预测 \$1category x\$1 的所有时间中，预测正确率为 \$1precision\$1%。

  查准率衡量算法预测的真阳性 (TP) 占所识别的全部阳性的比例。其定义如下：`Precision = TP/(TP+FP)`，值范围从零 (0) 到一 (1)。当假阳性的成本很高时，查准率是一个重要指标。例如，如果飞机安全系统错误地认为可以安全飞行，则假阳性的成本非常高。假阳性 (FP) 反映的是预测为阳性，而在数据中实际为阴性的情况。
+ 查全率：当 \$1target\$1column\$1 实际为 \$1category x\$1 时，模型正确预测 \$1recall\$1% 为 \$1category x\$1。

  查全率可以衡量算法正确预测数据集中所有真阳性 (TP) 的能力如何。真阳性是指预测为阳性，而实际也是数据中阳性值的情况。查全率定义如下：`Recall = TP/(TP+FN)`，值范围为 0 至 1。分数越高，反映模型预测数据中真阳性 (TP) 的能力越强。请注意，仅衡量查全率通常是不够的，因为只要将每个输出都预测为真阳性，就可以得到完美的查全率分数。

以下是 3 个以上类别预测的可用指标列表：
+ 准确性 – 正确预测的百分比。

  或者说，预测正确数量与预测总数之比。准确性衡量预测类值与实际值的接近程度。准确性指标的值在零（0）和一（1）之间变化。值为 1 表示完全准确，0 表示完全不准确。
+ BalancedAccuracy — 测量准确预测与所有预测的比率。

  该比率是在根据阳性 (P) 和阴性 (N) 值总数，对真阳性 (TP) 和真阴性 (TN) 进行标准化后计算得出的。其定义如下：`0.5*((TP/P)+(TN/N))`，值范围为 0 至 1。当不平衡数据集中阳性或阴性的数量相差很大时，例如只有 1% 的电子邮件是垃圾邮件时，则平衡准确性指标能更好地衡量准确性。
+ F1macro：F1macro 分数通过计算精度和查全率来应用 F1 分数，然后用它们的调和平均值来计算每个类的 F1 分数。然后，F1macro 对各个分数求平均值，得出 F1macro 分数。F1macro 分数介于 0 和 1 之间。分数为 1 表示具有最佳性能，0 表示性能最差。
+ InferenceLatency — 从发出模型预测请求到从部署模型的实时端点接收模型预测的大致时间。此指标以秒为单位，仅适用于使用**集合**模式创建的模型。
+ LogLoss — 对数损失，也称为交叉熵损失，是一种用于评估概率输出质量的指标，而不是输出本身。对数损失是一个重要指标，指示模型何时有很高的概率做出了错误预测。值范围为 0 到无穷大。值为 0 表示可以完美预测数据的模型。
+ PrecisionMacro — 通过计算每个类别的精度并平均分数以获得多个类别的精度来测量精度。分数范围为零 (0) 到一 (1)。该分数在多个类中取平均值，分数越高反映了模型越能从其识别的所有阳性中预测真阳性 (TP)。
+ RecallMacro — 通过计算每个班级的召回率并平均分数来衡量召回率，从而获得多个班级的召回率。分数范围为 0 到 1。分数越高反映模型预测数据集中真阳性 (TP) 的能力就越好，而真阳性反映的是预测为阳性，而实际也是数据中阳性值的情况。仅衡量查全率通常是不够的，因为只要将每个输出都预测为真阳性，就可以得到完美的查全率分数。

请注意，对于 3 个以上类别的预测，您还会收到平均 F1、准确性、精度和查全率指标。这些指标的分数只是所有类别指标分数的平均值。

## 映像和文本预测的指标
<a name="canvas-cv-nlp-metrics"></a>

以下是映像预测和文本预测的可用指标列表。
+ 准确性 – 正确预测的百分比。

  或者说，预测正确数量与预测总数之比。准确性衡量预测类值与实际值的接近程度。准确性指标的值在零（0）和一（1）之间变化。值为 1 表示完全准确，0 表示完全不准确。
+ F1 – 将类别平衡考虑在内的一种平衡的准确性度量。

  它是精度和查全率分数的调和平均值，定义如下：`F1 = 2 * (precision * recall) / (precision + recall)`。F1 分数介于 0 和 1 之间。分数为 1 表示具有最佳性能，0 表示性能最差。
+ 精度：在预测 \$1category x\$1 的所有时间中，预测正确率为 \$1precision\$1%。

  查准率衡量算法预测的真阳性 (TP) 占所识别的全部阳性的比例。其定义如下：`Precision = TP/(TP+FP)`，值范围从零 (0) 到一 (1)。当假阳性的成本很高时，查准率是一个重要指标。例如，如果飞机安全系统错误地认为可以安全飞行，则假阳性的成本非常高。假阳性 (FP) 反映的是预测为阳性，而在数据中实际为阴性的情况。
+ 查全率：当 \$1target\$1column\$1 实际为 \$1category x\$1 时，模型正确预测 \$1recall\$1% 为 \$1category x\$1。

  查全率可以衡量算法正确预测数据集中所有真阳性 (TP) 的能力如何。真阳性是指预测为阳性，而实际也是数据中阳性值的情况。查全率定义如下：`Recall = TP/(TP+FN)`，值范围为 0 至 1。分数越高，反映模型预测数据中真阳性 (TP) 的能力越强。请注意，仅衡量查全率通常是不够的，因为只要将每个输出都预测为真阳性，就可以得到完美的查全率分数。

请注意，对于您预测 3 个或更多类别的映像和文本预测模型，您还会收到*平均* F1、准确性、精度和查全率指标。这些指标的分数只是所有类别指标分数的平均值。

## 时间序列预测的指标
<a name="canvas-time-series-forecast-metrics"></a>

以下内容定义了 Amazon SageMaker Canvas 中时间序列预测的高级指标，并向您提供了有关如何使用这些指标的信息。
+ 平均加权分位数损失 (wQL) – 通过对 P10、P50 和 P90 分位数处的准确性取平均值来评估预测。值越低表示模型越准确。
+ 加权绝对百分比误差 (WAPE)：绝对误差之和，按照绝对目标之和标准化，用于衡量预测值相比观测值的总体偏差。值越低表示模型越准确，WAPE = 0 表示模型没有误差。
+ 均方根误差 (RMSE) - 平均平方误差的平方根。RMSE 越低表示模型越准确，RMSE = 0 表示模型没有误差。
+ 平均绝对误差百分比 (MAPE) - 所有时间点的平均误差百分比（平均预测值与实际值之差的百分比）。值越低表示模型越准确，MAPE = 0 表示模型没有误差。
+ 平均绝对标度误差 (MASE) - 预测的平均绝对误差，通过简单基线预测方法进行标准化。值越低表示模型越准确，MASE < 1 时预计比基线好，而 MASE > 1 时预计比基线差。

# 使用自定义模型进行预测
<a name="canvas-make-predictions"></a>

使用你在 C SageMaker anvas 中构建的自定义模型来预测数据。以下几节介绍如何对数值和分类预测模型、时间序列预测、映像预测模型和文本预测模型进行预测。

数值和分类预测、图像预测和文本预测自定义模型支持对数据进行以下类型的预测：
+ **单一预测** – **单一预测**是指您只需要进行一次预测。例如，您想对一张图像或文本段落进行分类。
+ **批量预测** – **批量预测**是指您想要对整个数据集进行预测。您可以对 1 TB 以上的数据集进行批量预测。例如，您有一个包含客户评论的 CSV 文件，您希望据此预测客户的情绪，或者您有一个包含图像文件的文件夹，您希望对其进行分类。您应该使用与您的输入数据集相匹配的数据集进行预测。Canvas 提供手动批量预测功能，您也可以配置自动批量预测功能，在更新数据集时启动。

对于每个预测或一组预测， SageMaker Canvas 会返回以下内容：
+ 预测值
+ 预测值正确的概率

**开始使用**

选择以下工作流之一，使用自定义模型进行预测：
+ [C SageMaker anvas 中的批量预测](canvas-make-predictions-batch.md)
+ [进行单一预测](canvas-make-predictions-single.md)

使用模型生成预测后，您还可以执行以下操作：
+ [通过添加版本更新模型。](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html)如果您想尝试提高模型的预测准确性，可以构建模型的新版本。您可以选择克隆原始模型构建配置和数据集，也可以更改配置并选择不同的数据集。添加新版本后，您可以查看和比较版本，选择最佳版本。
+ [在 SageMaker AI 模型注册表中注册模型版本](canvas-register-model.md)。 您可以将模型的版本注册到 SageMaker 模型注册表，该功能用于跟踪和管理模型版本和机器学习管道的状态。有权访问 SageMaker 模型注册表的数据科学家或 MLOps 团队用户可以查看您的模型版本并批准或拒绝它们，然后再将其部署到生产环境中。
+ [将您的批量预测发送到 Quick。](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html)在 Quick 中，您可以使用批量预测数据集构建和发布仪表板。这有助于您分析和共享自定义模型生成的结果。

# 进行单一预测
<a name="canvas-make-predictions-single"></a>

**注意**  
本节介绍如何在 Canvas 应用程序中从模型中获取单一预测。有关通过将模型部署到端点在生产环境中进行实时调用的信息，请参阅[将模型部署到端点](canvas-deploy-model.md)。

如果您想对单个数据点进行预测，则可以进行单一预测。您可以使用此功能来获取实时预测，也可以尝试更改个别值，以了解它们如何影响预测结果。请注意，单一预测依赖于异步推理端点，此端点在闲置（或未收到任何预测请求）两小时后会关闭。

根据模型类型选择以下过程之一。

## 使用数值和分类预测模型进行单一预测
<a name="canvas-make-predictions-numeric-categorical"></a>

要对数值或分类预测模型进行单一预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 打开模型后，选择**预测**选项卡。

1. 在**运行预测**页面上，选择**单一预测**。

1. 对于代表输入数据列的每个**列**字段，您可以更改**值**。选择要更改的**值**的下拉菜单。对于数值字段，您可以输入新数字。对于带有标签的字段，您可以选择不同的标签。

1. 准备好生成预测后，在右侧的**预测**窗格中，选择**更新**。

在右侧的**预测**窗格中，您将看到预测结果。您可以**复制**预测结果图表，也可以选择**下载**，将预测结果图表下载为图像或将值和预测下载为 CSV 文件。

## 利用时间序列预测模型进行单一预测
<a name="canvas-make-predictions-forecast"></a>

要对时间序列预测模型进行单一预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 打开模型后，选择**预测**选项卡。

1. 选择**单一预测**。

1. 对于**项目**，请选择您想要预测其价值的项目。

1. 如果您使用按列分组来训练模型，请为此项目选择按类别分组。

预测结果加载到下面的窗格中，显示了每个量化值的预测图表。选择**架构视图**，查看数字预测值。您还可以选择**下载**，以图片或 CSV 文件的形式下载预测结果。

## 使用图像预测模型进行单一预测
<a name="canvas-make-predictions-image"></a>

要对单标签图像预测模型进行单一预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 打开模型后，选择**预测**选项卡。

1. 在**运行预测**页面上，选择**单一预测**。

1. 选择**导入图像**。

1. 系统将提示您上传图像。您可以从本地电脑或 Amazon S3 存储桶上传图像。

1. 选择**导入**以导入您的图像并生成预测。

在右侧的**预测结果**窗格中，模型列出了图像的可能标签以及每个标签的**置信度**分数。例如，该模型可以预测图像的标签 **Sea**，置信度分数为 96%。该模型可能将图像预测为**冰川**，但置信度分数仅为 4%。因此，您可以确定，您的模型在预测海洋图像方面相当有把握。

## 使用文本预测模型进行单一预测
<a name="canvas-make-predictions-text"></a>

要对多元文本预测模型进行单一预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 打开模型后，选择**预测**选项卡。

1. 在**运行预测**页面上，选择**单一预测**。

1. 在**文本**字段中，输入您要预测的文本。

1. 选择**生成预测结果**以获取您的预测结果。

在右侧的**预测结果**窗格中，除了每个可能的标签的**置信度**分数外，您还会收到对文本的分析。例如，如果您输入了对某产品的好评，则**正面**的置信度分数可能为 85%，而**中性**的置信度分数可能为 10%，**负面**的置信度分数仅为 5%。

# C SageMaker anvas 中的批量预测
<a name="canvas-make-predictions-batch"></a>

当您想对整个数据集进行预测时，可以进行批量预测。Amazon SageMaker Canvas 支持对最大大小的数据集 PBs 进行批量预测。

您可以进行两种类型的批量预测：
+ [手动](canvas-make-predictions-batch-manual.md)批量预测是指您想要对数据集进行一次性预测。
+ [自动](canvas-make-predictions-batch-auto.md)批量预测是指设置一个在特定数据集更新时运行的配置。例如，如果您为库存数据的 SageMaker Canvas 数据集配置了每周更新，则可以设置在更新数据集时运行的自动批量预测。设置自动批量预测工作流后，请参阅[如何管理自动化](canvas-manage-automations.md)，了解有关查看和编辑配置详细信息的更多信息。有关设置数据集自动更新的更多信息，请参阅[配置数据集自动更新](canvas-update-dataset-auto.md)。

**注意**  
时间序列预测模型不支持自动批量预测。  
您只能为通过本地上传或 Amazon S3 导入的数据集设置自动批量预测。此外，自动批量预测只能在您登录 Canvas 应用程序时运行。如果您选择退出 Canvas，当您重新登录时会恢复自动批量预测作业。

要开始操作，请查看 [批量预测数据集要求](canvas-make-predictions-batch-preqreqs.md)，然后选择以下手动或自动的批量预测工作流之一。

**Topics**
+ [批量预测数据集要求](canvas-make-predictions-batch-preqreqs.md)
+ [进行手动批量预测](canvas-make-predictions-batch-manual.md)
+ [自动进行批量预测](canvas-make-predictions-batch-auto.md)
+ [编辑自动批量预测配置](canvas-make-predictions-batch-auto-edit.md)
+ [删除自动批量预测配置](canvas-make-predictions-batch-auto-delete.md)
+ [查看批量预测作业](canvas-make-predictions-batch-auto-view.md)

# 批量预测数据集要求
<a name="canvas-make-predictions-batch-preqreqs"></a>

要进行批量预测，请确保您的数据集满足[创建数据集](canvas-import-dataset.md)中列出的要求。如果您的数据集大于 5 GB，则 Canvas 会使用 Amazon EMR Serverless 来处理您的数据，并将其分成较小的批次。拆分数据后，Canvas 会使用 SageMaker AI Batch Transform 进行预测。运行批量预测后，您可能会看到来自这两项服务的费用。有关更多信息，请参阅 [Canvas 定价](https://aws.amazon.com/sagemaker/canvas/pricing/)。

如果某些数据集的*架构*不兼容，您可能无法对其进行预测。*架构*是一种组织结构。对于表格数据集，架构就是列的名称和列中数据的数据类型。架构不兼容可能是由于以下原因之一：
+ 您用来进行预测的数据集的列数少于您用来构建模型的数据集。
+ 您用于构建数据集的列中的数据类型可能与您用于进行预测的数据集中的数据类型不同。
+ 您用于进行预测的数据集和用于构建模型的数据集的列名不匹配。列名区分大小写。`Column1` 与 `column1` 不同。

为确保您可以成功生成批量预测，请将批量预测数据集的架构与用于训练模型的数据集进行匹配。

**注意**  
对于批量预测，如果您在构建模型时删除了任何列，Canvas 会将删除的列重新添加到预测结果中。但是，Canvas 不会将删除的列添加到时间序列模型的批量预测中。

# 进行手动批量预测
<a name="canvas-make-predictions-batch-manual"></a>

选择以下过程之一，根据您的模型类型进行手动批量预测。

## 使用数字、分类和时间序列预测模型进行手动批量预测
<a name="canvas-make-predictions-batch-numeric-categorical"></a>

要对数字、分类和时间序列预测模型类型进行手动批量预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 打开模型后，选择**预测**选项卡。

1. 在**运行预测**页面上，选择**批量预测**。

1. 选择**选择数据集**来选择用于生成预测的数据集。

1. 从可用数据集列表中选择数据集，然后选择**开始预测**获取预测结果。

预测作业运行完成后，同一页面的**预测**部分会列出一个输出数据集。此数据集包含您的结果，如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择**预览**来预览输出数据。您可以看到与预测相匹配的输入数据以及预测正确的概率。然后，您可以选择**下载预测**，将结果下载为文件。

## 使用图像预测模型进行手动批量预测
<a name="canvas-make-predictions-batch-image"></a>

要对单标签图像预测模型进行手动批量预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 打开模型后，选择**预测**选项卡。

1. 在**运行预测**页面上，选择**批量预测**。

1. 如果您已经导入了数据集，请选定**选择数据集**。如果未导入，请选择**导入新数据集**，然后将引导您完成导入数据工作流。

1. 从可用数据集列表中，选择您的数据集并选择**生成预测**以获取预测。

预测作业运行完毕后，在**运行预测**页面上，您会看到**预测**下列出了输出数据集。此数据集包含您的结果，如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择**查看预测结果**来查看输出数据。您可以看到图像及其预测标签和置信度分数。然后，您可以选择**下载预测**，将结果下载为 CSV 或 ZIP 文件。

## 使用文本预测模型进行手动批量预测
<a name="canvas-make-predictions-batch-text"></a>

要对多元文本预测模型进行手动批量预测，请执行以下操作：

1. 在 Canvas 应用程序的左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 打开模型后，选择**预测**选项卡。

1. 在**运行预测**页面上，选择**批量预测**。

1. 如果您已经导入了数据集，请选定**选择数据集**。如果未导入，请选择**导入新数据集**，然后将引导您完成导入数据工作流。您选择的数据集必须与用于构建模型的数据集具有相同的源列。

1. 从可用数据集列表中，选择您的数据集并选择**生成预测**以获取预测。

预测作业运行完毕后，在**运行预测**页面上，您会看到**预测**下列出了输出数据集。此数据集包含您的结果，如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择**预览**来查看输出数据。您可以看到图像及其预测标签和置信度分数。然后，您可以选择**下载预测**来下载结果。

# 自动进行批量预测
<a name="canvas-make-predictions-batch-auto"></a>

**注意**  
时间序列预测模型不支持自动批量预测。

要设置自动批量预测的时间表，请执行以下操作：

1. 在 Canvas 的左侧导航窗格中，选择**我的模型**。

1. 选择您的模型。

1. 选择**预测**选项卡。

1. 选择**批量预测**。

1. 对于**生成预测**，请选择**自动**。

1. 此时将弹出**自动批量预测**对话框。选定**选择数据集**，然后选择要自动预测的数据集。请注意，您只能选择通过本地上传或 Amazon S3 导入的数据集。

1. 选择数据集后，选择**设置**。

设置配置后，Canvas 会为数据集运行批量预测作业。然后，每当您手动或自动[更新数据集](canvas-update-dataset.md)时，都会运行另一个批量预测作业。

预测作业运行完毕后，在**运行预测**页面上，您会看到**预测**下列出了输出数据集。此数据集包含您的结果，如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择**预览**来预览输出数据。您可以看到与预测相匹配的输入数据以及预测正确的概率。然后，您可以选择**下载**来下载结果。

以下几节介绍如何通过 Canvas 应用程序中的**数据集**页面查看、更新和删除自动批量预测配置。在 Canvas 中，您最多只能设置 20 个自动配置。有关通过**自动化**页面查看自动批量预测作业历史记录或更改自动配置的更多信息，请参阅[如何管理自动化](canvas-manage-automations.md)。

# 编辑自动批量预测配置
<a name="canvas-make-predictions-batch-auto-edit"></a>

您可能需要更改数据集的自动更新配置，例如更改更新频率。您可能还需要关闭自动更新配置以暂停对数据集的更新。

编辑批量预测配置时，您可以更改目标数据集，但不能更改频率（因为每当数据集更新时，都会自动进行批量预测）。

要编辑自动更新配置，请执行以下操作：

1. 转到模型的**预测**选项卡。

1. 在**预测**下，选择**配置**选项卡。

1. 找到您的配置并选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 从下拉菜单中，选择**更新配置**。

1. 此时将打开**自动批量预测**对话框。您可以选择其他数据集并选择**设置**以保存更改。

您的自动批量预测配置现已更新。

要暂停自动批量预测，请执行以下操作关闭自动配置：

1. 转到模型的**预测**选项卡。

1. 在**预测**下，选择**配置**选项卡。

1. 从列表中找到您的配置，然后关闭**自动更新**开关。

自动批量预测现已暂停。您可以随时重新打开该开关，以恢复更新计划。

# 删除自动批量预测配置
<a name="canvas-make-predictions-batch-auto-delete"></a>

要了解如何删除自动批量预测配置，请参阅[删除自动配置](canvas-manage-automations-delete.md)。

您也可以通过以下步骤删除配置：

1. 转到模型的**预测**选项卡。

1. 在**预测**下，选择**配置**选项卡。

1. 从列表中找到您的配置，然后选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 从下拉菜单中，选择**删除配置**。

您的配置现在应该已删除。

# 查看批量预测作业
<a name="canvas-make-predictions-batch-auto-view"></a>

要查看批量预测作业的状态和历史记录，请访问模型的**预测**选项卡。

每个批量预测作业都显示在模型的**预测**选项卡中。在**预测**下，您可以看到**所有作业**选项卡和**配置**选项卡：
+ **所有作业** - 在此选项卡中，您可以查看此模型的所有手动和自动批量预测作业。您可以按配置名称筛选作业。对于每个作业，您可以看到以下字段：
  + **状态**：批量预测作业的当前状态。如果状态为**失败**或**部分失败**，则可以将鼠标悬停在状态上方以查看更详细的错误消息，以帮助您解决问题。
  + **输入数据集**：Canvas 输入数据集的名称，包括数据集版本。
  + **预测类型**：预测作业是自动的还是手动进行的。
  + **行**：预测的行数。
  + **配置名称**：批量预测作业配置的名称。
  + **QuickSight**— 描述您是否已将批量预测发送到 Quick。
  + **已创建**：批量预测作业的创建时间。

  如果选择 “**更多选项**” 图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择 “**查看详细信息**”、“**预览预测**”、“**下载预测**” 或 “**发送至快速**”。如果您选择 **View** details，则会打开一个页面，向您显示批量预测任务的完整详细信息，包括状态、输入和输出数据配置、用于完成任务的实例的信息以及对 Amazon CloudWatch 日志的访问权限。页面类似以下界面截图。  
![\[批量预测作业详情页面，显示了有关作业的所有其他详细信详情。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-view-batch-prediction-job-details.png)
+ **配置** - 在此选项卡中，您可以看到为此模型创建的所有自动批量预测配置。对于每种配置，您可以看到**创建**的时间戳、跟踪更新的**输入数据集**以及**计划的下一个作业（即下一个自动预测作业计划开始的时间）**等字段。如果您选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则可以选择**查看所有作业**，以查看配置的作业历史记录和进行中作业。



# 将预测发送到 Quick
<a name="canvas-send-predictions"></a>

**注意**  
您可以将批量预测发送到 Quick，以获取数值和分类预测以及时间序列预测模型。不包括单标签图像预测和多类别文本预测模型。

在 SageMaker Canvas 中使用自定义表格模型生成批量预测后，您可以将这些预测作为 CSV 文件发送到 Quick，这是一项用于构建和发布预测仪表板的商业智能 (BI) 服务。

例如，如果您建立了一个双类别预测模型来确定客户是否会流失，则可以在 Quick 中创建一个直观的预测仪表板，以显示预计会流失的客户百分比。要了解有关 Quick 的更多信息，请参阅[快速用户指南](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html)。

以下各节介绍如何将批量预测发送到 Quick 进行分析。

## 开始前的准备工作
<a name="canvas-send-predictions-prereqs"></a>

您的用户必须具有必要的 AWS Identity and Access Management (IAM) 权限才能将您的预测发送到 Quick。您的管理员可以为您的用户设置 IAM 权限。有关更多信息，请参阅 [向您的用户授予向 Quick 发送预测的权限](canvas-quicksight-permissions.md)。

您的 Quick 账户必须包含`default`命名空间，该命名空间是在您首次创建 Quick 账户时设置的。请联系您的管理员以帮助您访问 Quick。有关更多信息，请参阅《[快速用户指南》中的设置](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html)*快速*。

您的 Quick 账户必须与您的 Canvas 应用程序在同一区域创建。如果您的 Quick 账户的主区域与 Canvas 应用程序的区域不同，则必须[关闭](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html)并重新创建 Quick 帐户，或者在与 Quick 账户相同的区域中[设置 Canvas 应用程序](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites)。你可以通过执行以下操作来查看你的 Quick home 区域（假设你已经有一个 Quick 账户）：

1. 打开您的 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 页面加载时，您的快速主页区域将按以下格式附加到网址中：`https://<your-home-region>.quicksight.aws.amazon.com/`。

您必须知道要向其发送预测的 Quick 用户的用户名。您可以向自己或其他拥有适当权限的用户发送预测。您向其发送预测的任何用户都必须位于您的 Quick 账户的`default`[命名空间](https://docs.aws.amazon.com/quicksight/latest/user/namespaces.html)中，并且在 Quick 中具有`Author`或`Admin`角色。

此外，Quick 必须有权访问您的域名的 SageMaker AI 默认 Amazon S3 存储桶，该存储桶的命名格式如下：`sagemaker-{REGION}-{ACCOUNT_ID}`。该区域应与您的 Quick 账户的主区域和 Canvas 应用程序的区域相同。要了解如何允许快速访问存储在 Amazon S3 存储桶中的批量预测，请参阅*快速用户指南*中的[我无法连接到 Amazon S3](https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-connect-S3.html) 的主题。

## 支持的数据格式
<a name="canvas-send-predictions-formatting"></a>

在发送预测之前，请检查批量预测的数据格式是否与 Quick 兼容。
+ 要详细了解时间序列数据可接受的数据格式，请参阅*快速用户指南*中的[支持的日期格式](https://docs.aws.amazon.com/quicksight/latest/user/supported-date-formats.html)。
+ 要详细了解可能阻止您发送到 Quick 的数据值，请参阅《*快速用户指南》*[中的数据中不支持的值](https://docs.aws.amazon.com/quicksight/latest/user/unsupported-data-values.html)。

另请注意，Quick 使用该字符`"`作为文本限定符，因此，如果您的 Canvas 数据包含任何`"`字符，请确保关闭所有匹配的引号。任何不匹配的报价都可能导致将数据集发送到 Quick 时出现问题。

## 将您的批量预测发送到 Quick
<a name="canvas-send-predictions-send"></a>

使用以下步骤将您的预测发送到 Quick：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。

1. 选择**预测**选项卡。

1. 在**预测**下，选择您要共享的批量预测数据集（或多个数据集）。您一次最多可以共享 5 个批量预测数据集。

1. 选择数据集后，选择 “**发送至快速**”。
**注意**  
除非您选择一个或多个数据集，否则**发送至快捷**按钮不会激活。

   或者，您可以通过选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**查看预测结果**来预览您的预测结果。在数据集预览中，您可以选择**发送到快速**。以下屏幕截图显示了数据集预览中的 “**发送到快速**” 按钮。  
![\[数据集预览的屏幕截图，底部有发送到快捷按钮。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight-preview.png)

1. 在 “**发送到快速**” 对话框中，执行以下操作：

   1. 对于**QuickSight 用户**，请输入您要向其发送预测的 Quick 用户的姓名。如果您想将预测发送给自己，请输入您自己的用户名。您只能向 Quick 账户`default`命名空间中的用户发送预测，并且该用户必须在 Quick 中具有`Author`或`Admin`角色。

   1. 选择**发送**。

   以下屏幕截图显示了 “**发送到快速**” 对话框：  
![\[“发送到快速” 对话框。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight.png)

发送批量预测后，您发送的数据集的**QuickSight**字段将显示为`Sent`。在确认您的预测已发送的确认框中，您可以选择 **Open Quick 打开**您的 Quick 应用程序。使用完 Canvas 后，应从 Canvas 应用程序[注销](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-log-out.html)。

您已向其发送数据集的 Quick 用户可以打开他们的 Quick 应用程序并查看已与他们共享的 Canvas 数据集。然后，他们可以使用数据创建预测控制面板。有关更多信息，请参阅《[快速*用户指南》中的快速*数据分析入门](https://docs.aws.amazon.com/quicksight/latest/user/getting-started.html)。

默认情况下，您向其发送预测的所有用户都拥有 Quick 中数据集的所有者权限。所有者可以创建分析，刷新、编辑、删除和重新共享数据集。所有者对数据集所做的更改会更改所有具有访问权限的用户的数据集。要更改权限，请在 Quick 中进入数据集并管理其权限。有关更多信息，请参阅*快速[用户指南中的查看和编辑与之共享数据集的权限](https://docs.aws.amazon.com/quicksight/latest/user/sharing-data-sets.html#view-users-data-set)用户*。

# 下载模型笔记本
<a name="canvas-notebook"></a>

**注意**  
模型笔记本功能可用于快速构建和标准构建表格模型以及微调后的基础模型。模型笔记本不支持映像预测、文本预测或时间序列预测模型。  
如果您要为在此功能推出之前构建的表格模型生成模型笔记本，则必须重新构建模型才能生成笔记本。

对于您在 Amazon SageMaker Canvas 中成功构建的符合条件的模型，系统会生成一个包含所有模型构建步骤报告的 Jupyter 笔记本。这款 Jupyter 笔记本包含 Python 代码，你可以在本地运行这些代码，也可以在像 Amazon SageMaker Studio Classic 这样的环境中运行这些代码，以复制构建模型所需的步骤。如果您想尝试使用代码或查看 Canvas 如何构建模型的后端细节，笔记本会非常有用。

要访问模型笔记本，执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 选择您构建的模型和版本。

1. 在模型版本页面上，选择标题中的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 从下拉菜单中，选择**查看笔记本**。

1. 弹出笔记本内容窗口。您可以选择**下载**，然后执行以下任一操作：

   1. 选择**下载**将笔记本内容保存到本地设备。

   1. 选择**复制 S3 URI** 以复制存储笔记本的 Amazon S3 位置。笔记本存储在 [设置 Amazon C SageMaker anvas 的先决条件](canvas-getting-started.md#canvas-prerequisites) 部分配置的 **Canvas 存储配置**中指定的 Amazon S3 存储桶中。

现在，您应该可以在本地或在 Amazon S3 中以对象的形式查看笔记本。您可以将笔记本上传到 IDE 中编辑和运行代码，也可以与组织中的其他人共享笔记本进行查看。

# 将您的模型发送到 Quick
<a name="canvas-send-model-to-quicksight"></a>

如果您使用 Quick 并想在快速可视化中使用 SageMaker Canvas，则可以构建 Amazon SageMaker Canvas 模型并将其用作快速数据集中的*预测字段*。*预测字段*是 Quick 数据集中的一个字段，可以对数据集中的给定列进行预测，类似于 Canvas 用户使用模型进行单一或批量预测的方式。要详细了解如何将 Canvas 预测功能集成到 Quick 数据集中，请参阅[快速用户指南](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html)中的 [SageMaker Canvas 集成](https://docs.aws.amazon.com/quicksight/latest/user/sagemaker-canvas-integration.html)。

以下步骤说明了如何使用 Canvas 模型向 Quick 数据集添加预测字段：

1. 打开 Canvas 应用程序并使用您的数据集构建模型。

1. 在 Canvas 中构建模型后，将模型发送到 Quick。当您将模型发送到 Quick 时，架构文件会自动下载到您的本地计算机。您将在下一步中将此架构文件上传到 Quick。

1. 打开 Quick 并选择一个架构与用于构建模型的数据集相同的数据集。将预测字段添加到该数据集并执行以下操作：

   1. 指定从 Canvas 发送的模型。

   1. 上传在步骤 2 中下载的架构文件。

1. 保存并发布您的更改，然后为新数据集生成预测。Quick 使用模型在目标列中填充预测值。

要将模型从 Canvas 发送到 Quick，您必须满足以下先决条件：
+ 你必须同时设置 Canvas 和 Quick。您的 Quick 账户必须与您的 Canvas 应用程序的创建方式 AWS 区域 相同。如果您的 Quick 账户的主区域与 Canvas 应用程序的区域不同，则必须[关闭](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html)并重新创建 Quick 帐户，或者在与 Quick 账户相同的区域中[设置 Canvas 应用程序](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites)。您的 Quick 账户还必须包含默认命名空间，这是您在首次创建 Quick 账户时设置的。请联系您的管理员以帮助您访问 Quick。有关更多信息，请参阅《[快速用户指南》中的设置](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html)*快速*。
+ 您的用户必须具有必要的 AWS Identity and Access Management (IAM) 权限才能将您的预测发送到 Quick。您的管理员可以为您的用户设置 IAM 权限。有关更多信息，请参阅[向您的用户授予向 Quick 发送预测的权限](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html)。
+ Quick 必须有权访问您为 Canvas 应用程序存储指定的 Amazon S3 存储桶。有关更多信息，请参阅 [配置 Amazon S3 存储](canvas-storage-configuration.md)。

# Amazon C SageMaker anvas 中的时间序列预测
<a name="canvas-time-series"></a>

**注意**  
时间序列预测模型仅支持表格数据集。

Amazon SageMaker Canvas 使您能够使用机器学习时间序列预测。时间序列预测使您能够做出随时间变化的预测。

您可以对以下示例进行时间序列预测：
+ 预测未来几个月的库存。
+ 未来四个月内售出的商品数量。
+ 假日期间降价对销售额的影响。
+ 未来 12 个月的商品库存。
+ 在接下来的几个小时内进入商店的顾客数量。
+ 预测产品降价 10% 对一段时间内销售额的影响。

要进行时间序列预测，您的数据集必须具有以下内容：
+ 一个时间戳列，其所有值均为`datetime`类型。
+ 一个目标列，其中包含用于预测未来值的值。
+ 包含数据集中每个项目的唯一标识符（例如 SKU 编号）的项目 ID 列。

时间戳列中的 `datetime` 值必须使用以下格式之一：
+ `YYYY-MM-DD HH:MM:SS`
+ `YYYY-MM-DDTHH:MM:SSZ`
+ `YYYY-MM-DD`
+ `MM/DD/YY`
+ `MM/DD/YY HH:MM`
+ `MM/DD/YYYY`
+ `YYYY/MM/DD HH:MM:SS`
+ `YYYY/MM/DD`
+ `DD/MM/YYYY`
+ `DD/MM/YY`
+ `DD-MM-YY`
+ `DD-MM-YYYY`

您可以对以下时间间隔进行预测：
+ 1 分钟
+ 5 分钟
+ 15 分钟
+ 30 分钟
+ 1 小时
+ 1 天
+ 1 周
+ 1 个月
+ 1 年

## 输入数据集中的未来值
<a name="canvas-time-series-future"></a>

Canvas 会自动检测数据集中可能包含未来值的列。如果存在这些值，则可以提高预测的准确性。Canvas 用`Future values`标签标记这些特定的列。Canvas 会推断出这些列中的数据与您要预测的目标列之间的关系，并利用这种关系来生成更准确的预测。

例如，您可以预测一家杂货店的冰淇淋销售量。要进行预测，必须有一个时间戳列和一个指示杂货店卖出多少冰淇淋的列。为了获得更准确的预测，您的数据集还可以包括价格、环境温度、冰淇淋口味或冰淇淋的唯一标识符。

天气转暖后，冰淇淋的销量可能会增加。冰淇淋价格下降可能会导致销售量增加。如果有一列环境温度数据和一列定价数据，就能提高预测杂货店冰淇淋销量的能力。

虽然提供未来值是可选的，但这有助于您直接在 Canvas 应用程序中执行假设分析，向您展示未来值的变化会如何改变您的预测。

## 处理缺失值
<a name="canvas-time-series-missing"></a>

由于不同的原因，您可能缺少数据。数据缺失的原因可能会影响您希望 Canvas 如何估算数据。例如，您的组织可能使用自动系统，该系统只在发生销售时才进行跟踪。如果您使用的数据集来自此类自动系统，则目标列中会有缺失值。

**重要**  
如果目标列中有缺失值，我们建议使用没有缺失值的数据集。 SageMaker Canvas 使用目标列来预测未来的值。目标列中的缺失值会大大降低预测的准确性。

对于数据集中的缺失值，Canvas 会在目标列中填入 `0`，并在其他数值列中填入该列的中值，从而自动估算缺失值。

不过，您可以为数据集中的目标列和其他数值列选择自己的填充逻辑。目标列的填充准则和限制不同于其他数值列。目标列填写至历史时期结束，而数值列则填写至历史时期和未来时期，直至预测范围结束。只有当数据中至少有一条记录带有未来时间戳和特定列的值时，Canvas 才会在数值列中填写未来值。

您可以选择以下填充逻辑选项之一来估算数据中的缺失值：
+ `zero` – 填充 `0`。
+ `NaN` – 填充 NaN，即非数字。这仅支持目标列。
+ `mean` – 填充数据序列的平均值。
+ `median` – 填充数据序列的中值。
+ `min` – 填充数据序列的最小值。
+ `max` – 填充数据序列的最大值。

选择填充逻辑时，应考虑模型如何解释该逻辑。例如，在零售场景中，记录有货商品的零销售额与记录无货商品的零销售额是不同的，因为后者并不一定意味着顾客对无货商品缺乏兴趣。在这种情况下，在数据集的目标列中填入 `0` 可能会导致模型的预测偏差过大，并推断出顾客对无货商品缺乏兴趣。反之，填充 `NaN` 可能会导致模型忽略有货商品中零卖出的真实情况。

## 预测类型
<a name="canvas-time-series-types"></a>

您可以进行以下类型的预测之一：
+ **单个项目**
+ **所有项目**

对于数据集中所有项目的预测， SageMaker Canvas 会返回对数据集中每个项目的未来值的预测。

对于单个物料的预测，您可以指定该物料， SageMaker Canvas 会返回对未来值的预测。预测包括一个折线图，描绘出预测值随时间变化的情况。

**Topics**
+ [输入数据集中的未来值](#canvas-time-series-future)
+ [处理缺失值](#canvas-time-series-missing)
+ [预测类型](#canvas-time-series-types)
+ [用于预测见解的其他选项](canvas-additional-insights.md)

# 用于预测见解的其他选项
<a name="canvas-additional-insights"></a>

在 Amazon SageMaker Canvas 中，您可以使用以下可选方法从预测中获得更多见解：
+ 分组列
+ 节假日时间表
+ 假设情景

您可以在数据集中指定一列作为**分组列**。Amazon SageMaker Canvas 按列中的每个值对预测进行分组。例如，您可以根据包含价格数据或唯一项目标识符的列对预测进行分组。通过按列对预测进行分组，您可以做出更具体的预测。例如，如果您根据包含项目标识符的列对预测进行分组，就可以看到每个项目的预测。

节假日的存在可能会影响商品的整体销售。例如，在美国，11 月和 12 月售出的商品数量可能与 1 月售出的商品数量大相径庭。如果使用 11 月和 12 月的数据来预测 1 月份的销售额，结果可能会不准确。使用节假日时间表可以避免获得不准确的结果。您可以使用 251 个国家/地区的节假日时间表。

要对数据集中的单个项目进行预测，可以使用假设情景。假设情景使您能够更改数据中的值并改变预测。例如，您可以通过假设情景来回答以下问题：“如果我降低价格会怎样？ 这对销售商品的数量有什么影响？”

# 在 Amazon SageMaker Canvas 中添加模型版本
<a name="canvas-update-model"></a>

在 Amazon SageMaker Canvas 中，您可以通过添加*版本*来更新自己构建的模型。您构建的每个模型都有一个版本号。第一个模型是版本 1 或 `V1`。当您更新数据或使用[高级转换](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html)时，可以使用模型版本查看预测准确性的变化。

查看模型时， SageMaker Canvas 会向您显示模型历史记录，以便您可以比较您构建的所有模型版本。您还可以删除对您不再有用的版本。通过创建多个模型版本并评估其准确性，您可以不断改进模型性能。

**注意**  
文本预测和图像预测模型仅支持一个模型版本。

要添加模型版本，您可以克隆现有版本或创建新版本。

克隆现有版本会复制当前的模型配置，包括模型配方和输入数据集。或者，如果您想配置新的模型配方或选择不同的数据集，也可以创建新版本。

如果您创建新版本并选择不同的数据集，则必须选择与版本 1 中的数据集具有相同目标列和架构的数据集。

在添加新版本之前，您必须成功构建至少一个模型版本。然后，您可以在 “[模型注册表” 中注册 SageMaker 模型版本](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html)。使用注册表跟踪模型版本，并与 Studio Classic 用户合作批准生产模型。

如果您为第一个模型版本进行了快速构建，则在添加版本时，您可以选择运行标准构建。标准构建通常具有更高的准确性。因此，如果您对快速构建配置有信心，则可以运行标准构建来创建模型的最终版本。要了解有关快速构建和标准构建之间的区别，请参阅 [自定义模型的工作原理](canvas-build-model.md)。

以下步骤显示了如何添加模型版本；根据您添加的是相同构建类型的版本还是不同的构建类型（快速与标准），步骤会有所不同。使用**添加新模型版本**步骤来添加相同构建类型的版本。要在运行快速构建后添加标准构建模型版本，请按照**运行标准构建**步骤操作。

**要添加新模型版本**

1. 打开你的 SageMaker 画布应用程序。有关更多信息，请参阅 [开始使用 Amazon C SageMaker anvas](canvas-getting-started.md)。

1. 在左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。要查找模型，您可以选择**按问题类型进行筛选**。

1. 打开模型后，选择顶部面板中的**添加版本**按钮。

1. 从下拉菜单中选择以下选项之一：

   1. **从头开始添加新版本**：选择此选项后，将打开**构建**选项卡，并显示新模型版本的草稿。您可以选择不同的数据集（只要架构与第一个模型版本的数据集架构相匹配）并配置新的模型配方。有关构建模型版本的更多信息，请参阅 [构建模型](canvas-build-model-how-to.md)。

   1. **使用配置克隆现有版本**：对话框会提示您选择要克隆的版本。选择所需版本后，选择**克隆**。打开**构建**选项卡会显示新模型版本的草稿。任何模型配方配置都会从克隆版本中复制过来。有关构建模型版本的更多信息，请参阅 [构建模型](canvas-build-model-how-to.md)。

**要运行标准构建**

1. 打开你的 SageMaker 画布应用程序。有关更多信息，请参阅 [开始使用 Amazon C SageMaker anvas](canvas-getting-started.md)。

1. 在左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。您可以选择**按问题类型进行筛选**，以便更轻松地找到您的模型。

1. 打开模型后，选择**分析**选项卡。

1. 选择**标准构建**。  
![\[Canvas 模型的“分析”选项卡显示了标准构建按钮。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-add-version-quick-to-standard.png)

   在打开的**构建**选项卡的模型草稿页面上，您可以修改模型配置并开始构建。有关构建模型版本的更多信息，请参阅 [构建模型](canvas-build-model-how-to.md)。

现在您应该正在构建新的模型版本。有关构建模型的更多信息，请参阅[自定义模型的工作原理](canvas-build-model.md)。

创建模型版本后，您可以随时返回模型详细信息页面查看所有版本或添加更多版本。下图显示了模型的**版本**页面。

![\[Canvas 中模型的模型版本页面。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/model-versions.png)


在**版本**页面上，您可以查看每个模型版本的以下信息：
+ **状态** – 此字段显示您的模型是当前正在构建 (`In building`)、已完成构建 (`Ready`)、构建失败 (`Failed`) 还是仍在编辑中 (`In draft`)。
+ **模型得分**、**F1**、**精度**、**召回率**和 **AUC** – 如果您打开此页面上的**显示高级指标**开关，则可以看到这些模型指标。这些指标表明模型的准确性和性能。有关更多信息，请参阅[评估模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html)。
+ 已@@ **共享** — 此字段说明您是否与 SageMaker Studio Classic 用户共享模型版本。
+ **模型注册表**：此字段说明您是否将版本注册到模型注册表中。有关更多信息，请参阅 [在 SageMaker AI 模型注册表中注册模型版本](canvas-register-model.md)。

# MLOps
<a name="canvas-mlops"></a>

在 SageMaker Canvas 中构建了您有信心的模型后，您可能需要将模型与组织中的机器学习操作 (MLOps) 流程集成。 MLOps 包括常见任务，例如部署用于生产的模型或设置持续集成和持续部署 (CI/CD) 管道。

以下主题介绍如何使用 Canvas 中的功能在生产中使用 Canvas 构建的模型。

**Topics**
+ [在 SageMaker AI 模型注册表中注册模型版本](canvas-register-model.md)
+ [将模型部署到端点](canvas-deploy-model.md)
+ [查看部署](canvas-deploy-model-view.md)
+ [更新部署配置](canvas-deploy-model-update.md)
+ [测试部署](canvas-deploy-model-test.md)
+ [调用端点](canvas-deploy-model-invoke.md)
+ [删除模型部署](canvas-deploy-model-delete.md)

# 在 SageMaker AI 模型注册表中注册模型版本
<a name="canvas-register-model"></a>

使用 SageMaker Canvas，您可以构建模型的多个迭代或版本，以便随着时间的推移对其进行改进。如果您获得了更好的训练数据，或者您想尝试提高模型的准确性，您可能想要构建模型的新版本。有关向模型添加版本的更多信息，请参阅[更新模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html)。

在你[建立了一个你有信心的模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)之后，你可能需要评估其性能，让组织中的数据科学家或 MLOps 工程师对其进行审查，然后再将其用于生产。为此，您可以将您的模型版本注册到 “[SageMaker 模型注册表](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html)”。 SageMaker 模型注册表是一个存储库，数据科学家或工程师可以使用该存储库对机器学习 (ML) 模型进行编目并管理模型版本及其相关元数据，例如训练指标。他们还可以管理和记录模型的审批状态。

将模型版本注册到模型注册表后，数据科学家或您的 MLOps 团队可以通过 [SageMaker Studio Classic 访问 SageMaker 模型注册表，Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) 是一个基于 Web 的集成开发环境 (IDE)，用于处理机器学习模型。 SageMaker 在 Studio Classic 的 SageMaker 模型注册表界面中，数据科学家或 MLOps 团队可以评估您的模型并更新其批准状态。如果模型的性能不符合他们的要求，则数据科学家或 MLOps 团队可以将状态更新为`Rejected`。如果模型的性能确实符合他们的要求，则数据科学家或 MLOps 团队可以将状态更新为`Approved`。然后，他们可以[将您的模型部署到端点](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html#deploy-model-prereqs)或使用 CI/CD 管道[自动部署模型](https://aws.amazon.com/blogs/machine-learning/building-automating-managing-and-scaling-ml-workflows-using-amazon-sagemaker-pipelines/)。您可以使用 SageMaker AI 模型注册表功能将 Canvas 中构建的模型与组织中的 MLOps流程无缝集成。

下图总结了将在 Canvas 中内置的模型版本注册到 SageMaker 模型注册表以集成到 MLOps 工作流程中的示例。

![\[注册在 Canvas 中内置的模型版本以集成到 MLOps 工作流程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-model-registration-diagram.jpg)


您可以将表格、图像和文本模型版本注册到 “ SageMaker 模型注册表”。这包括时间序列预测模型和 JumpStart 基于[微调的基础模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html)。

**注意**  
目前，您无法在 Canvas 中内置的基于 Amazon Bedrock 的微调基础模型注册到 SageMaker 模型注册表。

以下各节介绍如何从 Canvas 将模型版本注册到 “ SageMaker 模型注册表”。

## 权限管理
<a name="canvas-register-model-prereqs"></a>

默认情况下，您有权将模型版本注册到 “ SageMaker 模型注册表”。 SageMaker AI 通过策略为所有新的和现有的 Canvas 用户配置文件授予这些权限，该[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)策略附加到托管 Canvas 应用程序的 A SageMaker I 域的 AWS IAM 执行角色。

如果您的 Canvas 管理员正在设置新的域名或用户配置文件，则在设置域名并按照[入门指南中的先决条件说明进行操作时， SageMaker AI 会通过 ML Ops 权限配置选项开](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites)**启模型注册权限**，该选项默认处于启用状态。

Canvas 管理员还可以在用户配置文件级别管理模型注册权限。例如，如果管理员希望向某些用户配置文件授予模型注册权限，但删除其他用户配置文件的权限，他们可以编辑特定用户的权限。以下过程说明如何关闭特定用户配置文件的模型注册权限：

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从域列表中，选择用户配置文件的域。

1. 在**域详细信息**页面上，选择要编辑其权限的**用户配置文件**。

1. 在**用户详细信息**页面上，选择**编辑**。

1. 在左侧导航窗格中，选择 **Canvas 设置**。

1. 在 **ML Ops 权限配置**部分，关闭**启用模型注册表注册权限**开关。

1. 选择**提交**以保存对域设置的更改。

用户配置文件不应再拥有模型注册权限。

## 将模型版本注册到 A SageMaker I 模型注册表
<a name="canvas-register-model-register"></a>

SageMaker Model Registry 会跟踪您为解决模型*组中的特定问题而构建的所有模型*版本。当您构建 SageMaker Canvas 模型并将其注册到 SageMaker 模型注册表时，它会作为新的模型版本添加到模型组中。例如，如果您构建并注册了模型的四个版本，则在 Model Registry 界面中工作的数据科学家或 MLOps 团队可以在一个位置查看模型组并查看模型的所有四个版本。 SageMaker 

将 Canvas 模型注册到 SageMaker 模型注册表时，将自动创建一个模型组，并以您的 Canvas 模型命名。或者，您可以将其重命名为自己选择的名称，或者使用模型注册表中的现有 SageMaker 模型组。有关创建模型组的更多信息，请参阅[创建模型组](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-model-group.html)。

**注意**  
目前，您只能在同一个账户中将在 Canvas 中构建的 SageMaker 模型注册到模型注册中心。

要从 Canvas 应用程序将 SageMaker 模型版本注册到模型注册表，请按以下步骤操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择**我的模型**。

1. 在**我的模型**页面上，选择您的模型。您可以**按问题类型进行筛选**，以便更轻松地找到您的模型。

1. 选择模型后，将打开**版本**页面，其中列出了您的模型的所有版本。您可以打开**显示高级指标**开关来查看高级指标（如**召回率**和**精度**），以比较您的模型版本并确定要注册哪个版本。

1. 在模型版本列表中，对于要注册的版本，选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。或者，您可以双击需要注册的版本，然后在版本详细信息页面上，选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 在下拉列表中，选择**添加到模型注册表**。此时将打开**添加到模型注册表**对话框。

1. 在**添加到模型注册表**对话框中，执行以下操作：

   1. （可选）在 **SageMaker Studio Classic 模型组****部分的模型组名称**字段中，输入要向其注册版本的模型组的名称。您可以为 SageMaker AI 为您创建的新模型组指定名称，也可以指定现有模型组。如果不指定此字段，Canvas 会将您的版本注册到与模型同名的默认模型组中。

   1. 选择**添加**。

现在，您的模型版本应该已注册到模型注册表中的 SageMaker 模型组。在模型注册表中将模型版本注册到 SageMaker 模型组时，Canvas模型的所有后续版本都将注册到同一个模型组（如果您选择注册它们）。如果您将版本注册到其他模型组，则需要前往 SageMaker 模型注册表并[删除该模型组](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-delete-model-group.html)。然后，您可以将模型版本重新注册到新的模型组中。

要查看模型的状态，可以返回 Canvas 应用程序中模型的**版本**页面。此页面显示每个版本的**模型注册表**状态。如果状态为`Registered`，则表示模型已成功注册。

如果要查看已注册模型版本的详细信息，对于**模型注册表**状态，可以将鼠标悬停在**已注册**字段上以查看**模型注册表详细信息**弹出框。这些详细信息包含更多信息，例如：
+ **模型包组名称**是您的版本在 “模型注册表” 中注册到的 SageMaker 模型组。
+ **审批状态**可以是`Pending Approval`、`Approved`或`Rejected`。如果 Studio Classic 用户在 SageMaker 模型注册表中批准或拒绝您的版本，则当您刷新页面时，模型版本页面上的此状态会更新。

以下屏幕截图显示了**模型注册表详细信息**框，以及该特定模型版本的`Approved`的**审批状态**。

![\[Canvas 应用程序中 SageMaker 模型注册表详细信息框的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/approved-mr.png)


# 将模型部署到端点
<a name="canvas-deploy-model"></a>

在 Amazon SageMaker Canvas 中，您可以将模型部署到终端节点以进行预测。 SageMaker AI 为您提供了机器学习基础架构，让您可以将模型托管在带有您选择的计算实例的终端节点上。然后，您可以*调用*端点（发送预测请求）并从模型中获取实时预测。借助此功能，您可以在生产环境中使用模型来响应传入的请求，还可以将模型与现有应用程序和工作流集成。

要开始操作，您应该先拥有想要部署的模型。您可以部署自己构建的自定义模型版本、Amazon SageMaker JumpStart 基础模型和经过微调 JumpStart 的基础模型。有关在 Canvas 中构建模型的更多信息，请参阅[自定义模型的工作原理](canvas-build-model.md)。有关 Canvas 中 JumpStart基础模型的更多信息，请参阅[C SageMaker anvas 中的生成式 AI 基础模型](canvas-fm-chat.md)。

查看以下**权限管理**部分，然后在**部署模型**部分开始创建新部署。

## 权限管理
<a name="canvas-deploy-model-prereqs"></a>

默认情况下，您有权将模型部署到 SageMaker AI Hosting 终端节点。 SageMaker AI 通过策略为所有新的和现有的 Canvas 用户配置文件授予这些权限，该[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)策略附加到托管 Canvas 应用程序的 A SageMaker I 域的 AWS IAM 执行角色。

如果您的 Canvas 管理员正在设置新的域或用户配置文件，则当他们设置域并按照中的先决条件说明进行操作时[设置 Amazon C SageMaker anvas 的先决条件](canvas-getting-started.md#canvas-prerequisites)， SageMaker AI 会通过 “**启用直接部署 Canvas 模型” 选项开启模型部署**权限，该选项默认处于启用状态。

Canvas 管理员还可以在用户配置文件级别管理模型部署权限。例如，如果管理员不想在设置域时向所有用户配置文件授予模型部署权限，他们可以在创建域后向特定用户授予权限。

以下过程说明如何修改特定用户配置文件的模型部署权限：

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从域列表中，选择用户配置文件的域。

1. 在**域详细信息**页面上，选择**用户配置文件**选项卡。

1. 选择您的**用户配置文件**。

1. 在用户配置文件页面，选择**添加配置**选项卡。

1. 在 **Canvas** 部分中，选择**编辑**。

1. 在 **ML Ops 配置**部分，打开**启用 Canvas 模型的直接部署**开关，以启用部署权限。

1. 选择**提交**以保存对域设置的更改。

用户配置文件现在应该具有模型部署权限。

授予域或用户配置文件权限后，确保用户退出其 Canvas 应用程序并重新登录以应用权限更改。

## 部署模型
<a name="canvas-deploy-model-deploy"></a>

要开始部署模型，您可以在 Canvas 中创建一个新的部署，并指定要部署的模型版本以及 ML 基础设施，例如要用于托管模型的计算实例的类型和数量。

Canvas 会根据您的模型类型建议默认类型和实例数量，或者您可以在 A [mazon SageMaker 定价页面](https://aws.amazon.com/sagemaker/pricing/)上详细了解各种 A SageMaker I 实例类型。您的终端节点处于活动状态时，将根据 SageMaker AI 实例的定价向您收费。

部署 JumpStart 基础模型时，您还可以选择指定部署时间的长度。您可以无限期地将模型部署到端点（这意味着端点一直处于活动状态，直到您删除部署）。或者，如果您只需要在短时间内使用终端节点并希望降低成本，则可以将模型部署到终端节点指定时间，之后 SageMaker AI 会为您关闭终端节点。

**注意**  
如果您要在指定时间内部署模型，请在端点持续期间保持登录 Canvas 应用程序。如果您退出或删除应用程序，则 Canvas 无法在指定时间关闭端点。

将模型部署到 SageMaker AI Host [ing 实时推理终端节点](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html)后，您可以通过*调用*该终端节点开始进行预测。

从 Canvas 应用程序部署模型有几种不同的方法。您可以通过以下任一方法访问模型部署选项：
+ 在 Canvas 应用程序的**我的模型**页面上，选择要部署的模型。然后，在模型的**版本**页面中，选择模型版本旁边的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**部署**。
+ 在模型版本的详细信息页面的**分析**选项卡上，可以选择**部署**选项。
+ 在模型版本的详细信息页面的**预测**选项卡上，选择页面顶部的**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**部署**。
+ 在 Canvas 应用程序的 **ML Ops** 页面上，选择**部署**选项卡，然后选择**创建部署**。
+ 对于 JumpStart 基础模型和经过微调的基础模型，请转到 Canvas 应用程序的**Ready-to-use 模型**页面。选择**生成、提取和汇总内容**。然后，找到要部署 JumpStart 的基础模型或经过微调的基础模型。选择模型，然后在模型的聊天页面上选择**部署**按钮。

所有这些方法都会打开**部署模型**侧面板，您可在此指定模型的部署配置。要通过此面板部署模型，请执行以下操作：

1. （可选）如果您从 **ML Ops** 页面创建部署，则可以选定**选择模型和版本**。使用下拉菜单选择要部署的模型和模型版本。

1. 在**部署名称**字段中输入名称。

1. （仅适用于 JumpStart 基础模型和经过微调的基础模型）选择**部署长度**。选择**无限期**，使端点处于活动状态，直到关闭为止；或选择**指定时长**，然后输入您希望端点保持活动状态的时间段。

1. 对于**实例类型**， SageMaker AI 会检测适合您的模型的默认实例类型和编号。不过，您可以更改要用于托管模型的实例类型。
**注意**  
如果您的 AWS 账户上所选实例类型的实例配额已用完，则可以申请增加配额。有关默认配额以及如何申请增加配额的更多信息，请参阅*AWS 通用参考指南*中的 [Amazon SageMaker AI 终端节点和配额](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)。

1. 对于**实例计数**，您可以设置用于终端节点的活跃实例数量。 SageMaker AI 会检测到适合您的型号的默认数字，但您可以更改此数字。

1. 如果您已准备好部署模型，请选择**部署**。

现在，您的模型应该已部署到端点。

# 查看部署
<a name="canvas-deploy-model-view"></a>

您可能需要在 Amazon C SageMaker anvas 中查看模型部署的状态或详细信息。例如，如果部署失败，您可能需要查看详细信息以排查问题。

您可以通过 Canvas 应用程序或 Amazon A SageMaker I 控制台查看您的 Canvas 模型部署。

要从 Canvas 查看部署详细信息，请选择以下过程之一：

要从 **ML Ops** 页面查看部署详细信息，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择 **ML Ops**。

1. 选择**部署**选项卡。

1. 从列表中按名称选择您的部署。

要从模型版本页面查看部署详细信息，请执行以下操作：

1. 在 SageMaker Canvas 应用程序中，转到您的模型版本的详细信息页面。

1. 选择**部署**选项卡。

1. 在列出与该模型版本关联的所有部署配置的**部署**部分，找到您的部署。

1. 选择**更多选项**图标 (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**查看详细信息**以打开详细信息页面。

此时会打开部署的详细信息页面，您可以查看最近一次预测的时间、端点的状态和配置以及当前部署到端点的模型版本等信息。

您还可以从 AI 控制台的 AI [控制](https://console.aws.amazon.com/sagemaker/)**面板中查看当前处于活动状态的 Canv SageMaker a** s 工作空间实例和活动终端节点。SageMaker 您的 Canvas 终端节点与您创建的任何其他 SageMaker AI Hosting 端点一起列出，您可以通过搜索带有 Canvas 标签的端点来筛选它们。

以下屏幕截图显示了 SageMaker AI 控制面板。在 **Canvas** 部分，您可以看到一个工作区实例正在运行，四个端点处于活动状态。

![\[显示活动的 Canv SageMaker as 工作区实例和端点的 AI 仪表板屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-sagemaker-dashboard.png)


# 更新部署配置
<a name="canvas-deploy-model-update"></a>

您可以在 Amazon C SageMaker anvas 中更新已部署到终端节点的模型的部署配置。例如，可以向端点部署更新的模型版本，也可以根据容量需求更新端点后面的实例类型或实例数量。

您可以通过几种不同的方式从 Canvas 应用程序更新部署。您可以使用以下任何一种方法：
+ 在 Canvas 应用程序的 **ML Ops** 页面上，您可以选择**部署**选项卡，然后选择要更新的部署。然后，选择**更新配置**。
+ 在模型版本的详细信息页面的**部署**选项卡上，您可以查看该版本的部署。在部署旁边，选择**更多选项**图标 (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，然后选择**更新配置**。

上述两种方法都会打开**更新配置**侧面板，您可以在其中更改部署配置。要更新配置，请执行以下操作：

1. 在**选择版本**下拉菜单中，您可以选择要部署到端点的不同模型版本。
**注意**  
更新部署配置时，只能选择不同的模型版本进行部署。要部署不同的模型，请创建新的部署。

1. 对于**实例类型**，您可以选择不同的实例类型来托管您的模型。

1. 对于**实例计数**，您可以更改端点使用的活动实例数量。

1. 选择**保存**。

您的部署配置现在应该已更新。

# 测试部署
<a name="canvas-deploy-model-test"></a>

您可以通过调用终端节点或通过 Amazon C SageMaker anvas 应用程序发出单个预测请求来测试模型部署。在生产环境中以编程方式调用端点之前，您可以使用此功能确认端点是否响应请求。

## 测试自定义模型部署
<a name="canvas-deploy-model-test-custom"></a>

您可以通过 **ML Ops** 页面访问自定义模型部署，然后进行单次调用，以测试此模型部署。

**注意**  
执行长度是调用 Canvas 中的端点并从端点获取响应所需的估计时间。有关详细的延迟指标，请参阅 [SageMaker AI 终端节点调用指标](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html#cloudwatch-metrics-endpoint-invocation)。

要通过 Canvas 应用程序测试您的端点，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择 **ML Ops**。

1. 选择**部署**选项卡。

1. 从部署列表中，选择带有要调用的端点的部署。

1. 在部署的详细信息页面上，选择**测试部署**选项卡。

1. 在部署测试页面上，您可以修改**值**字段以指定新的数据点。对于时间序列预测模型，您需要指定要进行预测的**项目 ID**。

1. 修改值后，选择**更新**以获取预测结果。

此时将加载预测，同时加载的还有**调用结果**字段，这些字段指示调用是否成功以及处理请求所需的时间。

以下屏幕截图显示了在 Canvas 应用程序的**测试部署**选项卡上执行的预测。

![\[显示了已部署模型的测试预测的 Canvas 应用程序。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-test-deployments.png)


对于除数值预测和时间序列预测外的所有模型类型，预测都会返回以下字段：
+  **predicted\$1label** – 预测的输出
+  **probability** – 预测的标签正确的概率
+  **labels** – 所有可能的标签的列表
+  **probabilities** – 每个标签对应的概率（该列表的顺序与标签的顺序一致）

对于数值预测模型，预测结果只包含**分数**字段，即模型的预测输出，如预测的房屋价格。

对于时间序列预测模型而言，预测结果是按分位数显示预测结果的图表。您可以选择**架构视图**来查看每个分位数的预测数值。

您可以继续通过部署测试页面进行单一预测，也可以查看以下[调用端点](canvas-deploy-model-invoke.md)部分，了解如何从应用程序中以编程方式调用端点。

## 测试 JumpStart 基础模型部署
<a name="canvas-deploy-model-test-js"></a>

您可以通过 Canvas 应用程序与已部署 JumpStart 的基础模型交谈，以测试其功能，然后再通过代码调用该模型。

要与已部署 JumpStart 的基础模型交谈，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择 **ML Ops**。

1. 选择**部署**选项卡。

1. 从部署列表中找到要调用的部署，然后选择其**更多选项**图标 (![\[More options icon for a model deployment.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 从上下文菜单中，选择**测试部署**。

1.  JumpStart 基础模型将打开一个新的 “**生成、提取和汇总内容**” 聊天，你可以开始键入提示了。请注意，此聊天中的提示将作为请求发送到您的 SageMaker AI Hosting 终端节点。

# 调用端点
<a name="canvas-deploy-model-invoke"></a>

**注意**  
我们建议您先[在 Amazon SageMaker Canvas 中测试您的模型部署](canvas-deploy-model-test.md)，然后再以编程方式调用 A SageMaker I 终端节点。

您可以将已部署到生产环境中的 SageMaker 人工智能终端节点的 Amazon C SageMaker anvas 模型与应用程序配合使用。以编程方式调用终端节点，方法与调用任何其他 [SageMaker AI 实时端点](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html)相同。以编程方式调用端点会返回一个响应对象，其中包含 [测试部署](canvas-deploy-model-test.md) 中描述的相同字段。

有关如何以编程方式调用端点的更多详细信息，请参阅[调用模型进行实时推理](realtime-endpoints-test-endpoints.md)。

下面的 Python 示例向您展示了如何根据模型类型调用端点。

## JumpStart 基础模型
<a name="canvas-invoke-js-example"></a>

以下示例说明如何调用已部署到终端节点 JumpStart 的基础模型。

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame(
    [['feature_column1', 'feature_column2'], 
    ['feature_column1', 'feature_column2']]
).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## 数值和分类预测模型
<a name="canvas-invoke-tabular-example"></a>

下面的示例展示了如何调用数值或分类预测模型。

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame(['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## 时间序列预测模型
<a name="canvas-invoke-forecast-example"></a>

下面的示例显示了如何调用时间序列预测模型。有关如何测试调用时间序列预测模型的完整示例，请参阅[使用 Amazon A SageMaker utopilot 进行时间序列预测](https://github.com/aws/amazon-sagemaker-examples/blob/eef13dae197a6e588a8bc111aba3244f99ee0fbb/autopilot/autopilot_time_series.ipynb)。

```
import boto3
import pandas as pd

csv_path = './real-time-payload.csv'
data = pd.read_csv(csv_path)

client = boto3.client("runtime.sagemaker")

body = data.to_csv(index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## 图像预测模型
<a name="canvas-invoke-cv-example"></a>

下面的示例展示了如何调用图像预测模型。

```
import boto3
client = boto3.client("runtime.sagemaker")
with open("example_image.jpg", "rb") as file:
    body = file.read()
    response = client.invoke_endpoint(
        EndpointName="endpoint_name",
        ContentType="application/x-image",
        Body=body,
        Accept="application/json"
    )
```

## 文本预测模型
<a name="canvas-invoke-nlp-example"></a>

下面的示例展示了如何调用文本预测模型。

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame([["Example text 1"], ["Example text 2"]]).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

# 删除模型部署
<a name="canvas-deploy-model-delete"></a>

您可以从 Amazon C SageMaker anvas 应用程序中删除您的模型部署。此操作还会从 SageMaker AI 控制台中删除终端节点并关闭所有与终端节点相关的资源。

**注意**  
或者，您可以通过 [SageMaker AI 控制台或使用 AI](https://console.aws.amazon.com/sagemaker/) `DeleteEndpoint` AP SageMaker I 删除终端节点。有关更多信息，请参阅 [删除端点和资源](realtime-endpoints-delete-resources.md)。但是，当您通过 SageMaker AI 控制台或 APIs 代替 Canvas 应用程序删除终端节点时，Canvas 中的部署列表不会自动更新。您还必须从 Canvas 应用程序中删除部署，才能将其从列表中移除。

要在 Canvas 中删除部署，请执行以下操作：

1. 打开 SageMaker 画布应用程序。

1. 在左侧导航窗格中，选择 **ML Ops**。

1. 选择**部署**选项卡。

1. 从部署列表中，选择要删除的部署。

1. 在部署详细信息页面顶部，选择**更多选项**图标 (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 选择**删除部署**。

1. 在**删除部署**对话框中，选择**删除**。

现在，您的部署和 SageMaker AI 托管终端节点应从 Canvas 和 SageMaker AI 控制台中删除。

# 如何管理自动化
<a name="canvas-manage-automations"></a>

在 SageMaker Canvas 中，您可以创建自动操作来更新数据集或按计划从模型生成预测。例如，您可能每天都会收到新的配送数据。您可以为数据集设置自动更新，并在数据集更新时自动运行批量预测。利用这些功能，您可以设置自动工作流，减少手动更新数据集和进行预测所需的时间。

**注意**  
在 Canvas 应用程序中，您最多只能设置 20 个自动配置。自动操作只有在您登录 Canvas 应用程序时才会激活。如果您从 Canvas 注销，自动作业会暂停，直到您重新登录。

以下几节将介绍如何查看、编辑和删除现有自动化操作的配置。要了解如何设置自动化操作，请参阅以下主题：
+ 要设置自动数据集更新，请参阅[更新数据集](canvas-update-dataset.md)。
+ 要设置自动批量预测，请参阅[C SageMaker anvas 中的批量预测](canvas-make-predictions-batch.md)。

**Topics**
+ [查看自动化操作](canvas-manage-automations-view.md)
+ [编辑自动配置](canvas-manage-automations-edit.md)
+ [删除自动配置](canvas-manage-automations-delete.md)

# 查看自动化操作
<a name="canvas-manage-automations-view"></a>

您还可以通过前往 Canvas 的左侧导航窗格并选择 **ML Ops** 来查看所有自动更新作业。**ML 操作**页面结合了自动数据集更新和自动批量预测的自动化功能。在**自动化**选项卡上，您可以看到以下子选项卡：
+ **所有作业** – 您可以查看 Canvas 完成的**数据集更新**或**批量预测**作业的每个实例。对于每项作业，您可以看到相关**输入数据集**、相关自动更新配置的**配置名称**以及显示作业是否成功的**状态**等字段。您可以按配置名称筛选作业：
  + 对于数据集更新作业，您可以选择数据集的最新版本或最近的作业来预览数据集。
  + 对于批量预测作业，您可以选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) 来预览或下载该作业的预测。您还可以选择**查看详情**，了解预测作业的更多详情。有关批量预测作业详情的更多信息，请参阅 [查看批量预测作业](canvas-make-predictions-batch-auto-view.md)。
+ **配置** – 您可以查看已创建的所有**数据集更新**和**批量预测**配置。对于每种配置，您都可以看到相关**输入数据集**和作业**频率**等字段。您也可以关闭或打开**自动更新**开关，以暂停或恢复自动更新。如果您为特定配置选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))，则对于该配置，可以选择**查看所有作业**、**更新配置**或**删除配置**。

# 编辑自动配置
<a name="canvas-manage-automations-edit"></a>

设置配置后，您可能需要对其进行更改。对于自动数据集更新，您可以更新 Canvas 导入数据的 Amazon S3 位置、更新的频率和开始时间。对于自动批量预测，您可以更改配置跟踪更新的数据集。您还可以关闭自动更新功能，暂时停止更新，直到您选择恢复更新。

以下几节将向您介绍如何更新每种类型的配置。

**注意**  
您无法更改自动批量预测的频率，因为每次更新目标数据集时都会运行自动批量预测。

**Topics**
+ [编辑数据集自动更新配置](canvas-manage-automations-edit-dataset.md)
+ [编辑自动批量预测配置](canvas-manage-automations-edit-batch.md)

# 编辑数据集自动更新配置
<a name="canvas-manage-automations-edit-dataset"></a>

您可能需要更改数据集的自动更新配置，例如更改更新频率。您可能还需要关闭自动更新配置以暂停对数据集的更新。

要更改数据集的自动更新配置，请执行以下操作：

1. 在 Canvas 的左侧导航窗格中，选择 **ML Ops**。

1. 选择**自动化**选项卡。

1. 选择**配置**选项卡。

1. 对于自动更新配置，选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 在下拉菜单中，选择**更新配置**。您将进入数据集的**自动更新**选项卡。

1. 对配置进行更改。完成更改后，选择**保存**。

要暂停数据集更新，请关闭自动配置。关闭自动更新的一种方法是执行以下操作：

1. 在 Canvas 的左侧导航窗格中，选择 **ML Ops**。

1. 选择**自动化**选项卡。

1. 选择**配置**选项卡。

1. 从列表中找到您的配置，然后关闭**自动更新**开关。

数据集的自动更新现已暂停。您可以随时重新打开此开关以恢复更新计划。

# 编辑自动批量预测配置
<a name="canvas-manage-automations-edit-batch"></a>

编辑批量预测配置时，您可以更改目标数据集，但不能更改频率（因为每当数据集更新时，都会自动进行批量预测）。

要更改自动批量预测配置，请执行以下操作：

1. 在 Canvas 的左侧导航窗格中，选择 **ML Ops**。

1. 选择**自动化**选项卡。

1. 选择**配置**选项卡。

1. 对于自动更新配置，选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 在下拉菜单中，选择**更新配置**。您将进入数据集的**自动更新**选项卡。

1. 此时将打开**自动批量预测**对话框。您可以选择其他数据集并选择**设置**以保存更改。

您的自动批量预测配置现已更新。

要暂停自动批量预测，请关闭自动配置。按照以下过程关闭配置：

1. 在 Canvas 的左侧导航窗格中，选择 **ML Ops**。

1. 选择**自动化**选项卡。

1. 选择**配置**选项卡。

1. 从列表中找到您的配置，然后关闭**自动更新**开关。

数据集的自动批量预测现已暂停。您可以随时重新打开此开关以恢复更新计划。

# 删除自动配置
<a name="canvas-manage-automations-delete"></a>

您可能需要删除配置以停止在 C SageMaker anvas 中的自动化工作流程。

要删除自动数据集更新或自动批量预测的配置，请执行以下操作：

1. 在 Canvas 的左侧导航窗格中，选择 **ML Ops**。

1. 选择**自动化**选项卡。

1. 选择**配置**选项卡。

1. 找到您的自动更新配置，然后选择**更多选项**图标 (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png))。

1. 选择**删除配置**。

1. 在弹出的对话框中，选择**删除**。

您的自动更新配置现已删除。

# 注销 Amazon SageMaker Canvas
<a name="canvas-log-out"></a>

在 Amazon SageMaker Canvas 中完成工作后，您可以注销或将应用程序配置为自动终止*工作空间实例*。每次启动 Canvas 应用程序时，都会有一个工作空间实例供您使用，只要实例运行，您就需要付费。注销或终止工作空间实例会停止对工作空间实例计费。有关更多信息，请参阅[SageMaker 定价](https://aws.amazon.com/sagemaker/pricing/)。

以下各节将介绍如何退出 Canvas 应用程序，以及如何将应用程序配置为按计划自动关闭。

## 退出 Canvas
<a name="canvas-log-out-how-to"></a>

当您退出 Canvas 后，模型和数据集不会受到影响。即使您退出，任何快速或标准模型构建或[大型数据处理作业](canvas-export-data.md#canvas-export-data-s3)也会继续运行。

要注销，请选择 C SageMaker anvas 应用程序左侧面板上的 “**注**销” 按钮 (![\[Filter icon in the SageMaker Canvas app.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/logout-icon.png))。

您也可以通过关闭浏览器选项卡，然后在控制台中[删除该应用程序，从 C SageMaker anvas 应用程序](canvas-manage-apps-delete.md)中注销。

注销后， SageMaker Canvas 会告诉你在另一个选项卡中重新启动。登录大约需要 1 分钟。如果你有管理员为你设置 SageMaker Canvas，请按照他们给你的说明重新登录。如果没有管理员，请参阅中访问 SageMaker Canvas 的步骤[设置 Amazon C SageMaker anvas 的先决条件](canvas-getting-started.md#canvas-prerequisites)。

## 自动关闭 Canvas
<a name="canvas-auto-shutdown"></a>

如果您是 Canvas 管理员，则可能需要定期关闭应用程序以降低成本。您可以创建计划表来关闭活动的 Canvas 应用程序，也可以创建自动化程序，在 Canvas 应用程序*空闲状态*（这意味着用户已经 2 小时未处于活动状态了）时立即关闭。

您可以使用调用 `DeleteApp` API 的 AWS Lambda 函数创建这些解决方案，并在特定条件下删除 Canvas 应用程序。有关这些解决方案以及您可以使用的 CloudFormation 模板访问权限的更多信息，请参阅博客通过[自动关闭闲置应用程序来优化 Amazon SageMaker Canvas 的成本](https://aws.amazon.com/blogs/machine-learning/optimizing-costs-for-amazon-sagemaker-canvas-with-automatic-shutdown-of-idle-apps/)。

**注意**  
如果在设置空闲停机时间表时出现错误或出现错误，您可能会遇到缺少 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 指标 CloudWatch的情况。我们建议您添加监控缺失指标的 CloudWatch 警报。如果您遇到此问题，请联系 支持 寻求帮助。

# 限制和问题排查
<a name="canvas-limits"></a>

以下部分概述了使用 Amazon C SageMaker anvas 时适用的疑难解答帮助和限制。您可以使用本主题来协助排除遇到的任何问题。

## 解决通过 SageMaker AI 控制台授予权限的问题
<a name="canvas-troubleshoot-trusted-services"></a>

如果您在向用户授予 Canvas 基本权限或 Ready-to-use模型权限时遇到问题，则您的用户可能具有与其他 AWS 服务的多个信任关系的 AWS IAM 执行角色。信任关系是附加到您的角色的策略，用于定义哪些主体（用户、角色、账户或服务）可以代入该角色。例如，如果用户的执行角色与 Amazon AI 和 Amazon Forecast 都存在信任关系，则向其授予其他 Canv SageMaker as 权限时可能会遇到问题。

您可以选择以下选项之一来解决这个问题。

### 1. 从角色中删除一项可信服务以外的所有服务。
<a name="canvas-troubleshoot-trusted-services-remove"></a>

此解决方案要求您编辑用户配置文件的 IAM 角色的信任关系，并移除除 A SageMaker I 之外的所有 AWS 服务。

要编辑 IAM 执行角色的信任关系，请执行以下操作：

1. 前往 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在 IAM 控制台的导航窗格中，选择**角色**。该控制台会显示您账户的角色。

1. 选择您要修改的角色的名称，然后在详细信息页面中选择**信任关系**选项卡。

1. 选择**编辑信任策略**。

1. 在**编辑信任策略编辑器**中，粘贴以下内容，然后选择**更新策略**。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

您还可以使用 IAM CLI 更新此策略文档。有关更多信息，请参阅《IAM 命令行参考》**中的 [update-trust](https://docs.aws.amazon.com/cli/latest/reference/ds/update-trust.html)。

现在，你可以重试向你的用户授予 Canvas 基本权限或 Ready-to-use模型权限。

### 2. 使用有一个或更少可信服务的不同角色。
<a name="canvas-troubleshoot-trusted-services-alternate"></a>

此解决方案要求您为用户配置文件指定不同的 IAM 角色。如果您已经有可以替代的 IAM 角色，请使用此选项。

要为用户指定不同的执行角色，请执行以下操作：

1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从域列表中，选择要查看用户配置文件列表的域。

1. 在**域详细信息**页面上，选择**用户配置文件**选项卡。

1. 选择要编辑其权限的用户。在**用户详细信息**页面上，选择**编辑**。

1. 在**常规设置**页面上，选择**执行角色**下拉列表并选择要使用的角色。

1. 选择**提交**以保存对用户配置文件所做的更改。

现在，您的用户应该使用仅包含一项可信服务 (SageMaker AI) 的执行角色。

你可以重试向你的用户授予 Canvas 基本权限或 Ready-to-use模型权限。

### 3. 手动将 AWS 托管策略附加到执行角色，而不是使用 SageMaker AI 域设置中的切换按钮。
<a name="canvas-troubleshoot-trusted-services-manual"></a>

您可以手动附加授予用户正确权限的 AWS 托管式策略，而不是使用域或用户配置文件设置中的切换开关。

要向用户 Canvas 授予基本权限，请附加该[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)策略。要向用户 Ready-to-use模型授予权限，请附加[AmazonSageMakerCanvasAIServices访问](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)策略。

使用以下步骤将 AWS 托管策略附加到您的角色：

1. 前往 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 选择**角色**。

1. 在搜索框中，按名称搜索用户的 IAM 角色并将其选中。

1. 在用户角色页面的**权限**下，选择**添加权限**。

1. 从下拉菜单中选择**附加策略**。

1. 搜索并选择要附加到用户执行角色的一个或多个策略：

   1. 要授予 Canvas 基本权限，请搜索并选择[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)策略。

   1. 要授予 Ready-to-use模特权限，请搜索并选择[AmazonSageMakerCanvasAIServices访问](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)策略。

1. 选择**添加权限**，将策略附加到角色。

通过 IAM 控制台将 AWS 托管策略附加到用户的角色后，您的用户现在应该拥有 Canvas 基本权限或 Ready-to-use模型权限。

## 解决因空间故障而无法创建 Canvas 应用程序的问题
<a name="canvas-troubleshoot-spaces"></a>

在创建新的 Canvas 应用程序时，如果您遇到错误说明`Unable to create app <app-arn> because space <space-arn> is not in InService state`，则表示底层 Amazon SageMaker Studio 空间创建失败。Studio *空间*是托管 Canvas 应用程序数据的底层存储空间。有关 Studio 空间的更多一般信息，请参阅 [亚马逊 SageMaker Studio 空间](studio-updated-spaces.md)。有关在 Canvas 中配置空间的更多信息，请参阅 [将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中](canvas-spaces-setup.md)。

要确定空间创建失败的根本原因，您可以使用 [DescribeSpace](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeSpace.html)API 检查该`FailureReason`字段。有关可能的空间状态及其含义的更多信息，请参阅 [亚马逊 SageMaker AI 域名实体和状态](sm-domain.md)。

要解决此问题，请在 SageMaker AI 控制台中找到您的域，然后删除您收到的错误消息中列出的故障空间。有关如何查找和删除空间的详细步骤，请参阅页面 [停止并删除 Studio 中正在运行的应用程序和空间](studio-updated-running-stop.md) 并按照说明**删除 Studio 空间**。删除空间还会删除与此空间关联的所有应用程序。删除空间后，您可以再次尝试创建 Canvas 应用程序。现在，此空间应该可以成功配置，允许 Canvas 启动。

# C SageMaker anvas 中的账单和费用
<a name="canvas-manage-cost"></a>

要跟踪与您的 SageMaker Canvas 应用程序相关的成本，您可以使用该 AWS 账单与成本管理 服务。“账单与成本管理”提供各种工具，有助于您收集与成本和使用情况有关的信息，分析成本驱动因素和使用趋势，并采取行动编制支出预算。有关更多信息，请参阅[什么是 AWS 账单与成本管理？](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)

 SageMaker Canvas 中的计费由以下部分组成：
+ Workspace 实例费用 — 根据您登录或使用 C SageMaker anvas 的小时数向您收费。为了降低成本，我们建议您注销或创建计划来关闭您不常用的任何 Canvas 应用程序。有关更多信息，请参阅 [注销 Amazon SageMaker Canvas](canvas-log-out.md)。
+ AWS 服务费 — 您需要为使用自定义模型进行构建和预测或使用 Ready-to-use模型进行预测而付费：
  + 训练费用：对于所有模型类型，您都需要根据模型构建期间的资源使用情况付费。这些资源包括 Canvas 启动的任何计算实例。您可能会在账户上看到这些费用，如托管、训练、处理或批量转换作业。
  + 预测费用 — 您需要为用于生成预测的资源付费，具体取决于您构建的自定义模型的类型或所使用的 Ready-to-use模型类型。

Canvas 中的[Ready-to-use 模型](canvas-ready-to-use-models.md)利用其他 AWS 服务来生成预测。当您使用 Ready-to-use模型时，将按相应的服务向您收费，其定价条件适用：
+ 对于情绪分析、实体提取、语言检测和个人信息检测，您需要按 [Amazon Comprehend 定价](https://aws.amazon.com/comprehend/pricing/)付费。
+ 对于图像中的对象检测和图像中的文本检测，您需要按 [Amazon Rekognition 定价](https://aws.amazon.com/rekognition/pricing/)付费。
+ 对于费用分析、身份证件分析和文档分析，您需要按 [Amazon Textract 定价](https://aws.amazon.com/textract/pricing/)付费。

有关更多信息，请参阅 [SageMaker Canvas 定价](https://aws.amazon.com/sagemaker/canvas/pricing/)。

为了帮助您在 Billing and Billing and Cost Management 中跟踪成本，您可以为 SageMaker Canvas 应用程序和用户分配自定义标签。您可以跟踪应用程序产生的成本，并通过标记单个用户配置文件，跟踪基于用户配置文件的成本。有关标签的更多信息，请参阅[使用成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

您可以通过执行以下操作向您的 SageMaker Canvas 应用程序和用户添加标签：
+ 如果您是首次设置 Amazon SageMaker AI 域和 SageMaker Canvas，请按照[入门](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html)说明进行操作，并在创建域名或用户时添加标签。您可以通过域控制台**设置中的 “常规”** 设置或 APIs （[CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)或 [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)）来添加标签。 SageMaker AI 会将您在网域中指定的标签或 UserProfile 您在创建域名后创建的任何 SageMaker Canvas 应用程序或用户添加标签。
+ 如果要向现有网域中的应用程序添加标签，则必须向该网域或 UserProfile。您可以通过控制台或 [AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html)API 添加标签。如果您通过控制台添加标签，则必须删除并重新启动您的 C SageMaker anvas 应用程序才能将标签传播到该应用程序。如果您使用 API，则标签将直接添加到应用程序中。有关删除和重新启动 SageMaker Canvas 应用程序的更多信息，请参阅[管理](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-apps.html)应用程序。

向域名添加标签后，标签最多可能需要 24 小时才能显示在 AWS 账单与成本管理 控制台中进行激活。标签出现在控制台后，还需要 24 小时才能激活。

在 **Cost explorer** 页面上，您可以按标签和使用类型对成本进行分组和筛选，将工作区实例费用与训练费用区分开来。每项的费用如下所示：
+ 工作区实例费用：费用显示在使用类型 `REGION-Canvas:Session-Hrs (Hrs)` 下。
+ 培训费用：费用显示在 SageMaker AI 托管、训练、处理或 Batch Transform 作业的使用类型下。