Amazon Machine Learning
Guía del desarrollador (Version Latest)

Paso 5: Uso del modelo de ML para generar predicciones

Amazon Machine Learning (Amazon ML) puede generar dos tipos de predicciones: por lotes y en tiempo real.

Una predicción en tiempo real es una predicción para una única observación que Amazon ML genera bajo demanda. Las predicciones en tiempo real son ideales para aplicaciones móviles, sitios web y otras aplicaciones que necesitan utilizar los resultados de forma interactiva.

Una predicción por lotes es un conjunto de predicciones para un grupo de observaciones. Amazon ML procesa los registros en una predicción por lotes de forma conjunta, por lo que el procesamiento puede llevar algún tiempo. Utilice las predicciones por lote para aplicaciones que requieren predicciones para un conjunto de observaciones o predicciones que no utilicen los resultados de forma interactiva.

En este tutorial, generará una predicción en tiempo real que prediga si un cliente potencial se suscribirá al nuevo producto. Asimismo, generará predicciones para un gran lote de clientes potenciales. Para la predicción por lotes, se utilizará el archivo banking-batch.csv que ha cargado en el Paso 1: prepare los datos.

Empecemos con una predicción en tiempo real.

nota

Para las aplicaciones que requieren predicciones en tiempo real, debe crear un punto de enlace en tiempo real para el modelo de ML. Se acumulan cargos mientras se encuentra disponible un punto de enlace en tiempo real. Antes de comprometerse a utilizar las predicciones en tiempo real y empezar a incurrir en el costo derivado de las mismas, puede probar a utilizar la característica de predicción en tiempo real en el navegador web, sin necesidad de crear un punto de enlace en tiempo real. Eso es lo que vamos a hacer para este tutorial.

Probar una predicción en tiempo real

  1. En el panel de navegación ML model report, seleccione Try real-time predictions.

  2. Elija Paste a record.

  3. En el cuadro de diálogo Paste a record, pegue la siguiente observación:

    32,services,divorced,basic.9y,no,unknown,yes,cellular,dec,mon,110,1,11,0,nonexistent,-1.8,94.465,-36.1,0.883,5228.1
  4. En el cuadro de diálogo Paste a record (Pegar un registro), elija Submit (Enviar) para confirmar que desea generar una predicción para esta observación. Amazon ML rellena los valores en el formulario de predicciones en tiempo real.

    nota

    También puede rellenar los campos Value (Valor) escribiendo los valores individuales. Independientemente del método que elija, debe proporcionar una observación que no se haya utilizado para formar el modelo.

  5. En la parte inferior de la página, elija Create prediction.

    La predicción aparece en el panel Prediction results a la derecha. Esta predicción tiene una Predicted label de 0, lo que significa que no es probable que este cliente potencial responda a la campaña. Una Predicted label (Etiqueta predicha) de 1 significaría que el cliente posiblemente responda a la campaña.

Ahora, cree una predicción por lotes. Proporcionará a Amazon ML el nombre del modelo de ML que está usando, la ubicación de Amazon Simple Storage Service (Amazon S3) de los datos de entrada para los que desea generar predicciones (Amazon ML creará un origen de datos de predicciones por lotes a partir de estos datos) y la ubicación de Amazon S3 para almacenar los resultados.

