机器学习概览
通过使用 Amazon Redshift ML,您可以使用 SQL 语句训练机器学习模型,并在 SQL 查询中调用它们以进行预测。
为了帮助您了解如何使用 Amazon Redshift ML,您可以观看以下视频。
有关设置 Redshift 集群的先决条件、使用 Amazon Redshift ML 的权限和所有权的信息,请阅读以下部分。这些部分还介绍了简单的训练和预测在 Amazon Redshift ML 中的工作原理。
机器学习如何解决问题
机器学习模型通过在训练数据中查找模式,然后将这些模式应用于新数据来生成预测。在机器学习中,您可以通过学习最能解释您的数据数据的模式来训练这些模型。然后,您可以使用这些模型对新数据做出预测(也称为推理)。机器学习通常是一个迭代过程,您可以通过更改参数和改进训练数据来继续提高预测的准确性。如果数据发生变化,则会使用新数据集重新训练新模型。
为了实现各种业务目标,可以使用不同的基础机器学习方法。
Amazon Redshift ML 中的有监督学习
Amazon Redshift 支持有监督学习,这是最常见的高级企业分析方法。当您拥有一组已建立的数据并了解特定输入数据如何预测各种业务成果时,监督学习是首选的机器学习方法。这些结果有时也称为标签。特别是,数据集是一个表,其中具有包含特征(输入)和目标(输出)的属性。例如,假设您有一个提供过去和现在客户的年龄和邮政编码的表。假设您还有一个“活动”字段,对于现有客户来说值为 true,对于已暂停其成员资格的客户来说值为 false。有监督机器学习的目标是发现导致客户流失的年龄和邮政编码模式,正如目标为“False”的客户所代表的那样。您可以使用此模型预测可能流失的客户,例如暂停其会员资格,或者提供保留激励。
Amazon Redshift 支持有监督学习,包括回归、二进制分类和多类分类。回归是指预测连续值的问题,例如客户的总支出。二进制分类是指预测两种结果之一的问题,例如预测客户是否流失。多类分类是指预测许多结果之一的问题,例如预测客户可能感兴趣的项目。数据分析师和数据科学家可以使用它来执行有监督学习,以解决范围包括预测、个性化或客户流失的各种问题。您还可以在预测哪些销售将关闭、收入预测、欺诈侦测和客户生命周期价值预测等问题中使用有监督学习。
Amazon Redshift ML 中的无监督学习
无监督学习使用机器学习算法对未标记的训练数据进行分析和分组。算法会发现隐藏的模式或分组。目标是对数据中的底层结构或分布进行建模,以了解有关数据的更多信息。
Amazon Redshift 支持使用 K-Means 集群算法来解决无监督学习问题。此算法可解决需要在数据中发现分组的集群问题。K-Means 算法尝试在数据中寻找离散分组。根据未分类数据的相似与不同之处进行分组和分区。通过分组,K-Means 算法以迭代方式确定最佳质心,并将每个成员分配给最近的质心。离同一质心最近的成员属于同一组。一个组的成员尽可能与同一组中的其它成员相似,并与其它组的成员尽可能不同。例如,K-Means 集群算法可用于对受疫情影响的城市进行分类,或根据消费品的受欢迎程度对城市进行分类。
使用 K-Means 算法时,您可以指定输入 k
,该值指定要在数据中寻找的集群数量。此算法的输出是一组 k 个质心。每个数据点属于离其最近的 k 个集群之一。每个集群通过其质心进行描述。质心可以视为集群的多维平均值。K-Means 算法对距离进行比较,以了解集群之间的差异。距离越大通常表示集群之间的差异越大。
预处理数据对 K-Means 很重要,因为它可以确保模型的特征保持在相同的尺度上并生成可靠的结果。Amazon Redshift 支持一些用于 CREATE MODEL 语句的 K-Means 预处理器,例如 StandardScaler、MinMax 和 NumericPassthrough。如果您不想对 K-Means 应用任何预处理,请明确选择 NumericPassthrough 作为转换器。有关 K-Means 参数的更多信息,请参阅带有 K-MANES 参数的 CREATE MODEL。
为了帮助您了解如何使用 K-Means 集群执行无监督训练,您可以观看以下视频。
Amazon Redshift ML 的术语和概念
以下术语用于描述一些 Amazon Redshift ML 概念:
-
Amazon Redshift 中的机器学习使用一个 SQL 命令训练模型。Amazon Redshift ML 和 Amazon SageMaker 管理所有数据转换、权限、资源使用情况以及适当模型的发现。
-
训练是 Amazon Redshift 通过将指定的数据子集运行到模型中来创建机器学习模型的阶段。Amazon Redshift 会自动启动 Amazon SageMaker 中的训练任务,并生成一个模型。
-
预测(也称为推理)是在 Amazon Redshift SQL 查询中使用模型来预测结果。推理时,Amazon Redshift 使用基于模型的预测函数作为大型查询的一部分来生成预测。预测在 Redshift 集群本地计算,从而实现高吞吐量、低延迟和零额外费用。
-
使用自带模型 (BYOM),您可以将在 Amazon Redshift 之外训练的模型与 Amazon SageMaker 结合使用,以用于 Amazon Redshift 本地的数据库内推理。Amazon Redshift ML 支持在本地推理中使用 BYOM。
-
本地推理在模型在 Amazon SageMaker 中预训练、由 Amazon SageMaker Neo 编译并在 Amazon Redshift ML 中本地化时使用。要将本地推理支持的模型导入到 Amazon Redshift,请使用 CREATE MODEL 命令。Amazon Redshift 通过调用 Amazon SageMaker Neo 导入预训练的 SageMaker 模型。您可以在此编译模型并将已编译的模型导入 Amazon Redshift。使用本地推理提高速度并降低成本。
-
远程推理在 Amazon Redshift 调用部署在 SageMaker 中的模型端点时使用。远程推理提供了调用所有类型的自定义模型和深度学习模型的灵活度,例如您在 Amazon SageMaker 中构建和部署的 TensorFlow 模型。
同样重要的是以下几点:
-
Amazon SageMaker 是一项完全托管的机器学习服务。借助 Amazon SageMaker,数据科学家和开发人员可以轻松地构建、训练模型,然后直接将模型部署到生产就绪托管环境中。有关 Amazon SageMaker 的信息,请参阅 Amazon SageMaker 开发人员指南中的什么是 Amazon SageMaker。
-
Amazon SageMaker Autopilot 是一个功能集,可根据您的数据自动训练和调整用于分类或回归的最佳机器学习模型。您可以保持完全的控制和可见性。Amazon SageMaker Autopilot 支持以表格格式输入数据。Amazon SageMaker Autopilot 提供自动数据清理和预处理、线性回归的自动算法选择、二进制分类和多类分类功能。它还支持自动超参数优化 (HPO)、分布式训练、自动实例和集群大小选择。有关 Amazon SageMaker Autopilot 的信息,请参阅 Amazon SageMaker 开发人员指南中的使用 Amazon SageMaker Autopilot 自动化模型开发。