CREATE MODEL - Amazon Redshift

CREATE MODEL

Requisitos previos

Antes de utilizar la instrucción CREATE MODEL, complete los requisitos previos indicados en Configuración del clúster para utilizar Amazon Redshift ML. A continuación, se brinda un resumen de alto nivel de los requisitos previos.

  • Cree un clúster de Amazon Redshift con la consola de administración de AWS o la AWS Command Line Interface (AWS CLI)

  • Adjunte la política de AWS Identity and Access Management (IAM) mientras crea el clúster.

  • Para permitir que Amazon Redshift y SageMaker asuman el rol a la hora de interactuar con otros servicios, agregue la política de confianza adecuada al rol de IAM.

Para obtener detalles sobre el rol de IAM, la política de confianza y otros requisitos previos, consulte Configuración del clúster para utilizar Amazon Redshift ML.

A continuación, encontrará diferentes casos de uso para la instrucción CREATE MODEL.

Privilegios necesarios

Los siguientes privilegios son necesarios para CREATE MODEL:

  • Superusuario

  • Usuarios con el privilegio CREATE MODEL

  • Roles con el privilegio GRANT CREATE MODEL

Control de costes

Amazon Redshift ML utiliza los recursos de clúster existentes para crear modelos de predicción, por lo que no es necesario pagar costes adicionales. Sin embargo, es posible que tenga costes adicionales si necesita cambiar el tamaño del clúster o desea entrenar los modelos. Amazon Redshift ML utiliza Amazon SageMaker para entrenar modelos, lo que supone un coste adicional asociado. Hay formas de controlar los costes adicionales, como limitar el tiempo máximo que puede tardar el entrenamiento o limitar el número de ejemplos de formación utilizados a la hora de entrenar el modelo. Para obtener más información, consulte Costes para usar Amazon Redshift ML.

CREATE MODEL completo

A continuación, se resumen las opciones básicas de la sintaxis de CREATE MODEL completo.

Sintaxis de CREATE MODEL completo

A continuación, se muestra la sintaxis completa de la instrucción CREATE MODEL.

importante

Cuando cree un modelo con la instrucción CREATE MODEL, siga el orden de las palabras clave en la sintaxis que aparece a continuación.

CREATE MODEL model_name FROM { table_name | ( select_statement ) | 'job_name' } [ TARGET column_name ] FUNCTION function_name [ ( data_type [, ...] ) ] [ RETURNS data_type ] -- supported only for BYOM [ SAGEMAKER 'endpoint_name'[:'model_name']] -- supported only for BYOM remote inference IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } [ AUTO ON / OFF ] -- default is AUTO ON [ MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER | KMEANS | FORECAST } ] -- 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' | 'RMSE' | 'WAPE' | 'MAPE' | 'MASE' | 'AverageWeightedQuantileLoss' ) ] -- for AUTO ON: first 5 are valid -- for AUTO OFF: 6-13 are valid -- for FORECAST: 14-18 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 'amzn-s3-demo-bucket', | -- required TAGS 'string', | -- optional 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) HORIZON integer, | -- required if creating a forecast model FREQUENCY integer, | -- required if creating a forecast model PERCENTILES string, | -- optional if creating a forecast model MAX_BATCH_ROWS integer -- optional for BYOM remote inference ) ]

Parámetros

model_name

El nombre del modelo. El nombre del modelo en un esquema debe ser único.

FROM { table_name | ( select_query ) | 'job_name'}

Se trata del nombre de la tabla o la consulta que especifica los datos de formación. Pueden ser una tabla existente en el sistema o una consulta SELECT compatible con Amazon Redshift entre paréntesis, es decir, (). En el resultado de la consulta, debe haber al menos dos columnas.

TARGET column_name

Se trata del nombre de la columna que se convierte en el objetivo de predicción. La columna debe existir en la cláusula FROM.

FUNCTION function_name ( data_type [, ...] )

Se trata del nombre de la función que se creará y los tipos de datos de los argumentos de entrada. Puede proporcionar el nombre de un esquema de la base de datos en lugar del nombre de una función.

RETURNS data_type

