Generación de predicciones de machine learning sin escribir código
GUÍA DE INTRODUCCIÓN
Información general
Lo que aprenderá
En esta guía, aprenderá a hacer lo siguiente:
- Importar conjuntos de datos.
- Seleccionar la variable de destino para la clasificación.
- Inspeccionar conjuntos de datos visualmente.
- Crear un modelo de ML con la característica SageMaker Canvas Quick Build.
- Comprender las características y métricas del modelo.
- Generar y comprender predicciones masivas y únicas.
Requisitos previos
Antes de comenzar esta guía, necesitará lo siguiente:
- Una cuenta de AWS: si aún no tiene una cuenta, siga la guía de introducción a la Configuración de su entorno para obtener una descripción general rápida.
Experiencia en AWS
Principiante
Tiempo de realización
20 minutos
Costo de realización
Consulte los precios de SageMaker Canvas para estimar el costo de este tutorial.
Requisitos
Debe iniciar sesión en una cuenta de AWS.
Servicios utilizados
Amazon SageMaker Canvas
Última actualización
28 de junio de 2022
Caso de uso
En este tutorial, creará un modelo de ML que puede predecir el tiempo estimado de llegada (ETA) de los envíos (medido en días). Utilizará un conjunto de datos que contiene datos de envío completos para los productos entregados, incluido el tiempo estimado, el envío, la prioridad, el transportista y el origen.
Paso 1: configurar el dominio de Amazon SageMaker Studio
Una cuenta de AWS solo puede tener un dominio de SageMaker Studio por región de AWS. Si ya tiene un dominio de SageMaker Studio en la región Este de EE. UU. (Norte de Virginia), siga la guía de configuración de SageMaker Studio para adjuntar las políticas de AWS IAM requeridas a su cuenta de SageMaker Studio; luego omita el paso 1 y continúe directamente con el paso 2.
Si no tiene un dominio de SageMaker Studio existente, continúe con el paso 1 a fin de ejecutar una plantilla de AWS CloudFormation que cree un dominio de SageMaker Studio y agregue los permisos necesarios para el resto de este tutorial.
Elija el enlace de la pila de AWS CloudFormation. Este enlace abre la consola de AWS CloudFormation y crea su dominio de SageMaker Studio y un usuario denominado studio-user. También agrega los permisos necesarios a su cuenta de SageMaker Studio. En la consola de CloudFormation, confirme que Este de EE. UU. (Norte de Virginia) sea la región que se muestra en la esquina superior derecha. El nombre de la pila debe ser CFN-SM-IM-Lambda-Catalog y no debe cambiarse. Esta pila tarda unos 10 minutos en crear todos los recursos.
Esta pila asume que ya tiene una VPC pública configurada en su cuenta. Si no tiene una VPC pública, consulte VPC con una única subred pública para obtener información sobre cómo crear una VPC pública.
Seleccione I acknowledge that AWS CloudFormation might create IAM resources (Acepto que AWS CloudFormation podría crear recursos de IAM) y luego elija Create stack (Crear pila).
En el panel de CloudFormation, elija Stacks (Pilas). La pila tarda unos 10 minutos en crearse. Cuando se crea la pila, su estado debería cambiar de CREATE_IN_PROGRESS a CREATE_COMPLETE.
Paso 2: iniciar sesión en SageMaker Canvas y cargar el conjunto de datos en el bucket de Amazon S3
Ingrese SageMaker Canvas en la barra de búsqueda en la consola de AWS y vaya a SageMaker Canvas.
Elija Canvas en panel de control izquierdo y luego elija US East (N. Virginia) (Este de EE. UU. [Norte de Virginia]) de la lista desplegable Region (Región) en la parte superior derecha.
- En la página de SageMaker Canvas, seleccione Launch SageMaker Canvas (Iniciar SageMaker Canvas).
- En la página del panel de control, seleccione Canvas de la lista desplegable Launch app (Iniciar aplicación) junto a studio-user.
- Se mostrará la pantalla de SageMaker Canvas Creating application (Creando aplicación). La aplicación tardará unos minutos en cargarse.
Si es la primera vez que usa SageMaker en US-East-1, SageMaker Canvas crea un bucket de Amazon S3 con un nombre que se compone del siguiente patrón: sagemaker-<your-Region>-<your-account-id>. Antes de continuar con el resto del tutorial, descargue los conjuntos de datos a continuación y guárdelos en su computadora local. Luego, cargará los conjuntos de datos en el bucket de S3 predeterminado que SageMaker Canvas ha creado para usted.
Descargue el registro de envío y los conjuntos de datos de productos sintéticos.
En la barra de búsqueda de la consola de AWS, ingrese S3 y luego seleccione S3.
Cuando se abre la consola S3, puede encontrar su bucket predeterminado que SageMaker Canvas ha creado para usted en la sección Buckets. Elija el bucket llamado sagemaker-<your-Region>-<your-account-id> y, en la página siguiente, elija Upload (Cargar).
En la página Upload (Cargar), elija Add files (Agregar archivos) y seleccione los dos conjuntos de datos que descargó en el paso anterior. Desplácese hasta la parte inferior de la página y elija Upload (Cargar). SageMaker Canvas accederá a estos archivos antes de crear el modelo.
Paso 3: configurar SageMaker Canvas para la creación automática de modelos
Importe los datos a SageMaker Canvas para la inspección visual y la creación de modelos.
Importe el conjunto de datos a SageMaker Canvas.
- En la interfaz de SageMaker Canvas, elija Datasets (Conjuntos de datos) en el panel izquierdo y luego elija + Import (+ Importar).
- Seleccione el bucket de Amazon S3 llamado sagemaker-<your-Region>-<your-account-id> donde cargó los conjuntos de datos en el paso anterior. Seleccione los conjuntos de datos shipping_logs.csv y product_descriptions.csv al marcar las casillas de verificación a su izquierda. Aparecen dos botones nuevos en la parte inferior de la página: Preview all (Vista previa de todo) de todo e Import data (Importar datos). Seleccione Preview all (Vista previa de todo). Esto le permite ver una vista previa de 100 filas de los conjuntos de datos.
- Después de comprobar los conjuntos de datos, elija Import data (Importar datos) para importarlos a SageMaker Canvas.
En la página SageMaker Canva, en la sección Datasets (Conjuntos de datos), encontrará los dos conjuntos de datos que importó. Elija Join data (Unir datos).
En la página Join data (Unir datos), arrastre los dos conjuntos de datos desde el panel izquierdo al panel derecho. Seleccione el ícono de unión entre los dos conjuntos de datos. Aparecerá una ventana emergente que muestra detalles sobre la unión. Asegúrese de que el tipo de unión sea Inner (Interna) y la columna de unión sea ProductId. Elija Save & close (Guardar y cerrar) y luego seleccione Import data (Importar datos).
- En el cuadro de diálogo Import data (Importar datos), ingrese el nombre ConsolidatedShippingData en el campo Import dataset name (Importar nombre del conjunto de datos) y seleccione Import data (Importar datos).
Paso 4: crear, entrenar y analizar un modelo de ML
Configure la variable de destino, inspeccione visualmente las propiedades de los datos e inicie el proceso de creación del modelo.
En la interfaz de usuario de SageMaker Canvas, elija Models (Modelos) y + New Model (+ Nuevo modelo). En el cuadro de diálogo Create new model (Crear nuevo modelo), ingrese ShippingForecast en el campo Model name (Nombre del modelo) y elija Create (Crear).
La página de vista del modelo consta de cuatro pestañas que representan los pasos necesarios para crear un modelo y obtener predicciones. Las pestañas son las siguientes:
- Select (Seleccionar): configurar los datos de entrada.
- Build (Crear): crear el modelo de ML.
- Analyze (Analizar): analizar el resultado y las características del modelo.
- Predict (Predecir): ejecutar predicciones masivas o en una sola muestra.
En la pestaña Select (Seleccionar), elija el botón de opción del conjunto de datos ConsolidatedShippingData que creó en el paso anterior. Este conjunto de datos contiene 16 columnas y 10 000 filas. También contiene una descripción de alto nivel de la forma y el tamaño del conjunto de datos. Elija Select dataset (Seleccionar conjunto de datos).
Después de seleccionar el conjunto de datos, SageMaker Canvas pasa automáticamente a la fase Build (Crear). En esta pestaña, elija la columna de destino, que es ActualShippingDays en este ejemplo. Dado que esta columna contiene el número histórico de días requeridos para que lleguen los productos, es adecuada para usarse como columna de destino.
- Una vez que se selecciona la columna de destino, SageMaker Canvas intenta inferir automáticamente el tipo de problema. Dado que le interesa saber cuántos días tardarán los productos en llegar al cliente, se trata de un problema de regresión o de predicción numérica. La regresión estima los valores de una variable de destino dependiente en función de una o más variables o atributos que están correlacionados con ella. En este caso, SageMaker Canvas inicialmente puede predecir este caso de uso como un problema de Time series forecasting type (Tipo de previsión de serie temporal) porque detectó una columna con fechas en el conjunto de datos. Sin embargo, puede cambiar el tipo de problema a Numeric model type (Tipo de modelo numérico) al seleccionarlo manualmente con el enlace Change type (Cambiar tipo) en el centro de la página.
- Observe que la correlación de las columnas XShippingDistance y YShippingDistance con el destino es insignificante.
- Dado que las características con una correlación insignificante con el destino no son lo suficientemente informativas para la tarea de predicción en cuestión, puede descartar las columnas XShippingDistance, YShippingDistance, ProductID y OrderID porque son claves primarias y no se espera que contengan información valiosa. Puede anular la selección de las casillas de verificación.
- Puede seleccionar el ícono de barras verticales para inspeccionar las distribuciones de las columnas. Esto es muy útil para resaltar los desequilibrios y posibles sesgos en los datos.
A los fines de este tutorial, elija Quick build (Creación rápida) para comenzar la creación del modelo. Este proceso tarda menos de 5 minutos en completarse.
Una vez completada la creación del modelo, SageMaker Canvas cambia automáticamente a la pestaña Analyze (Analizar) para mostrar los resultados rápidos del entrenamiento. El modelo de SageMaker Canvas creado con creación rápida puede predecir la cantidad de días de envío dentro de +/- 1,2333 del valor real. El machine learning introduce algo de estocasticidad en el proceso de entrenamiento de modelos, lo que puede llevar a diferentes resultados para diferentes creaciones. Por lo tanto, el rendimiento exacto en términos de las métricas que ve puede ser diferente.
En la pestaña Overview (Información general), SageMaker Canvas muestra el impacto de la columna o la importancia estimada de cada columna de entrada en la predicción de la columna de destino. En este ejemplo, la columna ExpectedShippingDays tiene el impacto más significativo en la predicción del número de días de envío. En el panel derecho, también puede ver la dirección del impacto de una característica. Por ejemplo, cuanto mayor sea el valor de ExpectedShippingDays, más positivo será su impacto en la predicción del número de días de envío.
En la pestaña Scoring (Puntuación), puede ver un gráfico que representa la línea de regresión de mejor ajuste para ActualshippingDays. En promedio, la predicción del modelo tiene una diferencia de +/- 1,2333 con respecto al valor real de ActualShippingDays. La sección Scoring (Puntuación) para la predicción numérica muestra una línea para indicar el valor previsto del modelo en relación con los datos utilizados para realizar las predicciones. Los valores de la predicción numérica suelen ser +/- el valor RMSE (error cuadrático medio). El valor que predice el modelo suele estar dentro del rango del RMSE. El ancho de la banda morada alrededor de la línea indica el rango del RMSE. Los valores predichos a menudo entran en el rango. Para tener una comprensión más profunda del rendimiento del modelo, seleccione el enlace Advanced metrics (Métricas avanzadas) a la derecha para mostrar la página Advanced metrics (Métricas avanzadas).
- Las distintas métricas que se muestran en la página Advanced metrics (Métricas avanzadas) son R2, Error absoluto medio (MAE), Error porcentual absoluto medio (MAPE) y Error cuadrático medio (RMSE). La página Advanced metrics (Métricas avanzadas) también muestra gráficos para la inspección visual del rendimiento del modelo. Una imagen muestra un gráfico de los residuos o errores. La línea horizontal indica un error de 0 o una predicción perfecta. Los puntos azules son los errores. Su distancia desde la línea horizontal indica la magnitud de los errores.
- Si se desplaza hacia abajo en la página Advanced metrics (Métricas avanzadas), puede ver un gráfico de densidad de errores que muestra la distribución de los errores y su dispersión con respecto al MAE y RMSE del modelo. Una densidad de error con una forma similar a una distribución normal indica un buen rendimiento del modelo.
Paso 5: generar predicciones del modelo
Ahora que tiene un modelo de regresión, puede usar el modelo para ejecutar predicciones o puede crear una nueva versión de este modelo para entrenarlo con el proceso de creación estándar. En este paso, utilizará SageMaker Canvas para generar predicciones sobre conjuntos de datos, tanto individuales como masivas.
Para comenzar a generar predicciones, seleccione la pestaña Predict (Predecir).
- Elija el botón Predict (Predecir) en la parte inferior de la página Analyze (Analizar) o elija la pestaña Predict (Predecir). En la página Predict (Predecir), la opción Batch prediction (Predicción por lotes) ya está seleccionada. Elija Select dataset (Seleccionar conjunto de datos) y luego seleccione el conjunto de datos ConsolidatedShippingData. En los flujos de trabajo de ML reales, este conjunto de datos debe estar separado del conjunto de datos de entrenamiento. Sin embargo, para simplificar, utilice el mismo conjunto de datos para demostrar cómo SageMaker Canvas genera predicciones. Elija Generate predictions (Generar predicciones).
- Después de unos segundos, la predicción ya estará hecha. Elija el ícono de opciones y seleccione preview (vista previa)para obtener una vista previa de las predicciones al pasar el cursor sobre el nombre o el estado del conjunto de datos de predicciones. También puede elegir Download (Descargar) para descargar un archivo CSV que contenga el resultado completo. SageMaker Canvas devuelve una predicción para cada fila de datos. En este tutorial, la característica de mayor importancia es ExpectedShippingDays. También se presenta junto a las predicciones para una comparación visual.
- En la página Predict (Predecir), puede generar predicciones para una sola muestra al seleccionar Single prediction (Predicción única). SageMaker Canvas presenta una interfaz en la que puede ingresar manualmente valores para cada una de las variables de entrada utilizadas en el modelo. Este tipo de análisis es ideal para escenarios hipotéticos en los que desea saber cómo cambia la predicción cuando el valor de una o más variables aumenta o disminuye. Con la predicción del conjunto único de valores de columna, SageMaker Canvas otorga importancia a las características individuales. Esto indica las columnas con la mayor influencia en la predicción de la muestra actual.
Para el alcance de este tutorial, no se cubre el modelo estándar. Sin embargo, el entrenamiento en este modo es similar a los pasos descritos en este tutorial.
Puede comenzar dando un nombre al modelo, como ShippingForecastStandardModel. Además, en la pestaña Build (Crear), puede elegir Standard Model (Modelo estándar) en lugar de Quick Model (Modelo rápido). A partir de ahí, continúe con los pasos restantes. El modo de creación estándar es beneficioso porque proporciona la funcionalidad adicional de poder compartir el modelo entrenado con científicos de datos a través de SageMaker Studio. Esto permite la colaboración, el refinamiento rápido del modelo y las iteraciones. La opción para compartir está disponible en la pestaña Analyze (Analizar) una vez que se completa el entrenamiento del modelo.
Paso 6: limpiar recursos de AWS
Una práctica recomendada es eliminar los recursos que ya no se utilizan para no incurrir en cargos no deseados.
Navegue a la consola de S3 y seleccione la opción de menú Buckets.
Elimine los objetos de prueba del bucket de prueba. Seleccione el nombre del bucket con el que ha estado trabajando en este tutorial. Marque la casilla de verificación a la izquierda del nombre del objeto de prueba y luego seleccione el botón Delete (Eliminar). En la página Delete objects (Eliminar objetos), verifique que haya seleccionado el objeto apropiado para eliminar y escriba permanently delete (eliminar de forma permanente) en el cuadro de confirmación Permanently delete objects (Eliminar objetos de forma permanente). Luego, seleccione el botón Delete object (Eliminar objeto) para continuar. A continuación, verá un anuncio que le indicará si la eliminación se ha realizado correctamente.
En la página principal de SageMaker Canvas, elija Models (Modelos). En el panel derecho, puede ver el modelo que creó. Elija los puntos suspensivos verticales a la derecha de la opción View (Ver) y seleccione Delete model (Eliminar modelo).
En la consola de SageMaker Studio, seleccione studio-user y, para cada aplicación que aparece en Apps (Aplicaciones), elijaDelete App (Eliminar aplicación). Siga las indicaciones en pantalla para confirmar la operación de eliminación. Espere hasta que el estado se muestre como Deleted (Eliminado).
Si usó un dominio existente de SageMaker Studio en el paso 1, omita el resto del paso 6 y vaya directamente a la sección de conclusión.
Si ejecutó la plantilla de CloudFormation en el paso 1 para crear un dominio de SageMaker Studio nuevo, continúe con los siguientes pasos a fin de eliminar el dominio, el usuario y los recursos creados por la plantilla de CloudFormation.
Para abrir la consola de CloudFormation, ingrese CloudFormation en la barra de búsqueda de la consola de AWS y elija CloudFormation en los resultados de búsqueda.
En el panel de CloudFormation, elija Stacks (Pilas). En la lista desplegable de estado, seleccione Active (Activo). En Stack name (Nombre de la pila), elija CFN-SM-IM-Lambda-Catalog para abrir la página de detalles de la pila.
En la página de detalles de la pila CFN-SM-IM-Lambda-Catalog, elija Delete (Eliminar) para eliminar la pila junto con los recursos que creó en el paso 1.
Conclusión
¡Felicitaciones! Ha finalizado el tutorial Generación de predicciones de machine learning sin escribir código.
Ha utilizado correctamente Amazon SageMaker Canvas a fin de importar y preparar un conjunto de datos para ML desde Amazon S3, seleccionar la variable de destino, crear un modelo de ML mediante el modo de creación rápida y utilizar la interfaz visual.
Siguientes pasos
Entrenar un modelo de machine learning
Etiquetar los datos de entrenamiento para el machine learning