CREATE MODEL - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

CREATE MODEL

CREATE MODEL 语句提供了用于创建模型的参数数量的灵活度。根据他们的需求或问题类型,用户可以选择其首选预处理器、算法、问题类型或超参数。

在使用 CREATE MODEL 语句之前,请完成 用于使用 Amazon Redshift ML 的集群设置 中的先决条件。下面简要概述了这些先决条件。

  • 使用 Amazon 管理控制台或 Amazon 命令行界面 (Amazon CLI).创建 Amazon Redshift 集群。

  • 在创建集群时附加 Amazon Identity and Access Management (IAM) 策略。

  • 要允许 Amazon Redshift 和 SageMaker 代入角色以便与其他服务交互,请向 IAM 角色添加相应的信任策略。

有关 IAM 角色、信任策略和其他先决条件的详细信息,请参阅用于使用 Amazon Redshift ML 的集群设置

您可以在下面找到 CREATE MODEL 语句的不同使用案例。

简单 CREATE MODEL

下面总结了 CREATE MODEL 语法的基本选项。

简单的 CREATE MODEL 语法

CREATE MODEL model_name FROM { table_name | ( select_query ) } TARGET column_name FUNCTION prediction_function_name IAM_ROLE 'iam_role_arn' SETTINGS ( S3_BUCKET 'bucket', [ MAX_CELLS integer ] )

简单 CREATE MODEL 参数

model_name

模型的名称。schema 中的模型名称必须是唯一的。

FROM { table_name | ( select_query ) }

指定训练数据的 table_name 或查询。它们可以是系统中的现有表,也可以是用括号(即 ())括起来的兼容 Amazon RedShift 的 SELECT 查询。查询结果中必须至少有两列。

TARGET column_name

成为预测目标的列的名称。FROM 子句中必须存在该列。

FUNCTION prediction_function_name

一个值,它指定由 CREATE MODEL 生成并用于使用此模型进行预测的 Amazon Redshift 机器学习函数的名称。该函数在与模型对象相同的 schema 中创建,并且可以重载。

Amazon Redshift 机器学习支持模型,例如用于回归和分类的 Xtreme Gradient Boosted 树 (XGBoost) 模型。

IAM_ROLE 'iam_role_arn'

Amazon Identity and Access Management (IAM) 角色的 Amazon Resource Name (ARN),您的集群使用该角色进行身份验证和授权。IAM 角色至少必须有权在 Amazon S3 存储桶上执行 LIST 操作,该存储桶用于卸载训练数据和暂存 Amazon SageMaker 构件。下面显示了单个 ARN 的 IAM_ROLE 参数字符串的语法。

IAM_ROLE 'arn:aws:iam::aws-account-id:role/role-name'
S3_BUCKET 'bucket'

您之前创建的 Amazon S3 存储桶的名称,该存储桶用于在 Amazon Redshift 和 SageMaker 之间共享训练数据和构件。在卸载训练数据之前,Amazon Redshift 会在此存储桶中创建一个子文件夹。训练完成后,Amazon Redshift 会删除创建的子文件夹及其内容。

MAX_CELLS 整数

要从 FROM 子句中导出的最大单元格数。默认值为 1000000。

单元格数量是训练数据中的行数(由 FROM 子句表或查询生成)乘以列数的乘积。如果训练数据中的单元格数大于 max_cells 参数指定的单元格数,则 CREATE MODEL 会缩小 FROM 子句训练数据的取样,以减小 MAX_CELLS 下面的训练集的大小。允许更大的训练数据集可以产生更高的精度,但也意味着模型需要更长的时间来训练并且成本更高。

有关使用 Amazon Redshift 的成本的信息,请参阅使用 Amazon Redshift ML 的成本

有关与各种单元格数量相关的成本免费试用详细信息,请参阅 Amazon Redshift 定价

根据用户指导创建模型

除了 简单 CREATE MODEL 中所述的选项之外,您还可以在下面找到 CREATE MODEL 选项的描述。

预设情况下,CREATE MODEL 会搜索特定数据集的预处理和模型的最佳组合。您可能需要对模型进行额外的控制或引入其他领域知识(例如问题类型或目标)。在客户流失情况下,如果结果“客户不活跃”很少,则 F1 目标通常优先于精度目标。由于高精度模型可能会始终预测“客户处于活动状态”,因此可以实现高精度,但商业价值却很少。有关 F1 目标的信息,请参阅 Amazon SageMaker API 参考中的 AutoMLJobObjective