El tipo de datos que se va a devolver desde la función del modelo. El tipo de datos SUPER de devolución solo se aplica a BYOM con inferencia remota.

SAGEMAKER 'endpoint_name'[:'model_name']

Se trata del nombre del punto de conexión de Amazon SageMaker. Si el nombre del punto de conexión apunta a un punto de conexión de múltiples modelos, agregue el nombre del modelo que se utilizará. El punto de conexión debe estar alojado en la misma Región de AWS que el clúster de Amazon Redshift.

IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}

Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando CREATE MODEL. También puede especificar un ARN de un rol de IAM para usar ese rol.

[AUTO ON/OFF]

Activa o desactiva la detección automática de CREATE MODEL de procesadores previos, algoritmos e hiperparámetros. Si especifica esta opción al crear un modelo de previsión, se debe utilizar un AutoPredictor, en el que Amazon Forecast aplica las combinaciones óptimas de algoritmos a cada serie temporal del conjunto de datos.

MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER | KMEANS | FORECAST }

(Opcional) Especifica el tipo de modelo. Puede especificar si desea formar un modelo de un tipo específico, como XGBoost, perceptron multicapa (MLP), KMEANS o Linear Learner, que son todos algoritmos compatibles con Amazon SageMaker Autopilot. Si no se especifica el parámetro, se buscan todos los tipos de modelos admitidos durante la formación para encontrar el mejor modelo. También puede crear un modelo de previsión en Redshift ML para crear previsiones precisas de series temporales.

PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )

(Opcional) Especifica el tipo de problema. Si conoce el tipo de problema, puede restringir a Amazon Redshift a que busque solo el mejor modelo de ese tipo específico. Si no se especifica este parámetro, se detecta un tipo de problema durante la formación, en función de sus datos.

OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC' | 'reg:squarederror' | 'reg:squaredlogerror' | 'reg:logistic' | 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge' | 'multi:softmax' | 'RMSE' | 'WAPE' | 'MAPE' | 'MASE' | 'AverageWeightedQuantileLoss' )

(Opcional) Especifica el nombre de la métrica de objetivo utilizada para medir la calidad predictiva de un sistema de machine learning. Esta métrica se optimiza durante la formación para proporcionar la mejor estimación para los valores del parámetro del modelo a partir de los datos. Si no se especifica una métrica de forma explícita, el comportamiento predeterminado es utilizar automáticamente MSE para regresión, F1 para clasificación binaria y Accuracy para clasificación multiclase. Para obtener más información acerca de los objetivos, consulte AutoMLJobObjective en la Referencia de la API de Amazon SageMaker y parámetros de tareas de aprendizaje en la documentación de XGBOOST. Los valores RMSE, WAPE, MAPE, MASE y AverageWeightedQuantileLoss solo son aplicables a los modelos de previsión. Para obtener más información, consulte la operación de la API CreateAutoPredictor.

PREPROCESSORS "string"

(Opcional) Especifica ciertas combinaciones de procesadores previos para determinados conjuntos de columnas. El formato es una lista de columnSets y las transformaciones adecuadas que se aplicarán a cada conjunto de columnas. Amazon Redshift aplica todos los transformadores de una lista de transformadores específica a todas las columnas del ColumnSet correspondiente. Por ejemplo, para aplicar OneHotEncoder con Imputer a las columnas t1 y t2, utilice el comando de muestra que aparece a continuación.

CREATE MODEL customer_churn FROM customer_data TARGET 'Churn' FUNCTION predict_churn IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } 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 'amzn-s3-demo-bucket' )
HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value’ (,..) ) }

Especifica si los parámetros de XGBoost predeterminados se utilizan o se sustituyen con valores especificados por el usuario. Los valores deben ir entre comillas simples. Los siguientes son ejemplos de parámetros para XGBoost y sus valores predeterminados.

Nombre del parámetro Valor del parámetro Valor predeterminado Notas

num_class

Entero

Es obligatorio para la clasificación multiclase.

N/A

num_round

Entero

100

N/A

tree_method

Cadena Auto N/A

max_depth