Para crear una predicción por lotes

  1. Elija Amazon Machine Learning y, a continuación, elija Batch Predictions (Predicciones por lotes).

  2. Elija Create new batch prediction (Crear nueva predicción por lotes).

  3. En la página ML model for batch predictions (Modelo de ML para predicciones por lotes), elija ML model: Banking Data 1 (Modelo de ML: datos bancarios 1).

    Amazon ML muestra el nombre del modelo de ML, el ID, la hora de creación y el ID de la fuente de datos asociada.

  4. Elija Continue.

  5. Para generar predicciones, debe proporcionar a Amazon ML los datos para los que necesita predicciones. Estos se denominan datos de entrada. En primer lugar, coloque los datos de entrada en una fuente de datos de forma que Amazon ML pueda acceder a ellos.

    Para Locate the input data (Localizar los datos de entrada), elija My data is in S3, and I need to create a datasource (Mis datos están en S3 y debo crear un origen de datos).

  6. En Datasource name (Nombre de origen de datos), escriba Banking Data 2.

  7. Para S3 Location (Ubicación de S3), escriba la ubicación completa del archivo banking-batch.csv: su-bucket/banking-batch.csv.

  8. En Does the first line in your CSV contain the column names? (¿La primera línea del CSV contiene los nombres de columna?), elija Yes (Sí).

  9. Elija Verify (Verificar).

    Amazon ML valida la ubicación de los datos.

  10. Elija Continue.

  11. Para S3 destination (Destino de S3), escriba el nombre de la ubicación de Amazon S3 donde ha cargado los archivos en el Paso 1: Preparación de sus datos. Amazon ML carga los resultados de predicción ahí.

  12. En Batch prediction name (Nombre de predicción por lotes), acepte el nombre predeterminado según el modelo, Batch prediction: ML model: Banking Data 1. Amazon ML elija el nombre predeterminado según el modelo que usará para crear las predicciones. En este tutorial, el modelo y las previsiones se nombran según la fuente de datos de formación, Banking Data 1.

  13. Elija Review.

  14. En el cuadro de diálogo S3 permissions (Permisos de S3), elija Yes (Sí).

  15. En la página Review, elija Finish.

    La solicitud de predicciones por lote se envía a Amazon ML y se introduce en una cola. El tiempo que tarda Amazon ML en procesar una predicción por lotes depende del tamaño de la fuente de datos y de la complejidad de su modelo de ML. Aunque Amazon ML procesa la solicitud, notifica el estado In Progress (En curso). Después de que haya finalizado la predicción por lotes, el estado de la solicitud cambia a Completed (Completado). Ahora puede ver los resultados.

Para ver las predicciones

  1. Elija Amazon Machine Learning y, a continuación, elija Batch Predictions (Predicciones por lotes).

  2. En la lista de predicciones, elija Batch prediction: ML model: Banking Data 1 (Predicciones por lotes: modelo de ML: datos bancarios 1). Aparece la página Batch prediction info (Información de predicción por lotes).

  3. Para ver los resultados de las predicciones por lotes, vaya a la consola de Amazon S3 en https://console.aws.amazon.com/s3/ y desplácese hasta la ubicación de Amazon S3 a la que se hace referencia en el campo Output S3 URL (URL de S3 de salida). A partir de ahí, desplácese hasta la carpeta de resultados, que tendrá un nombre similar a s3://aml-data/batch-prediction/result.

    La predicción se almacena en un archivo comprimido .gzip con la extensión .gz.

  4. Descargue el archivo de predicción en el escritorio, descomprímalo y ábralo.

    El archivo tiene dos columnas, bestAnswer y score, y una fila para cada una de las observaciones del origen de datos. Los resultados de la columna bestAnswer se basan en el umbral de puntuación de 0,77 que estableció en el Paso 4: Revisar el desempeño predictivo del modelo de ML y establecer un umbral de puntuación. Un valor de score superior a 0,77 genera una bestAnswer de 1, que es una respuesta o una predicción positiva, y un valor de score inferior a 0,77 genera una bestAnswer de 0, que es una respuesta o una predicción negativa.

    Los siguientes ejemplos muestran predicciones positivas y negativas en función del umbral de puntuación de 0,77.

Predicción positiva:

En este ejemplo, el valor de bestAnswer es 1 y el valor de score es 0,8228876. El valor de bestAnswer es 1 porque el valor de score es mayor que el umbral de puntuación de 0,77. Un valor de bestAnswer de 1 indica que el cliente posiblemente adquiera el producto y, por lo tanto, se considera una predicción positiva.

Predicción negativa:

En este ejemplo, el valor de bestAnswer es 0 porque el valor de score es 0,7695356, que es menor que el umbral de puntuación 0,77. El valor de bestAnswer de 0 indica que no es probable que el cliente adquiera el producto y, por lo tanto, se considera una predicción negativa.

Cada fila del resultado por lotes se corresponde con una fila de su entrada por lotes (un comentario de su fuente de datos).

Después de analizar las predicciones, puede ejecutar su campaña de marketing dirigida; por ejemplo, puede enviar folletos a todas las personas con una puntuación de predicción de 1.

Ahora que ha creado, revisado y utilizado el modelo, limpie los datos y los recursos de AWS que ha creado para evitar incurrir en gastos innecesarios y a mantener su espacio de trabajo despejado.