然后,CREATE MODEL 将遵循您对目标等指定方面的建议。同时,CREATE MODEL 会自动发现最佳预处理器和最佳超参数。

使用用户指导语法创建模型

CREATE MODEL 在您可以指定的方面以及 Amazon Redshift 自动发现的方面提供了更大的灵活度。

CREATE MODEL model_name FROM { table_name | ( select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE 'iam_role_arn' [ MODEL_TYPE { XGBOOST | MLP } ] [ PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION ) ] [ OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC') ] SETTINGS ( S3_BUCKET 'bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )

使用用户指导参数创建模型

MODEL_TYPE { XGBOOST | MLP }

(可选)指定模型类型。您可以指定是否要训练特定模型类型的模型,如 XGBoost 或多层感知器 (MLP)。MLP 是 Amazon SageMaker Autopilot 支持的深度学习算法。如果未指定参数,则在训练期间搜索所有受支持的模型类型,以找到最佳模型。

PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )

(可选)指定问题类型。如果您知道问题类型,您可以将 Amazon Redshift 限制为仅搜索该特定模型类型的最佳模型。如果未指定此参数,则会在训练期间根据您的数据发现问题类型。

OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC')

(可选)指定用于测量机器学习系统预测质量的目标指标的名称。此指标在训练过程中进行了优化,以便从数据中为模型参数值提供最佳估计值。如果未明确指定指标,则默认行为是自动使用 MSE:用于回归,F1:用于二进制分类,精度:用于多类分类。有关目标的更多信息,请参阅 Amazon SageMaker API 参考中的 AutoMLJobObjective

MAX_CELLS 整数

(可选)指定训练数据中的单元格的数量。此值是记录数(在训练查询或表中)乘以列数的乘积。默认值为 1000000。

MAX_RUNTIME 整数

(可选)指定最长训练时间。根据数据集的大小,训练任务通常可以更早完成。这将指定训练所需的最长时间。默认值为 5400(90 分钟)。

S3_GARBAGE_COLLECT { ON | OFF }

(可选)指定 Amazon Redshift 是否对用于训练模型的生成数据集和模型执行垃圾回收。如果设置为 OFF,则用于训练模型的生成数据集和模型将保留在 Amazon S3 中,并可用于其他目的。如果设置为 ON,则 Amazon Redshift 会在训练完成后删除 Amazon S3 中的构件。默认为 ON。

KMS_KEY_ID 'kms_key_id'

(可选)指定 Amazon Redshift 是否将服务器端加密与 Amazon KMS 键结合使用来保护静态数据。传输中的数据由安全套接字层 (SSL) 保护。

PREPROCESSORS 'string'

(可选)将预处理器的某些组合指定为某些列的集合。格式是 columnSet 的列表,以及要应用于每组列的适当转换。Amazon Redshift 将特定转换器列表中的所有转换器应用于相应 ColumnSet 中的所有列。例如,要将带有 Imputer 的 OneHotEncoder 应用于列 t1 和 t2,请使用下面的示例命令。

CREATE MODEL customer_churn FROM customer_data TARGET 'Churn' FUNCTION predict_churn IAM_ROLE 'iam_role' PROBLEM_TYPE BINARY_CLASSIFICATION OBJECTIVE 'F1' PREPROCESSORS '[ ... {"ColumnSet": [ "t1", "t2" ], "Transformers": [ "OneHotEncoder", "Imputer" ] }, {"ColumnSet": [ "t3" ], "Transformers": [ "OneHotEncoder" ] }, {"ColumnSet": [ "temp" ], "Transformers": [ "Imputer", "NumericPassthrough" ] } ]' SETTINGS ( S3_BUCKET 'bucket' )