Entero 6 [0, 10]
min_child_weight Flotante 1 MinValue: 0, MaxValue: 120
subsample Flotante 1 MinValue: 0,5, MaxValue: 1
gamma Flotante 0 MinValue: 0, MaxValue: 5
alpha Flotante 0 MinValue: 0, MaxValue: 1000
eta Flotante 0.3 MinValue: 0,1, MaxValue: 0,5
colsample_byleve Flotante 1 MinValue: 0,1, MaxValue: 1
colsample_bynode Flotante 1 MinValue: 0,1, MaxValue: 1
colsample_bytree Flotante 1 MinValue: 0,5, MaxValue: 1
lambda Flotante 1 MinValue: 0, MaxValue: 1000
max_delta_step Entero 0 [0, 10]
SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | TAGS 'string', | KMS_KEY_ID 'kms_string' , | S3_GARBAGE_COLLECT on / off, | MAX_CELLS integer , | MAX_RUNTIME (,...) , | HORIZON integer, | FREQUENCY forecast_frequency, | PERCENTILES matriz de cadenas )

La cláusula S3_BUCKET especifica la ubicación de Amazon S3 que se utiliza para almacenar resultados intermedios.

(Opcional) El parámetro TAGS es una lista separada por comas de pares clave-valor que puede utilizar para etiquetar recursos creados en Amazon SageMaker y Amazon Forecast. Las etiquetas lo ayudan a organizar los recursos y a asignar los costos. Los valores del par son opcionales, por lo que puede crear etiquetas mediante el formato key=value o simplemente con la creación de una clave. Para obtener más información sobre las etiquetas en Amazon Redshift, consulte Información general del proceso de etiquetado.

(Opcional) KMS_KEY_ID especifica si Amazon Redshift utiliza cifrado del lado del servidor con una clave de AWS KMS para proteger los datos en reposo. Los datos en tránsito están protegidos con la capa de conexión segura (SSL).

(Opcional) S3_GARBAGE_COLLECT {ON|OFF} especifica si Amazon Redshift realiza la recopilación de elementos no utilizados en los conjuntos de datos resultantes utilizados para formar modelos, además de los propios modelos. Si se establece en OFF, los conjuntos de datos resultantes utilizados para formar modelos y los modelos permanecen en Amazon S3 y se pueden utilizar para otros fines. Si se establece en ON, Amazon Redshift elimina los artefactos en Amazon S3 una vez que se completa la formación. El valor predeterminado es ON.

(Opcional) MAX_CELLS especifica el número de celdas de los datos de formación. Este valor se obtiene de multiplicar el número de registros (en la tabla o en la consulta de formación) por el número de columnas. El valor predeterminado es 1 000 000.

(Opcional) MAX_RUNTIME especifica la cantidad máxima de tiempo que dura la formación. Los trabajos de formación suelen completarse antes en función del tamaño del conjunto de datos. Especifica la cantidad máxima de tiempo que debería tomar la formación. El valor predeterminado es 5400 (90 minutos).

HORIZON especifica el número máximo de predicciones que puede devolver el modelo de previsión. Una vez que el modelo esté formado, no podrá cambiar este entero. Este parámetro es obligatorio si se entrena un modelo de previsión.

FREQUENCY especifica los detalles en unidades de tiempo que desea que sean las previsiones. Las opciones disponibles son Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min. Este parámetro es obligatorio si se entrena un modelo de previsión.

(Opcional) PERCENTILES es una cadena delimitada por comas que especifica los tipos de previsión que se utilizan para entrenar un predictor. Los tipos de previsión pueden ser cuantiles de 0,01 a 0,99, en incrementos de 0,01 o más. También puede especificar la previsión media con la media. Puede especificar un máximo de cinco tipos de previsión.

MAX_BATCH_ROWS integer

(Opcional) El número máximo de filas que Amazon Redshift envía en una sola solicitud por lotes para una única invocación de SageMaker. Solo se admite para BYOM con inferencia remota. El valor mínimo de este parámetro es 1. El valor máximo es INT_MAX o 2 147 483 647. Este parámetro solo es necesario cuando el tipo de datos de entrada y de devolución son SUPER. El valor predeterminado es INT_MAX o 2 147 483 647.