Realizar análisis avanzados mediante Amazon Redshift ML - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Realizar análisis avanzados mediante Amazon Redshift ML

Documento creado por Po Hong (AWS)

Entorno: PoC o piloto

Tecnologías: análisis, machine learning e inteligencia artificial

Carga de trabajo: todas las demás cargas de trabajo

Servicios de AWS: Amazon Redshift; Amazon SageMaker

Resumen

En la nube de Amazon Web Services (AWS), puede utilizar el machine learning de Amazon Redshift (Amazon Redshift ML) para realizar análisis de ML de los datos almacenados en un clúster de Amazon Redshift o en Amazon Simple Storage Service (Amazon S3). Amazon Redshift ML admite el aprendizaje supervisado, que se suele utilizar para análisis avanzados. Los casos de uso de Amazon Redshift ML incluyen la previsión de ingresos, la detección de fraudes con tarjetas de crédito y las predicciones del valor de por vida del cliente (CLV) o la pérdida de clientes.

Amazon Redshift ML facilita a los usuarios de bases de datos crear, entrenar e implementar modelos de machine learning mediante comandos SQL estándar. Amazon Redshift ML utiliza Amazon SageMaker Autopilot para entrenar y ajustar automáticamente los mejores modelos de aprendizaje automático para su clasificación o regresión en función de sus datos, sin perder el control y la visibilidad.

Todas las interacciones entre Amazon Redshift, Amazon S3 y Amazon SageMaker se resumen y automatizan. Una vez entrenado e implementado el modelo de ML, pasa a estar disponible como función definida por el usuario (UDF) en Amazon Redshift y se puede usar en consultas de SQL.  

Este patrón complementa el tutorial Crear, entrenar e implementar modelos de aprendizaje automático en Amazon Redshift mediante SQL con Amazon Redshift ML del blog de AWS, y el tutorial Crear, entrenar e implementar un modelo de aprendizaje automático con SageMaker Amazon del Centro de recursos de introducción.

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta de AWS activa

  • Datos existentes en una tabla de Amazon Redshift

Habilidades

  • Familiaridad con los términos y conceptos que utiliza Amazon Redshift ML, incluidos machine learning, entrenamiento y predicción.. Para obtener más información, consulte Training ML models (Entrenar modelos de machine learning) en la documentación de Amazon Machine Learning (Amazon ML).

  • Experiencia en la configuración de usuarios, la administración de acceso y la sintaxis SQL estándar de Amazon Redshift. Para obtener más información, consulte Introducción a Amazon Redshift en la documentación de Amazon Redshift.

  • Conocimiento y experiencia en Amazon S3 y AWS Identity and Access Management (IAM). 

  • La experiencia en ejecución de comandos de la interfaz de la línea de comandos de AWS (AWS CLI) también es beneficiosa, pero no obligatoria.

Limitaciones

  • El clúster de Amazon Redshift y el bucket de Amazon S3 deben estar en la misma región de AWS.

  • El enfoque de este patrón solo admite modelos de aprendizaje supervisado, como la regresión, la clasificación binaria y la clasificación multiclase. 

Arquitectura

En los siguientes pasos se explica cómo funciona Amazon Redshift ML SageMaker para crear, entrenar e implementar un modelo de aprendizaje automático: 

  1. Amazon Redshift exporta los datos de entrenamiento a un bucket de S3.

  2. SageMaker El piloto automático preprocesa automáticamente los datos de entrenamiento.

  3. Una vez invocada la CREATE MODEL declaración, Amazon Redshift ML la utiliza SageMaker para la formación.

  4. SageMaker Autopilot busca y recomienda el algoritmo de aprendizaje automático y los hiperparámetros óptimos que optimizan las métricas de evaluación.

  5. Amazon Redshift ML registra el modelo de ML de salida como una función SQL en el clúster de Amazon Redshift.

  6. La función del modelo ML se puede utilizar en una instrucción SQL. 

Pila de tecnología

  • Amazon Redshift

  • SageMaker

  • Amazon S3

Herramientas

  • Amazon Redshift: Amazon Redshift es un servicio de almacenamiento de datos completamente administrado, de nivel empresarial y de escala de petabytes.

  • Amazon Redshift ML: Amazon Redshift machine learning (Amazon Redshift ML) es un servicio robusto basado en la nube que facilita el uso de la tecnología de machine learning a los analistas y científicos de datos con cualquier nivel de habilidades.

  • Amazon S3: Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento para Internet. 

  • Amazon SageMaker: SageMaker es un servicio de aprendizaje automático totalmente gestionado. 

  • Amazon SageMaker Autopilot: el SageMaker piloto automático es un conjunto de funciones que automatiza las tareas clave de un proceso de aprendizaje automático (AutoML).