Amazon Redshift 支持以下转换器:

  • OneHotEncoder – 通常用于将离散值编码为具有一个非零值的二进制向量。该转换器适用于许多机器学习模型。

  • OrdinalEncoder – 将离散值编码为单个整数。该转换器适用于特定机器学习模型,如 MLP。

  • NumericPassthrough – 将输入按原样传递到模型中。

  • Imputer – 填充缺少的值,而不是数字 (NaN) 值。

  • ImputerWithIndicator – 填充缺少值和 NaN 值。此转换器器还会创建一个指示器,指示是否有任何值缺失以及被填充。

  • Normalizer – 标准化值,这可以提高许多机器学习算法的性能。

  • DateTimeVectorizer – 创建向量嵌入,表示可在机器学习模型中使用的日期时间数据类型列。

  • PCA – 将数据投影到低维空间中,以减少功能数量,同时保留尽可能多的信息。

Amazon Redshift ML 存储经过训练的转换器,并将其作为预测查询的一部分自动应用。在从模型生成预测时,您不需要指定它们。

带有 AUTO OFF 的 CREATE XGBoost 模型

AUTO OFF CREATE MODEL 的目标通常与默认的 CREATE MODEL 不同。

作为高级用户,在训练这些模型时便已经知道所需的模型类型和要使用的超参数,因此,可以使用带有 AUTO OFF 的 CREATE MODEL 关闭预处理器和超参数的 CREATE MODEL 自动发现。为此,您可以显式指定模型类型。XGBoost 目前是 AUTO 被设置为 OFF 时支持的唯一模型类型。您可以指定超参数。Amazon Redshift 对您指定的任何超参数使用默认值。

使用 AUTO OFF 语法创建模型

CREATE MODEL model_name FROM { table_name | (select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE 'iam_role_arn' AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE { 'reg:squarederror' | 'reg:squaredlogerror' | 'reg:logistic' | 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge' | 'multi:softmax' | 'rank:pairwise' | 'rank:ndcg' } HYPERPARAMETERS DEFAULT EXCEPT ( NUM_ROUND '10', ETA '0.2', NUM_CLASS '10', (, ...) ) PREPROCESSORS 'none' SETTINGS ( S3_BUCKET 'bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )

使用 AUTO OFF 参数创建 XGBoost 模型

AUTO OFF

关闭预处理器、算法和超参数选择的 CREATE MODEL 自动发现。

MODEL_TYPE XGBOOST

指定使用 XGBOOST 来训练模型。

OBJECTIVE str

指定算法识别的目标。Amazon Redshift 支持 reg:squarederror、reg:squaredlogerror、reg:logistic、reg:pseudohubererror、reg:tweedie、binary:logistic、binary:hinge、multi:softmax。有关这些目标的更多信息,请参阅 XGBoost 文档中的学习任务参数

HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value’ (,..) ) }

指定默认的 XGBoost 参数是被使用还是被用户指定的值覆盖。值必须用单引号引起来。以下是 XGBoost 的参数示例及其默认值。

参数名称 参数值 默认值 备注

num_class

整数

对于多类分类是必需的。

不适用

num_round

整数

100

不适用

tree_method

字符串 自动 不适用

max_depth

整数 6 [0, 10]
min_child_weight Float 1 最小值:0,最大值:120
subsample Float 1 最小值:0.5,最大值:1
gamma Float 0 最小值:0,最大值:5
alpha Float 0 最小值:0,最大值:1000
eta Float 0.3 最小值:0.1,最大值:0.5
colsample_byleve Float 1 最小值:0.1,最大值:1
colsample_bynode Float 1 最小值:0.1,最大值:1
colsample_bytree Float 1 最小值:0.5,最大值:1
lambda Float 1 最小值:0,最大值:1000
max_delta_step 整数 0 [0, 10]

以下示例为 XGBoost 准备数据。

DROP TABLE IF EXISTS abalone_xgb; CREATE TABLE abalone_xgb ( length_val float, diameter float, height float, whole_weight float, shucked_weight float, viscera_weight float, shell_weight float, rings int, record_number int); COPY abalone_xgb FROM 's3://redshift-downloads/redshift-ml/abalone_xg/' REGION 'us-east-1' IAM_ROLE 'arn:aws:iam::467896856988:role/Redshift-ML' IGNOREHEADER 1 CSV;

以下示例创建具有指定高级选项的 XGBoost 模型,如 MODEL_TYPE、OBJECTIVE 和 PREPROCESSORS。

DROP MODEL abalone_xgboost_multi_predict_age; CREATE MODEL abalone_xgboost_multi_predict_age FROM ( SELECT length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight, rings FROM abalone_xgb WHERE record_number < 2500 ) TARGET rings FUNCTION ml_fn_abalone_xgboost_multi_predict_age IAM_ROLE 'arn:aws:iam::XXXXXXXXXXXX:role/Redshift-ML' AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE 'multi:softmax' PREPROCESSORS 'none' HYPERPARAMETERS DEFAULT EXCEPT (NUM_ROUND '100', NUM_CLASS '30') SETTINGS (S3_BUCKET 'your-bucket');

以下示例使用推断查询来预测记录编号大于 200 的鱼的年龄。它使用从上述命令创建的函数 ml_fn_abalone_xgboost_multi_predict_age。

select ml_fn_abalone_xgboost_multi_predict_age(length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight)+1.5 as age from abalone_xgb where record_number > 2500;

自带模型 (BYOM)

Amazon Redshift ML 支持使用自带模型 (BYOM) 进行本地或远程推理。

下面总结了 BYOM 的 CREATE MODEL 语法的选项。您可以将在 Amazon Redshift 之外训练的模型与 Amazon SageMaker 结合使用,以用于 Amazon Redshift 本地的数据库内推理。Amazon Redshift ML 支持在本地或远程推理中使用 BYOM。

用于本地推理的 CREATE MODEL 语法

下面介绍了用于本地推理的 CREATE MODEL 语法。

CREATE MODEL model_name FROM ('job_name' | 's3_path' ) FUNCTION function_name ( data_type [, ...] ) RETURNS data_type IAM_ROLE 'iam-role-arn' [ SETTINGS ( S3_BUCKET 'bucket', | --required KMS_KEY_ID 'kms_string') --optional ];

Amazon Redshift 目前仅支持针对 BYOM 的预先训练的 XGBoost 和 MLP 模型。您可以使用此路径导入 SageMaker Autopilot 和直接在 Amazon SageMaker 中训练的模型,以便进行本地推理。

用于本地推理的 CREATE MODEL 参数

model_name

模型的名称。schema 中的模型名称必须是唯一的。

FROM ('job_name' | 's3_path' )

job_name 将 Amazon SageMaker 任务名称用作输入。任务名称可以是 Amazon SageMaker 训练任务名称,也可以是 Amazon SageMaker Autopilot 任务名称。任务必须在拥有 Amazon Redshift 集群的相同Amazon账户中创建。

's3_path' 指定创建模型时要使用的 .tar.gz 模型构件文件的 S3 位置。

FUNCTION function_name ( data_type [, ...] )

要创建的函数的名称以及输入参数的数据类型。您可以提供 schema 名称。

RETURNS data_type

函数返回的值的数据类型。

IAM_ROLE 'iam_role_arn'

Amazon Identity and Access Management (IAM) 角色的 Amazon Resource Name (ARN),您的集群使用该角色进行身份验证和授权。

下面显示了单个 ARN 的 IAM_ROLE 参数字符串的语法。

IAM_ROLE 'arn:aws:iam::aws-account-id:role/role-name'
SETTINGS ( S3_BUCKET 'bucket', | KMS_KEY_ID 'kms_string')

S3_BUCKET 子句指定用于存储中间结果的 Amazon S3 位置。

(可选)KMS_KEY_ID 子句指定 Amazon Redshift 是否将服务器端加密与 Amazon KMS 键结合使用来保护静态数据。传输中的数据由安全套接字层 (SSL) 保护。

有关更多信息,请参阅根据用户指导创建模型

用于本地推理的 CREATE MODEL 语法示例

以下示例创建之前在 Amazon Redshift 之外的 Amazon SageMaker 中训练过的模型。由于 Amazon Redshift ML 支持模型类型进行本地推理,因此以下 CREATE MODEL 将创建一个可在 Amazon Redshift 中本地使用的函数。您可以提供 SageMaker 训练任务名称。

CREATE MODEL customer_churn FROM 'training-job-customer-churn-v4' FUNCTION customer_churn_predict (varchar, int, float, float) RETURNS int IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-ML' SETTINGS (S3_BUCKET 'your-bucket');

创建模型后,您可以将函数 customer_churn_predict 与指定参数类型结合使用以进行预测。