Código

Puede crear un modelo de ML supervisado en Amazon Redshift mediante el siguiente código:

“CREATE MODEL customer_churn_auto_model FROM (SELECT state, account_length, area_code, total_charge/account_length AS average_daily_spend, cust_serv_calls/account_length AS average_daily_cases, churn FROM customer_activity WHERE record_date < '2020-01-01' ) TARGET churn FUNCTION ml_fn_customer_churn_auto IAM_ROLE 'arn:aws:iam::XXXXXXXXXXXX:role/Redshift-ML' SETTINGS ( S3_BUCKET 'your-bucket' );”)

Nota: El estado SELECT puede hacer referencia a las tablas normales de Amazon Redshift, a las tablas externas de Amazon Redshift Spectrum o a ambas.

Epics

TareaDescripciónHabilidades requeridas
Prepare un conjunto de datos para entrenamiento y prueba.

Inicie sesión en la consola de administración de AWS y abra la SageMaker consola de Amazon. Siga las instrucciones del tutorial Build, train, and deploy a machine learning model (Crear, entrenar e implementar un modelo de machine learning) para crear un archivo.csv o Apache Parquet con una columna de etiquetas (entrenamiento supervisado) y sin encabezado. 

Nota: Se recomienda mezclar el conjunto de datos sin procesar y dividirlo en un conjunto de entrenamiento para entrenar el modelo (70 %) y un conjunto de prueba para evaluar el rendimiento del modelo (30 %).

Científico de datos
TareaDescripciónHabilidades requeridas
Cree y configure un clúster de Amazon Redshift.

En la consola de Amazon Redshift, cree un clúster de acuerdo con sus requisitos. Para obtener más información, consulte Create a cluster (Crear un clúster) en la documentación de Amazon Redshift.  

Importante: los nuevos clústeres de Amazon Redshift deben crearse con la pista de mantenimiento SQL_PREVIEW. Para obtener más información acerca de las pistas de de previsualización, consulte Choosing cluster maintenance tracks (Seleccionar pistas de mantenimiento del clúster) en la documentación de Amazon Redshift.

Administrador de base de datos, arquitecto de la nube
Cree un bucket de S3 para almacenar los datos de entrenamiento y los artefactos del modelo.

En la consola de Amazon S3, cree un bucket de S3 para los datos de entrenamiento y prueba. Para obtener más información acerca de la creación de un bucket de S3, consulte Create an S3 bucket (Crear un bucket de S3) en Inicios rápidos de AWS. 

Importante: asegúrese de que el clúster de Amazon Redshift y el bucket de Amazon S3 se encuentren en la misma región. 

Administrador de base de datos, arquitecto de la nube
Cree y asocie una política de IAM al clúster de Amazon Redshift.

Cree una política de IAM para permitir que el clúster de Amazon Redshift SageMaker acceda a Amazon S3. Para las instrucciones y los pasos a seguir, consulte Cluster setup for using Amazon Redshift ML (Configuración del clúster para usar Amazon Redshift ML) en la documentación de Amazon Redshift.

Administrador de base de datos, arquitecto de la nube
Permita que los usuarios y grupos de Amazon Redshift accedan a esquemas y tablas.

Otorgue permisos para permitir que los usuarios y grupos de Amazon Redshift accedan a tablas y esquemas internos y externos. Para ver los pasos e instrucciones, consulte Managing permissions and ownership (Administrar los permisos y la propiedad) en la documentación de Amazon Redshift.

Administrador de base de datos
TareaDescripciónHabilidades requeridas
Cree y entrene el modelo de ML en Amazon Redshift.

Cree y entrene el modelo de ML en Amazon Redshift ML. Para obtener más información, consulte la instrucción CREATE MODEL en la documentación de Amazon Redshift.

Desarrollador, científico de datos
TareaDescripciónHabilidades requeridas
Realice una inferencia mediante la función del modelo de ML generado.

Para obtener más información sobre cómo realizar inferencias mediante la función del modelo de ML generado, consulte Prediction (Predicción) en la documentación de Amazon Redshift.

Científico de datos, usuario de inteligencia empresarial

Prepare a training and test dataset (Preparar un conjunto de datos para entrenamiento y prueba)

Prepare and configure the technology stack (Preparar y configurar la pila de tecnologías)

Create and train the ML model in Amazon Redshift (Crear y entrenar el modelo de ML en Amazon Redshift)

Perform batch inference and prediction in Amazon Redshift (Realizar inferencias y predicciones por lotes en Amazon Redshift)

Otros recursos