用于远程推理的 CREATE MODEL 语法

下面介绍了用于远程推理的 CREATE MODEL 语法。

CREATE MODEL model_name FUNCTION function_name ( data_type [, ...] ) RETURNS data_type SAGEMAKER 'endpoint_name'[:'model_name'] IAM_ROLE 'iam-role-arn';

用于远程推理的 CREATE MODEL 参数

model_name

模型的名称。schema 中的模型名称必须是唯一的。

FUNCTION fn_name ( [data_type] [, ...] )

函数的名称和输入参数的数据类型。您可以提供 schema 名称。

RETURNS data_type

函数返回的值的数据类型。

SAGEMAKER 'endpoint_name'[:'model_name']

Amazon SageMaker 端点的名称。如果端点名称指向多模型端点,请添加要使用的模型名称。端点必须与 Amazon Redshift 集群托管于同一 Amazon 区域。

IAM_ROLE 'iam_role_arn'

Amazon Identity and Access Management (IAM) 角色的 Amazon Resource Name (ARN),您的集群使用该角色进行身份验证和授权。IAM 角色至少必须具有对 Amazon SageMaker 的访问权限,才能访问暂存任何 Amazon SageMaker 构件的端点。

下面显示了单个 ARN 的 IAM_ROLE 参数字符串的语法。

IAM_ROLE 'arn:aws:iam::aws-account-id:role/role-name'

当模型部署到 SageMaker 端点时,SageMaker 会在 Amazon Redshift 中创建模型的信息。然后它通过外部函数执行推理。您可以使用 SHOW MODEL 命令查看 Amazon Redshift 集群上的模型信息。

用于远程推理的 CREATE MODEL 使用说明

在使用 CREATE MODEL 进行远程推理之前,请考虑以下事项:

  • 模型必须通过 SageMaker 中的文本或 CSV 内容类型接受逗号分隔值 (CSV) 格式的输入。

  • 端点必须由拥有 Amazon Redshift 集群的相同Amazon账户中托管。

  • 模型的输出必须是创建函数时指定的类型的单个值,格式为逗号分隔值 (CSV),方法是通过 SageMaker 中的文本或 CSV 的内容类型。

  • 模型接受 null 值作为空字符串。

  • 确保 Amazon SageMaker 端点有足够的资源来容纳来自 Amazon Redshift 的推理调用,或者可以自动扩展 Amazon SageMaker 端点。

用于远程推理的 CREATE MODEL 语法示例

以下示例创建一个使用 SageMaker 端点进行预测的模型。确保端点正在运行以进行预测,并在 CREATE MODEL 命令中指定其名称。

CREATE MODEL remote_customer_churn FUNCTION remote_fn_customer_churn_predict (varchar, int, float, float) RETURNS int SAGEMAKER 'customer-churn-endpoint' IAM_ROLE 'arn:aws:iam::0123456789012:role/Redshift-ML';

Full CREATE MODEL

下面总结了完整的 CREATE MODEL 语法的基本选项。

Full CREATE MODEL 语法

以下是 CREATE MODEL 语句的完整语法。此语法在 AUTO ON semiautomatic 根据用户指导创建模型 和 AUTO OFF 带有 AUTO OFF 的 CREATE XGBoost 模型 结合使用时使用。此语法还包括 BYOM 的 CREATE MODEL 语句。

重要

使用 CREATE MODEL 语句创建模型时,请按照以下语法中关键词的顺序进行操作。

CREATE MODEL model_name FROM { table_name | ( select_statement ) | 'job_name' } [ TARGET column_name ] FUNCTION function_name ( data_type [, ...] ) IAM_ROLE 'iam_role_arn' [ AUTO ON / OFF ] -- default is AUTO ON [ MODEL_TYPE { XGBOOST | MLP } ] -- not required for non AUTO OFF case, default is the list of all supported types -- required for AUTO OFF [ PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION ) ] -- not supported when AUTO OFF [ OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1_Macro' | 'AUC' | 'reg:squarederror' | 'reg:squaredlogerror'| 'reg:logistic'| 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge', 'multi:softmax' ) ] -- for AUTO ON: first 5 are valid -- for AUTO OFF: 6-13 are valid [ PREPROCESSORS 'string' ] -- required for AUTO OFF, when it has to be 'none' -- optional for AUTO ON [ HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( Key 'value' (,...) ) } ] -- support XGBoost hyperparameters, except OBJECTIVE -- required and only allowed for AUTO OFF -- default NUM_ROUND is 100 -- NUM_CLASS is required if objective is multi:softmax (only possible for AUTO OFF) [ SETTINGS ( S3_BUCKET 'bucket', | -- required KMS_KEY_ID 'kms_string', | -- optional S3_GARBAGE_COLLECT on / off, | -- optional, defualt is on. MAX_CELLS integer, | -- optional, default is 1,000,000 MAX_RUNTIME integer (, ...) -- optional, default is 5400 (1.5 hours) ) ]

使用说明

使用 CREATE MODEL 时,请注意以下事项:

  • CREATE MODEL 语句在异步模式下运行,并在将训练数据导出到 Amazon S3 时返回。Amazon SageMaker 中的其余训练步骤将在后台进行。当训练正在进行时,相应的推理函数可见,但无法运行。您可以查询 STV_ML_MODEL_INFO 以查看训练状态。

  • 预设情况下,在 Auto 模型中,训练最多可以在后台运行 90 分钟,并且可以延长。要取消训练,只需运行 DROP MODEL 命令。

  • 您用于创建模型的 Amazon Redshift 集群和用于暂存训练数据和模型构件的 Amazon S3 存储桶必须位于同一 Amazon 区域。

  • 在模型训练期间,Amazon Redshift 和 SageMaker 将中间构件存储在您提供的 Amazon S3 存储桶中。预设情况下,Amazon Redshift 会在 CREATE MODEL 操作结束时执行垃圾回收。Amazon Redshift 从 Amazon S3 中删除这些对象。要在 Amazon S3 上保留这些构件,请设置 S3_GARBAGE COLLECT OFF 选项。

  • 您必须在 FROM 子句中提供的训练数据中至少使用 500 行。

  • 使用 CREATE MODEL 语句时,最多只能在 FROM { table_name | ( select_query ) } 子句中指定 256 个功能(输入)列。

  • 对于 AUTO ON,您可以用作训练集的列类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL、REAL、DOUBLE、BOOLEAN、CHAR、VARCHAR、DATE、TIME、TIMETZ、TIMESTAMP 和 TIMESTAMPTZ。对于 AUTO OFF,您可以用作训练集的列类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL、REAL、DOUBLE 和 BOOLEAN。

  • 不能使用 DECIMAL、DATE、TIME、TIMETZ、TIMESTAMP、TIMESTAMPTZ、GEOMETRY、HLLSKETCH 或 SUPER 作为目标列类型。

  • 要提高模型精度,请执行以下操作之一:

    • 在 FROM 子句中指定训练数据时,在 CREATE MODEL 命令中添加尽可能多的相关列。

    • 对于 MAX_RUNTIME 和 MAX_CELLS,请使用较大的值。此参数的值越大,就会增加训练模型的成本。

  • 一旦计算训练数据并导出到 Amazon S3 存储桶后,CREATE MODEL 语句执行就会立即返回。在此之后,您可以使用 SHOW MODEL 命令检查训练的状态。当在后台训练的模型失败时,可以使用 SHOW MODEL 检查错误。您无法重试失败的模型。使用 DROP MODEL 移除失败的模型并重新创建新模型。有关 SHOW MODEL 的更多信息,请参阅SHOW MODEL

  • 本地 BYOM 支持的模型类型与 Amazon Redshift ML 为非 BYOM 案例支持的模型类型相同。Amazon Redshift 支持普通的 XGBoost 或 MLP 模型(使用 XGBoost 版本 1.0 或更高版本),无需预处理器和经过 Amazon SageMaker Autopilot 训练的 XGBoost 模型。它支持后者与 Autopilot 指定的预处理器,该预处理器也由 Amazon SageMaker Neo 提供支持。

  • 如果您的 Amazon Redshift 集群增强了为 Virtual Private Cloud (VPC) 启用的路由,请确保为您的集群所在的 VPC 创建 Amazon S3 VPC 终端节点和 SageMaker VPC 终端节点。这样做使得流量可以在 CREATE MODEL 期间通过您的 VPC 在服务之间运行。